_user_settings = "%s/settings.ini" % _user_data
def __init__(self):
+ self._initDone = False
self._todoUIs = {}
self._todoUI = None
self._osso = None
self._clipboard = gtk.clipboard_get()
self.__window = self._widgetTree.get_widget("mainWindow")
self.__errorDisplay = gtk_toolbox.ErrorDisplay(self._widgetTree)
+ self._prefsDialog = gtk_toolbox.PreferencesDialog(self._widgetTree)
self._app = None
self._isFullScreen = False
callbackMapping = {
"on_doneit_quit": self._on_close,
- "on_paste": self._on_paste,
"on_about": self._on_about_activate,
}
self._widgetTree.signal_autoconnect(callbackMapping)
- self._widgetTree.get_widget("connectMenuItem").connect("activate", lambda *args: self._switch_ui(self._defaultUIName))
if self.__window:
if hildon is None:
config.read(self._user_settings)
with gtk_toolbox.gtk_lock():
self.load_settings(config)
+ self._widgetTree.get_widget("connectMenuItem").connect("activate", lambda *args: self.switch_ui(self._defaultUIName))
+ self._widgetTree.get_widget("preferencesMenuItem").connect("activate", self._on_prefs)
+
+ self._initDone = True
def display_error_message(self, msg):
"""
)
try:
- self._switch_ui(activeUIName)
+ self.switch_ui(activeUIName)
except KeyError, e:
- self._switch_ui(self._defaultUIName)
+ self.switch_ui(self._defaultUIName)
def save_settings(self, config):
"""
for todoUI in self._todoUIs.itervalues():
todoUI.save_settings(config)
- def _switch_ui(self, uiName):
+ def get_uis(self):
+ return (ui for ui in self._todoUIs.iteritems())
+
+ def get_default_ui(self):
+ return self._defaultUIName
+
+ def switch_ui(self, uiName):
"""
@note UI Thread
"""
if status == conic.STATUS_CONNECTED:
self._deviceIsOnline = True
- self._switch_ui(self._defaultUIName)
+ if self._initDone:
+ self.switch_ui(self._defaultUIName)
elif status == conic.STATUS_DISCONNECTED:
self._deviceIsOnline = False
- self._switch_ui(self._fallbackUIName)
+ if self._initDone:
+ self.switch_ui(self._fallbackUIName)
def _on_window_state_change(self, widget, event, *args):
"""
if self._osso is not None:
self._osso.close()
- self._save_settings()
+ if self._initDone:
+ self._save_settings()
finally:
gtk.main_quit()
- def _on_paste(self, *args):
- pass
-
def _on_key_press(self, widget, event, *args):
"""
@note Hildon specific
self.__window.fullscreen()
def _on_logout(self, *args):
+ if not self._initDone:
+ return
+
self._todoUI.logout()
- self._switch_ui(self._fallbackUIName)
+ self.switch_ui(self._fallbackUIName)
+
+ def _on_prefs(self, *args):
+ if not self._initDone:
+ return
+
+ self._prefsDialog.enable()
+ try:
+ self._prefsDialog.run(self)
+ finally:
+ self._prefsDialog.disable()
def _on_about_activate(self, *args):
dlg = gtk.AboutDialog()