Difference between revisions of "GEPS 029: GTK3-GObject introspection Conversion"
m (→Documentation) |
m |
||
Line 20: | Line 20: | ||
* [http://developer.gnome.org/pango/stable/pango.html Pango] | * [http://developer.gnome.org/pango/stable/pango.html Pango] | ||
* [http://developer.gnome.org/ http://developer.gnome.org/] | * [http://developer.gnome.org/ http://developer.gnome.org/] | ||
+ | |||
+ | == Installation == | ||
+ | === Ubuntu 12.04 === | ||
+ | For people on Ubuntu 12.04, you need: | ||
+ | |||
+ | 1. add the gnome_shell repo to have the latest version of glib and friends, see how to add the ppa on: | ||
+ | [http://www.ubuntuupdates.org/ppa/gnome_shell?dist=precise gnome_shell pppa] | ||
+ | Then upgrade your system via the system manager. | ||
+ | |||
+ | Note: this can make gnome shell unstable if the ppa is too bleeding edge!! | ||
+ | |||
+ | 2. install version 3.3.2 of pygobject. No ppa for this, I use the git repo on gnome.org, so my git config: | ||
+ | [remote "origin"] | ||
+ | fetch = +refs/heads/*:refs/remotes/origin/* | ||
+ | url = http://git.gnome.org/browse/pygobject | ||
+ | |||
+ | So to install it to folder pygobject, do | ||
+ | |||
+ | git clone git://git.gnome.org/pygobject pygobject | ||
+ | |||
+ | Then checkout tag 3.3.2, so | ||
+ | |||
+ | git checkout 3.3.2 | ||
+ | |||
+ | then compile it | ||
+ | |||
+ | ./autogen.sh | ||
+ | make | ||
+ | sudo make install | ||
+ | |||
+ | Now this installs to /usr/local, so to run the test with that, on ubuntu in your terminal: | ||
+ | |||
+ | PYTHONPATH=/usr/local/lib/python2.7/site-packages/ python gramps.py | ||
+ | |||
+ | You need this GEPS branch for gramps to work at all: | ||
+ | |||
+ | svn checkout https://gramps.svn.sourceforge.net/svnroot/gramps/branches/geps/gep-029-gtk3 geps-029 | ||
+ | cd geps-029 | ||
+ | |||
+ | from where gramps can be run. | ||
== Problems == | == Problems == |
Revision as of 21:42, 17 June 2012
Gramps was written with GTK 2 toolkit. This has been replaced upstream with GTK 3, so Gramps should convert to GTK 3.
Contents
Guideline
We try to convert 1 to 1. If there are problems due to deprecated features, or otherwise, add in the code:
# TODO GTK3: write what problem is due to gtk 3 conversion
Before release, all TODO GTK3 in the code must be cleaned up
Documentation
Python GTK3 docs: [1]
Alternative is to look at the base C documentation, and understand from experience how the introspection works. Gnome docs: [2].
As python works with classes, it looks somewhat like the C++ interface: [3]. To investigate the specific override (how to init Gtk classes):
- python overrides: [4]
Furthermore, for the other gi libs:
Installation
Ubuntu 12.04
For people on Ubuntu 12.04, you need:
1. add the gnome_shell repo to have the latest version of glib and friends, see how to add the ppa on: gnome_shell pppa Then upgrade your system via the system manager.
Note: this can make gnome shell unstable if the ppa is too bleeding edge!!
2. install version 3.3.2 of pygobject. No ppa for this, I use the git repo on gnome.org, so my git config:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = http://git.gnome.org/browse/pygobject
So to install it to folder pygobject, do
git clone git://git.gnome.org/pygobject pygobject
Then checkout tag 3.3.2, so
git checkout 3.3.2
then compile it
./autogen.sh make sudo make install
Now this installs to /usr/local, so to run the test with that, on ubuntu in your terminal:
PYTHONPATH=/usr/local/lib/python2.7/site-packages/ python gramps.py
You need this GEPS branch for gramps to work at all:
svn checkout https://gramps.svn.sourceforge.net/svnroot/gramps/branches/geps/gep-029-gtk3 geps-029 cd geps-029
from where gramps can be run.
Problems
- glade can no longer work with our catalog. We need to upgrade comboboxentry to combobox with has_entry manually, and hope editors keep working...
- expose is no longer present on gtk.widget. Draw must be used. Unclear how, [5].
- Gtk.Clipboard seems to work differently
Related Gramps Bugs
- #5009: Use gobject introspection for GTK 3 dependency