[meld] Remove libglade-style override mechanism
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld] Remove libglade-style override mechanism
- Date: Thu, 30 Sep 2010 21:41:48 +0000 (UTC)
commit d495b25199b880ae1239dece66f70884e1fbd1d1
Author: Kai Willadsen <kai willadsen gmail com>
Date: Fri Sep 3 18:42:21 2010 +1000
Remove libglade-style override mechanism
filediff.ui: Replace GtkTextView objects with MeldSourceView, our
sourceviewer compatibility shim
filediff.py: Remove use of Glade-based overriding
gladesupport.py: Include support for our gtk.TextView proxy
gnomeglade.py: Remove the custom-handler goop
sourceviewer.py: Remove the now-unused override mechanism, and provide
a gtk.TextView subclass that can be constructed by
the builder.
data/ui/filediff.ui | 8 ++++----
meld/filediff.py | 4 ++--
meld/ui/gladesupport.py | 1 +
meld/ui/gnomeglade.py | 13 ++-----------
meld/util/sourceviewer.py | 6 +++---
5 files changed, 12 insertions(+), 20 deletions(-)
---
diff --git a/data/ui/filediff.ui b/data/ui/filediff.ui
index 59d486b..af838c4 100644
--- a/data/ui/filediff.ui
+++ b/data/ui/filediff.ui
@@ -73,7 +73,7 @@
<property name="window_placement">GTK_CORNER_TOP_RIGHT</property>
<property name="window_placement_set">True</property>
<child>
- <object class="GtkTextView" id="textview0">
+ <object class="MeldSourceView" id="textview0">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
@@ -149,7 +149,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkTextView" id="textview2">
+ <object class="MeldSourceView" id="textview2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<signal handler="on_textview_button_press_event" name="button_press_event"/>
@@ -185,7 +185,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkTextView" id="textview1">
+ <object class="MeldSourceView" id="textview1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<signal handler="on_textview_button_press_event" name="button_press_event"/>
@@ -468,7 +468,7 @@ Which ones would you like to save?</span></property>
<property name="can_focus">True</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<child>
- <object class="GtkTextView" id="textview">
+ <object class="MeldSourceView" id="textview">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="accepts_tab">False</property>
diff --git a/meld/filediff.py b/meld/filediff.py
index 8ec350d..bcde5de 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -116,7 +116,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
"""Start up an filediff with num_panes empty contents.
"""
melddoc.MeldDoc.__init__(self, prefs)
- gnomeglade.Component.__init__(self, paths.ui_dir("filediff.ui"), "filediff", srcviewer.override)
+ gnomeglade.Component.__init__(self, paths.ui_dir("filediff.ui"), "filediff")
self.map_widgets_into_lists(["textview", "fileentry", "diffmap", "scrolledwindow", "linkmap", "statusimage", "msgarea_mgr", "vbox"])
self._update_regexes()
self.warned_bad_comparison = False
@@ -1048,7 +1048,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
def make_patch(self, *extra):
fontdesc = pango.FontDescription(self.prefs.get_current_font())
- dialog = gnomeglade.Component(paths.ui_dir("filediff.ui"), "patchdialog", srcviewer.override)
+ dialog = gnomeglade.Component(paths.ui_dir("filediff.ui"), "patchdialog")
dialog.widget.set_transient_for( self.widget.get_toplevel() )
texts = [b.get_text(*b.get_bounds()).split("\n") for b in self.textbuffer]
texts[0] = [l+"\n" for l in texts[0]]
diff --git a/meld/ui/gladesupport.py b/meld/ui/gladesupport.py
index b087032..6a14f3d 100644
--- a/meld/ui/gladesupport.py
+++ b/meld/ui/gladesupport.py
@@ -2,3 +2,4 @@
import historyentry
import msgarea
import meld.diffmap
+import meld.util.sourceviewer
diff --git a/meld/ui/gnomeglade.py b/meld/ui/gnomeglade.py
index 777c513..6edb64b 100644
--- a/meld/ui/gnomeglade.py
+++ b/meld/ui/gnomeglade.py
@@ -22,12 +22,6 @@ import sys
import gtk
import re
-def custom_handler( glade, module_function_name, widget_name, str1, str2, int1, int2):
- assert module_function_name.find(".") != -1, "%s should contain a ." % module_function_name
- module, function_name = module_function_name.rsplit(".",1)
- __import__(module)
- return getattr(sys.modules[module], function_name)(str1, str2, int1, int2)
-
class Component(object):
"""Base class for all glade objects.
@@ -42,14 +36,11 @@ class Component(object):
object, which is sadly sometimes necessary.
"""
- def __init__(self, filename, root, override=None):
+ def __init__(self, filename, root):
"""Load the widgets from the node 'root' in file 'filename'.
"""
- gtk.glade.set_custom_handler(custom_handler)
- if override is None:
- override = {}
self.builder = gtk.Builder()
- self.builder.add_objects_from_file(filename, [root]) # FIXME: override doesn't work
+ self.builder.add_objects_from_file(filename, [root])
self.builder.connect_signals(self)
self.widget = getattr(self, root)
self.widget.set_data("pyobject", self)
diff --git a/meld/util/sourceviewer.py b/meld/util/sourceviewer.py
index eccfaa2..f1be1fc 100644
--- a/meld/util/sourceviewer.py
+++ b/meld/util/sourceviewer.py
@@ -33,9 +33,6 @@ class _srcviewer(object):
self.GtkTextView = None
self.GtkTextBuffer = None
self.overrides()
- self.override = {}
- self.override["GtkTextView"] = self.GtkTextView
- self.override["GtkTextBuffer"] = self.GtkTextBuffer
def version_check(self):
raise NotImplementedError
@@ -192,3 +189,6 @@ def _get_srcviewer():
return nullsourceview()
srcviewer = _get_srcviewer()
+
+class MeldSourceView(srcviewer.GtkTextView):
+ __gtype_name__ = "MeldSourceView"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]