[meld] melddoc: Make label handling a mixin-like helper and use in new diff tab



commit 399bb33ecb7f61369303785f17fa42fd21ea94a2
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Thu Nov 5 11:17:13 2015 +1000

    melddoc: Make label handling a mixin-like helper and use in new diff tab

 meld/melddoc.py    |   23 +++++++++++++++--------
 meld/newdifftab.py |    4 ++--
 2 files changed, 17 insertions(+), 10 deletions(-)
---
diff --git a/meld/melddoc.py b/meld/melddoc.py
index de6fdfd..e9ceccb 100644
--- a/meld/melddoc.py
+++ b/meld/melddoc.py
@@ -54,13 +54,25 @@ def make_custom_editor_command(path, line=0):
 STATE_NORMAL, STATE_CLOSING, STATE_SAVING_ERROR, NUM_STATES = range(4)
 
 
-class MeldDoc(GObject.GObject):
+class LabeledObjectMixin(GObject.GObject):
+    __gsignals__ = {
+        'label-changed': (
+            GObject.SignalFlags.RUN_FIRST, None,
+            (GObject.TYPE_STRING, GObject.TYPE_STRING)),
+    }
+
+    label_text = _("untitled")
+    tooltip_text = _("untitled")
+
+    def label_changed(self):
+        self.emit("label-changed", self.label_text, self.tooltip_text)
+
+
+class MeldDoc(LabeledObjectMixin, GObject.GObject):
     """Base class for documents in the meld application.
     """
 
     __gsignals__ = {
-        'label-changed':        (GObject.SignalFlags.RUN_FIRST, None,
-                                 (GObject.TYPE_STRING, GObject.TYPE_STRING)),
         'file-changed':         (GObject.SignalFlags.RUN_FIRST, None,
                                  (GObject.TYPE_STRING,)),
         'create-diff':          (GObject.SignalFlags.RUN_FIRST, None,
@@ -80,8 +92,6 @@ class MeldDoc(GObject.GObject):
         GObject.GObject.__init__(self)
         self.scheduler = task.FifoScheduler()
         self.num_panes = 0
-        self.label_text = _("untitled")
-        self.tooltip_text = _("untitled")
         self.main_actiongroup = None
         self._state = STATE_NORMAL
 
@@ -184,9 +194,6 @@ class MeldDoc(GObject.GObject):
     def on_file_changed(self, filename):
         pass
 
-    def label_changed(self):
-        self.emit("label-changed", self.label_text, self.tooltip_text)
-
     def set_labels(self, lst):
         pass
 
diff --git a/meld/newdifftab.py b/meld/newdifftab.py
index 4f50e18..1a3f47c 100644
--- a/meld/newdifftab.py
+++ b/meld/newdifftab.py
@@ -20,11 +20,11 @@ from gi.repository import GObject
 from gi.repository import Gtk
 
 from .ui import gnomeglade
-
+from meld.melddoc import LabeledObjectMixin
 from meld.recent import recent_comparisons
 
 
-class NewDiffTab(GObject.GObject, gnomeglade.Component):
+class NewDiffTab(LabeledObjectMixin, GObject.GObject, gnomeglade.Component):
 
     __gtype_name__ = "NewDiffTab"
 


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