The first code change in the porting exercise is to make
gPodder use
HildonProgramand
HildonWindowclasses instead of the
GtkWindowclass.
Start by modifying the gpodder.py file (in the gpodder-orig/src/gpodder directory). To use Hildon elements, you have to import its module. The following illustrates the import:
from libipodsync import gPodder_iPodSync from libipodsync import ipod_supported # ****** start of the added code ****** import hildon # ****** end of the added code ****** # for isDebugging: import libgpodder
Note: if this errors
apt-get install python2.5-hildon
python2.5-hildon-dev
Next, add a
HildonProgram(self.app)and a
HildonWindow(self.window):
if libgpodder.isDebugging():
print "A new %s has been created" % self.__class__.__name__
#****** start of the added code ******
self.app = hildon.Program()
self.window = hildon.Window()
self.window.set_title(self.gPodder.get_title())
self.app.add_window(self.window)
self.vMain.reparent(self.window)
self.gPodder.destroy()
self.window.show_all()
#****** end of the added code ******
#self.gPodder.set_title( self.gPodder.get_title())
#self.statusLabel.set_text( "Welcome to gPodder! Suggestions? Mail to: thp@perli.net")
# set up the rendering of the comboAvailable combobox
The
gPodder class (self)has its
close_gpoddermethod connected to the destroy signal
from the original
gPodderGtk window. In the glade file remove the
connection:
Original version
user@machine:/home/gpodder-orig/data# nano gpodder.glade <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <signal name="destroy" handler="close_gpodder" last_modification_time="Sat, 29 Oct 2005 11:54:40 GMT"/>
Hildon Version
user@machine:/home/gpodder-hildon/data# nano gpodder.glade <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property>
and put it in the new
Hildonwindow(self.window)that was just created in
gpodder.py like this :
self.window = hildon.Window()
self.window.set_title(self.gPodder.get_title())
#****** start of the added code ******
self.window.connect("destroy", self.close_gpodder)
#****** end of the added code ******
self.app.add_window(self.window)
self.vMain.reparent(self.window)
Note: above you can see two different versions gpodder-orig and gpodder-hildon in the target filesystem. To install a different version just remove the old version by;
user@machine:/home/gpodder-hildon/src/gpodder# cd /usr/lib/python2.5/site-packages/ user@machine:/usr/lib/python2.5/site-packages# rm -R gpodder-0.8.0.egg-info gpodder
and then do a python setup.py install on the new version (also remember to change the file /usr/share/gpodder/gpodder.glade if you need to for things like dialogues etc)