Hildonize Step 1

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)