[d-feet/pygi] Use GtkApplication



commit 48d980f803111a6fdefec4eefb2eea7ad956e1be
Author: Thomas Bechtold <thomasbechtold jpberlin de>
Date:   Sun Oct 14 22:00:19 2012 +0200

    Use GtkApplication

 d-feet            |    2 +-
 dfeet/DFeetApp.py |   29 +++++++++++++++--------------
 2 files changed, 16 insertions(+), 15 deletions(-)
---
diff --git a/d-feet b/d-feet
index cc15057..a130d65 100755
--- a/d-feet
+++ b/d-feet
@@ -48,4 +48,4 @@ app = DFeetApp.DFeetApp()
 if options.bus_address is not None:
     app.select_or_add_bus(address=options.bus_address)
 
-app.run()
+app.run(None)
diff --git a/dfeet/DFeetApp.py b/dfeet/DFeetApp.py
index 9f5f863..506cefb 100644
--- a/dfeet/DFeetApp.py
+++ b/dfeet/DFeetApp.py
@@ -33,11 +33,16 @@ class NotebookTabLabel(Gtk.Box):
         self.emit("close-clicked")
 
 
-class DFeetApp(object):
+class DFeetApp(Gtk.Application):
 
     HISTORY_MAX_SIZE = 10
 
     def __init__(self):
+        Gtk.Application.__init__(self, application_id="org.gnome.d-feet",
+                                 flags=Gio.ApplicationFlags.FLAGS_NONE)
+
+        self.connect("activate", self.on_application_activate_cb)
+
         signal_dict = {
             'action_systembus_connect_activate_cb': self.__systembus_connect_cb,
             'action_sessionbus_connect_activate_cb': self.__sessionbus_connect_cb,
@@ -65,7 +70,14 @@ class DFeetApp(object):
                 self.__bus_history.append(bus)
 
         ui.connect_signals(signal_dict)
+        #add a System- and Session Bus tab
+        self.__systembus_connect_cb(None)
+        self.__sessionbus_connect_cb(None)
+
+
+    def on_application_activate_cb(self, data=None):
         self.main_window.show()
+        self.add_window(self.main_window)
 
 
     @property
@@ -117,6 +129,7 @@ class DFeetApp(object):
                     print "can not connect to '%s': %s" % (address, str(e))
         dialog.destroy()
 
+
     def __action_about_activate_cb(self, action):
         """show the about dialog"""
         self.about_dialog.set_visible(True)
@@ -155,16 +168,4 @@ class DFeetApp(object):
 
         settings.general['addbus_list'] = self.bus_history
         settings.write()
-        Gtk.main_quit()
-
-
-    def run(self):
-        """start the application"""
-        #add a System- and Session Bus tab
-        self.__systembus_connect_cb(None)
-        self.__sessionbus_connect_cb(None)
-        Gtk.main()
-
-
-if __name__ == "__main__":
-    DFeetApp().run()
+        self.quit()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]