Difference between revisions of "GEPS 029: GTK3-GObject introspection Conversion"

From Gramps
Jump to: navigation, search
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.

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