intel / dleyna-control

dLeyna-control is a Digital Media Player written in python to demonstrate how to use the dleyna DMS APIs. It detects Digital Media Servers on the local area network and allows users to browse, search and play their contents.
https://01.org/dleyna/
GNU Lesser General Public License v2.1
8 stars 12 forks source link

Migrate code to GTK 3.0 #13

Closed markdryan closed 11 years ago

markdryan commented 11 years ago

Currently dLeyna-control is written using pygtk which is no longer supported. We should probably to gtk 3.0. The other dLeyna GTK python scripts such as cap.py and slidepush.py already use gtk 3.0.

jku commented 11 years ago

The main problem here is lack of GenericTreeModel in the gobject-introspection based bindings.

Unfortunately implementing full GtkTreeModels also seems to be broken in 3.2 (for python bindings): https://bugzilla.gnome.org/show_bug.cgi?id=680812: this means porting is impossible until python-gi >= 3.4 . I'll do a quick test to see if there are other major roadblocks.

jku commented 11 years ago

I've tested this in "gtk3" branch and can make the migration with relatively little manual work. pygi-convert script does a lot of it, the remaining parts are GStreamer upgrade (which seems to make sense to do at the same time, and is mostly syntactic changes) and the GenericModel work, which is substantive. None of this is easy to separate from the rest: it looks like it'll be one commit with about 200 changed lines.

The only risky part seems to be the GenericModel work, but it looks like I got it to work...

The new dependencies would be:

The only legacy component left would be dbus, and that seems to still work ok for us: Moving to GDBus might make sense but does not need to be done in the same commit.