meld r1024 - trunk



Author: kaiw
Date: Sun Jul 20 11:00:57 2008
New Revision: 1024
URL: http://svn.gnome.org/viewvc/meld?rev=1024&view=rev

Log:
Refactor glade support to remove some unused/obsolete code

Modified:
   trunk/dirdiff.py
   trunk/filediff.py
   trunk/gnomeglade.py
   trunk/meldapp.py

Modified: trunk/dirdiff.py
==============================================================================
--- trunk/dirdiff.py	(original)
+++ trunk/dirdiff.py	Sun Jul 20 11:00:57 2008
@@ -222,7 +222,7 @@
         self.toolbar = self.ui.get_widget('/DirdiffToolbar')
         self.dirdiff.pack_start(self.toolbar, False, True, 0)
         self.toolbar.set_style( self.prefs.get_toolbar_style() )
-        self._map_widgets_into_lists( ["treeview", "fileentry", "diffmap", "scrolledwindow", "linkmap"] )
+        self.map_widgets_into_lists( ["treeview", "fileentry", "diffmap", "scrolledwindow", "linkmap"] )
         self.popup_menu = self.ui.get_widget('/DirdiffPopup')
         self.popup_menu.connect("deactivate", self.on_popup_deactivate_event)
         self.set_num_panes(num_panes)

Modified: trunk/filediff.py
==============================================================================
--- trunk/filediff.py	(original)
+++ trunk/filediff.py	Sun Jul 20 11:00:57 2008
@@ -88,7 +88,7 @@
             override["GtkTextView"] = gsv.SourceView
             override["GtkTextBuffer"] = gsv.SourceBuffer
         gnomeglade.Component.__init__(self, paths.share_dir("glade2/filediff.glade"), "filediff", override)
-        self._map_widgets_into_lists( ["textview", "fileentry", "diffmap", "scrolledwindow", "linkmap", "statusimage"] )
+        self.map_widgets_into_lists( ["textview", "fileentry", "diffmap", "scrolledwindow", "linkmap", "statusimage"] )
         self._update_regexes()
         self.warned_bad_comparison = False
         if sourceview_available:

Modified: trunk/gnomeglade.py
==============================================================================
--- trunk/gnomeglade.py	(original)
+++ trunk/gnomeglade.py	Sun Jul 20 11:00:57 2008
@@ -1,4 +1,4 @@
-### Copyright (C) 2002-2006 Stephen Kennedy <stevek gnome org>
+### Copyright (C) 2002-2008 Stephen Kennedy <stevek gnome org>
 
 ### This program is free software; you can redistribute it and/or modify
 ### it under the terms of the GNU General Public License as published by
@@ -14,21 +14,19 @@
 ### along with this program; if not, write to the Free Software
 ### Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-"""Utility classes for working with glade files.
-
+"""Utility class for working with glade files.
 """
 
 import gtk
 import gtk.glade
-import gnome
+# FIXME: remove once there are no GnomeUI-based widgets in the glade file
 import gnome.ui
-import gettext
 
-class Base(object):
+class Component(object):
     """Base class for all glade objects.
 
-    This class handles loading the xml glade file and connects
-    all methods name 'on_*' to the signals in the glade file.
+    This class handles loading the xml glade file and autoconnects
+    all signals in the glade file.
 
     The handle to the xml file is stored in 'self.xml'. The
     toplevel widget is stored in 'self.widget'.
@@ -38,16 +36,11 @@
     object, which is sadly sometimes necessary.
     """
 
-    def __init__(self, file, root, override={}):
-        """Load the widgets from the node 'root' in file 'file'.
-
-        Automatically connects signal handlers named 'on_*'.
+    def __init__(self, filename, root, override={}):
+        """Load the widgets from the node 'root' in file 'filename'.
         """
-        self.xml = gtk.glade.XML(file, root, typedict=override)
-        handlers = {}
-        for h in filter(lambda x:x.startswith("on_"), dir(self.__class__)):
-            handlers[h] = getattr(self, h)
-        self.xml.signal_autoconnect( handlers )
+        self.xml = gtk.glade.XML(filename, root, typedict=override)
+        self.xml.signal_autoconnect(self)
         self.widget = getattr(self, root)
         self.widget.set_data("pyobject", self)
 
@@ -60,13 +53,7 @@
             return widget
         raise AttributeError(key)
 
-    def flushevents(self):
-        """Handle all the events currently in the main queue and return.
-        """
-        while gtk.events_pending():
-            gtk.main_iteration();
-
-    def _map_widgets_into_lists(self, widgetnames):
+    def map_widgets_into_lists(self, widgetnames):
         """Put sequentially numbered widgets into lists.
         
         e.g. If an object had widgets self.button0, self.button1, ...,
@@ -86,59 +73,6 @@
                 lst.append(val)
                 i += 1
 
-
-class Component(Base):
-    """A convenience base class for widgets which use glade.
-    """
-
-    def __init__(self, file, root, override={}):
-        Base.__init__(self, file, root, override)
-
-
-class GtkApp(Base):
-    """A convenience base class for gtk+ apps created in glade.
-    """
-
-    def __init__(self, file, root=None):
-        Base.__init__(self, file, root)
-
-    def main(self):
-        """Enter the gtk main loop.
-        """
-        gtk.main()
-
-    def quit(self, *args):
-        """Signal the gtk main loop to quit.
-        """
-        gtk.main_quit()
-
-
-class GnomeApp(GtkApp):
-    """A convenience base class for apps created in glade.
-    """
-
-    def __init__(self, name, version, file, root):
-        """Initialise program 'name' and version from 'file' containing root node 'root'.
-        """
-        self.program = gnome.program_init(name, version)
-        GtkApp.__init__(self,file,root)
-        if 0:
-            self.client = gnome.ui.Client()
-            self.client.disconnect()
-            def connected(*args):
-                print "CONNECTED", args
-            def cb(name):
-                def cb2(*args):
-                    print name, args, "\n"
-                return cb2
-            self.client.connect("connect", cb("CON"))
-            self.client.connect("die", cb("DIE"))
-            self.client.connect("disconnect", cb("DIS"))
-            self.client.connect("save-yourself", cb("SAVE"))
-            self.client.connect("shutdown-cancelled", cb("CAN"))
-            self.client.connect_to_session_manager()
-
-
 def load_pixbuf(fname, size=0):
     """Load an image from a file as a pixbuf, with optional resizing.
     """
@@ -150,9 +84,3 @@
         image = image.scale_simple(size, int(aspect*size), 2)
     return image
 
-def url_show(url):
-    return gnome.url_show(url)
-
-def FileEntry(*args):
-    return gnome.ui.FileEntry(*args)
-

Modified: trunk/meldapp.py
==============================================================================
--- trunk/meldapp.py	(original)
+++ trunk/meldapp.py	Sun Jul 20 11:00:57 2008
@@ -23,6 +23,7 @@
 import gtk.glade
 import gobject
 import pango
+import gnome
 
 # project
 import paths
@@ -63,7 +64,7 @@
     def __init__(self, parentapp, type):
         self.parentapp = parentapp
         gnomeglade.Component.__init__(self, paths.share_dir("glade2/meldapp.glade"), "newdialog")
-        self._map_widgets_into_lists( ("fileentry", "direntry", "vcentry", "three_way_compare", "tablabel") )
+        self.map_widgets_into_lists( ("fileentry", "direntry", "vcentry", "three_way_compare", "tablabel") )
         self.entrylists = self.fileentry, self.direntry, self.vcentry
         self.widget.set_transient_for(parentapp.widget)
         cur_page = type // 2
@@ -227,7 +228,7 @@
                 self.model.append( (label,) )
         self.prefs = parentapp.prefs
         # editor
-        self._map_widgets_into_lists( ["editor_command"] )
+        self.map_widgets_into_lists( ["editor_command"] )
         if self.prefs.use_custom_font:
             self.radiobutton_custom_font.set_active(1)
         else:
@@ -242,8 +243,8 @@
         self.gnome_default_editor_label.set_text( "(%s)" % " ".join(self.prefs.get_gnome_editor_command([])) )
         self.custom_edit_command_entry.set_text( " ".join(self.prefs.get_custom_editor_command([])) )
         # display
-        self._map_widgets_into_lists( ["draw_style"] )
-        self._map_widgets_into_lists( ["toolbar_style"] )
+        self.map_widgets_into_lists( ["draw_style"] )
+        self.map_widgets_into_lists( ["toolbar_style"] )
         self.draw_style[self.prefs.draw_style].set_active(1)
         self.toolbar_style[self.prefs.toolbar_style].set_active(1)
         # file filters
@@ -258,7 +259,7 @@
         self.checkbutton_ignore_blank_lines.set_active( self.prefs.ignore_blank_lines )
         # encoding
         self.entry_text_codecs.set_text( self.prefs.text_codecs )
-        self._map_widgets_into_lists( ["save_encoding"] )
+        self.map_widgets_into_lists( ["save_encoding"] )
         self.save_encoding[self.prefs.save_encoding].set_active(1)
         self.treeview.set_cursor(0)
     #
@@ -507,7 +508,7 @@
 # MeldApp
 #
 ################################################################################
-class MeldApp(gnomeglade.GnomeApp):
+class MeldApp(gnomeglade.Component):
 
     #
     # init
@@ -522,7 +523,8 @@
                      "}\n"
                      "widget \"*.meld-tab-close-button\" style \"meld-tab-close-button-style\"")
         gladefile = paths.share_dir("glade2/meldapp.glade")
-        gnomeglade.GnomeApp.__init__(self, "meld", version, gladefile, "meldapp")
+        self.program = gnome.program_init("meld", version)
+        gnomeglade.Component.__init__(self, gladefile, "meldapp")
 
         actions = (
             ("FileMenu", None, "_File"),
@@ -571,7 +573,7 @@
         self.toolbar = self.ui.get_widget('/Toolbar')
         self.appvbox.pack_start(self.menubar, expand=False)
         self.appvbox.pack_start(self.toolbar, expand=False)
-        self._map_widgets_into_lists( "settings_drawstyle".split() )
+        self.map_widgets_into_lists( "settings_drawstyle".split() )
         self.statusbar = MeldStatusBar(self.task_progress, self.task_status, self.doc_status)
         self.prefs = MeldPreferences()
         if not developer:#hide magic testing button
@@ -683,7 +685,7 @@
                     break
         for c in self.notebook.get_children():
             c.get_data("pyobject").on_quit_event()
-        self.quit()
+        gtk.main_quit()
         return gtk.RESPONSE_CLOSE
 
     #
@@ -732,13 +734,13 @@
     # Toolbar and menu items (help)
     #
     def on_menu_meld_home_page_activate(self, button):
-        gnomeglade.url_show("http://meld.sourceforge.net";)
+        gnome.url_show("http://meld.sourceforge.net";)
 
     def on_menu_help_bug_activate(self, button):
-        gnomeglade.url_show("http://bugzilla.gnome.org/buglist.cgi?product=meld";)
+        gnome.url_show("http://bugzilla.gnome.org/buglist.cgi?product=meld";)
 
     def on_menu_users_manual_activate(self, button):
-        gnomeglade.url_show("ghelp:///"+os.path.abspath(paths.help_dir("C/meld.xml") ))
+        gnome.url_show("ghelp:///"+os.path.abspath(paths.help_dir("C/meld.xml") ))
 
     def on_menu_about_activate(self, *extra):
         about = gtk.glade.XML(paths.share_dir("glade2/meldapp.glade"),"about").get_widget("about")
@@ -928,5 +930,5 @@
 
     if tab:
         tab.set_labels( options.label )
-    app.main()
+    gtk.main()
 



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