From c6bf366ee38c92f6f7072ff4926894d67ee0609e Mon Sep 17 00:00:00 2001 From: javiplx Date: Wed, 4 May 2011 20:32:12 +0000 Subject: [PATCH] Implement setting edition for GTK version, moving zoom dialogs into configuration module git-svn-id: file:///svnroot/wifihood/trunk@116 c51dfc6a-5949-4919-9c8e-f207a149c383 --- wifiscanner/wifimap/config.py | 113 +++++++++++++++++++++++++++++++++++------ wifiscanner/wifiview | 75 +++------------------------ 2 files changed, 104 insertions(+), 84 deletions(-) diff --git a/wifiscanner/wifimap/config.py b/wifiscanner/wifimap/config.py index 0120a7f..2b243dd 100644 --- a/wifiscanner/wifimap/config.py +++ b/wifiscanner/wifimap/config.py @@ -1,7 +1,11 @@ import gconf -import hildon , gtk +import gtk +try : + import hildon +except : + hildon = False class Configuration : @@ -34,13 +38,12 @@ class Configuration : client.set_int( "/apps/wifihood/zoom" , self.zoom ) -class SettingsWindow ( hildon.StackableWindow ) : +class AbstractSettingsWindow : def __init__ ( self , config ) : - hildon.StackableWindow.__init__( self ) self.set_title( "Wifihood Settings" ) - scrollwin = hildon.PannableArea() + scrollwin = self.MainArea() scrollwin.show() self.add(scrollwin) @@ -62,7 +65,7 @@ class SettingsWindow ( hildon.StackableWindow ) : dblabel.show() database.attach(dblabel, 0, 1, 0, 1, gtk.EXPAND|gtk.FILL, 0, 0, 5) - dbvalue = hildon.Entry( gtk.HILDON_SIZE_FINGER_HEIGHT ) + dbvalue = self.Entry() dbvalue.set_text( config.homedir ) dbvalue.show() database.attach(dbvalue, 1, 2, 0, 1, gtk.EXPAND|gtk.FILL, 0, 0, 5) @@ -71,7 +74,7 @@ class SettingsWindow ( hildon.StackableWindow ) : dblabel.show() database.attach(dblabel, 0, 1, 1, 2, gtk.EXPAND|gtk.FILL, 0, 0, 5) - dbvalue = hildon.Entry( gtk.HILDON_SIZE_FINGER_HEIGHT ) + dbvalue = self.Entry() dbvalue.set_text( config.dbname ) dbvalue.show() database.attach(dbvalue, 1, 2, 1, 2, gtk.EXPAND|gtk.FILL, 0, 0, 5) @@ -86,13 +89,13 @@ class SettingsWindow ( hildon.StackableWindow ) : maps.show() mapsframe.add(maps) - button = hildon.CheckButton( gtk.HILDON_SIZE_FINGER_HEIGHT ) + button = self.CheckButton() button.set_label( "Use OpenStreet maps" ) button.set_active( 1 ) button.show() maps.attach(button, 0, 1, 0, 1, gtk.EXPAND|gtk.FILL, 0, 0, 5) - zoomlevel = hildon.Button( gtk.HILDON_SIZE_THUMB_HEIGHT , hildon.BUTTON_ARRANGEMENT_HORIZONTAL , "Zoom level" , str(config.zoom) ) + zoomlevel = self.Button( "Zoom level" , config.zoom ) zoomlevel.connect_object( "clicked", self.zoomdialog, config ) zoomlevel.show() maps.attach(zoomlevel, 1, 2, 0, 1, gtk.EXPAND|gtk.FILL, 0, 0, 5) @@ -107,12 +110,12 @@ class SettingsWindow ( hildon.StackableWindow ) : gps.show() gpsframe.add(gps) - button = hildon.CheckButton( gtk.HILDON_SIZE_FINGER_HEIGHT ) + button = self.CheckButton() button.set_label( "Take initial coordinates from maemo-mapper" ) button.show() gps.attach(button, 0, 2, 0, 1, gtk.EXPAND|gtk.FILL) #, 0, 0, 5) - button = hildon.CheckButton( gtk.HILDON_SIZE_FINGER_HEIGHT ) + button = self.CheckButton() button.set_label( "Store changes in coordinates" ) button.show() gps.attach(button, 0, 2, 1, 2, gtk.EXPAND|gtk.FILL) #, 0, 0, 5) @@ -123,7 +126,7 @@ class SettingsWindow ( hildon.StackableWindow ) : dataframe.show() vbox.pack_start(dataframe, True, True, 0) - button = hildon.CheckButton( gtk.HILDON_SIZE_FINGER_HEIGHT ) + button = self.CheckButton() button.set_label( "Write full logfile" ) button.show() dataframe.add(button) @@ -134,9 +137,11 @@ class SettingsWindow ( hildon.StackableWindow ) : dialog = ZoomDialog( widget ) dialog.show_all() -class ZoomDialog ( hildon.TouchSelector ) : +if hildon : + + class ZoomDialog ( hildon.TouchSelector ) : - def __init__ ( self , widget ) : + def __init__ ( self , config ) : hildon.TouchSelector.__init__( self ) zooms = gtk.ListStore(str) @@ -145,7 +150,7 @@ class ZoomDialog ( hildon.TouchSelector ) : for zoom in range(8,19) : iter = zooms.append() zooms.set( iter , 0 , "%2d" % zoom ) - if zoom == widget.zoom : + if zoom == config.zoom : active = index index += 1 @@ -154,8 +159,86 @@ class ZoomDialog ( hildon.TouchSelector ) : # NOTE : with text=True, we must use 1 instead of 0 self.set_active( 0 , active ) + class SettingsWindow ( hildon.StackableWindow , AbstractSettingsWindow ) : + + def __init__ ( self , config ) : + hildon.StackableWindow.__init__( self ) + AbstractSettingsWindow.__init__( self , config ) + + def MainArea ( self ) : + return hildon.PannableArea() + + def Entry ( self ) : + return hildon.Entry( gtk.HILDON_SIZE_FINGER_HEIGHT ) + + def Button ( self , text , value ) : + return hildon.Button( gtk.HILDON_SIZE_THUMB_HEIGHT , hildon.BUTTON_ARRANGEMENT_HORIZONTAL , text , "%s" % value ) + + def CheckButton ( self ) : + return hildon.CheckButton( gtk.HILDON_SIZE_FINGER_HEIGHT ) + +else : + + class ZoomDialog ( gtk.Dialog ) : + + def __init__ ( self , config ) : + gtk.Dialog.__init__( self , "Select zoom level", + None, + gtk.DIALOG_MODAL, + ( gtk.STOCK_OK, gtk.RESPONSE_ACCEPT, + gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT + ) + ) + + zooms = gtk.ListStore(int) + combo = gtk.ComboBox( zooms ) + + for zoom in range(8,19) : + iter = zooms.append() + zooms.set( iter , 0 , zoom ) + if zoom == config.zoom : + combo.set_active_iter( iter ) + + cell = gtk.CellRendererText() + combo.pack_start(cell, True) + combo.add_attribute(cell, 'text', 0) + + self.vbox.pack_start(combo , True, True, 0) + + self.connect_object( "response", self.response , combo , config ) + + def response ( self , combo , response , config ) : + if response == gtk.RESPONSE_ACCEPT : + item = combo.get_active_iter() + model = combo.get_model() + config.zoom = model.get(item,0)[0] + self.destroy() + + class SettingsWindow ( gtk.Window , AbstractSettingsWindow ) : + + def __init__ ( self , config ) : + gtk.Window.__init__( self ) + AbstractSettingsWindow.__init__( self , config ) + + def MainArea ( self ) : + scrollwin = gtk.ScrolledWindow() + scrollwin.set_size_request(-1, 260) + scrollwin.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + return scrollwin + + def Entry ( self ) : + return gtk.Entry() + + def Button ( self , text , value ) : + return gtk.Button( "%s %s" % ( text , value ) ) + + def CheckButton ( self ) : + return gtk.CheckButton() + +config = Configuration() + if __name__ == "__main__" : - window = SettingsWindow( Configuration() ) + window = SettingsWindow( config ) window.connect("delete_event", gtk.main_quit, None) window.show() gtk.main() diff --git a/wifiscanner/wifiview b/wifiscanner/wifiview index 4a6f83b..11a02d6 100755 --- a/wifiscanner/wifiview +++ b/wifiscanner/wifiview @@ -13,69 +13,6 @@ import wifimap.config import wifimap.view -if hildon : - - class ZoomDialog ( hildon.TouchSelector ) : - - def __init__ ( self , widget ) : - hildon.TouchSelector.__init__( self ) - - zooms = gtk.ListStore(str) - - active = index = 0 - for zoom in range(8,19) : - iter = zooms.append() - zooms.set( iter , 0 , "%2d" % zoom ) - if zoom == widget.conf.zoom : - active = index - index += 1 - - column = self.append_text_column( zooms , True ) - #renderer = gtk.CellRendererText() - #column = self.append_column( zooms , renderer ) - #column.set_property('text-column', 0) - - # NOTE : with text=True, we must use 1 instead of 0 - self.set_active( 0 , active ) - -else : - - class ZoomDialog ( gtk.Dialog ) : - - def __init__ ( self , widget ) : - gtk.Dialog.__init__( self , "Select zoom level", - None, - gtk.DIALOG_MODAL, - ( gtk.STOCK_OK, gtk.RESPONSE_ACCEPT, - gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT - ) - ) - - zooms = gtk.ListStore(int) - combo = gtk.ComboBox( zooms ) - - for zoom in range(8,19) : - iter = zooms.append() - zooms.set( iter , 0 , zoom ) - if zoom == widget.conf.zoom : - combo.set_active_iter( iter ) - - cell = gtk.CellRendererText() - combo.pack_start(cell, True) - combo.add_attribute(cell, 'text', 0) - - self.vbox.pack_start(combo , True, True, 0) - - self.connect_object( "response", self.response , combo , widget ) - - def response ( self , combo , response , widget ) : - if response == gtk.RESPONSE_ACCEPT : - item = combo.get_active_iter() - model = combo.get_model() - widget.SetZoom( model.get(item,0)[0] ) - self.destroy() - - class AbstractMapWindow: def destroy(self, widget, data=None): @@ -130,10 +67,6 @@ class AbstractMapWindow: self.size_x , self.size_y = map_size self.click_x , self.click_y = None , None - def zoomdialog ( self , widget ) : - dialog = ZoomDialog( widget ) - dialog.show_all() - def run(self): gtk.main() @@ -156,7 +89,7 @@ if hildon : # hildon.BUTTON_ARRANGEMENT_VERTICAL, # "Zoom level", None) #zoomlevel.connect_object( "clicked", self.zoomstack, self.map ) - selector = ZoomDialog( self.map ) + selector = wifmap.config.ZoomDialog( self.map.conf ) zoomlevel = hildon.PickerButton(gtk.HILDON_SIZE_AUTO, hildon.BUTTON_ARRANGEMENT_VERTICAL) zoomlevel.set_title( "Zoom" ) @@ -185,11 +118,15 @@ else : menubar = gtk.MenuBar() zoomlevel = gtk.MenuItem( label="Zoom level" ) - zoomlevel.connect_object( "activate", self.zoomdialog, self.map ) + zoomlevel.connect_object( "activate", self.zoomdialog, self.map.conf ) menubar.append( zoomlevel ) vbox.pack_start(menubar,True,True,5) + def zoomdialog ( self , config ) : + dialog = wifimap.config.ZoomDialog( config ) + dialog.show_all() + window = MapWindow() window.run() -- 1.7.9.5