[meld: 38/63] melddoc: Make state a property and emit a signal on change



commit 3f4e62c796fd94bace50f53ef0201eb310071cce
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Tue Sep 8 07:34:59 2015 +1000

    melddoc: Make state a property and emit a signal on change

 meld/filediff.py |    1 -
 meld/melddoc.py  |   14 +++++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/meld/filediff.py b/meld/filediff.py
index e765732..bab5ae5 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -176,7 +176,6 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         for widget in self.selector_hbox:
             column_sizes.add_widget(widget)
 
-        self.state = melddoc.STATE_NORMAL
         self.warned_bad_comparison = False
         self._keymask = 0
         self.meta = {}
diff --git a/meld/melddoc.py b/meld/melddoc.py
index e90f94e..4673c5e 100644
--- a/meld/melddoc.py
+++ b/meld/melddoc.py
@@ -73,6 +73,7 @@ class MeldDoc(GObject.GObject):
         'next-diff-changed':    (GObject.SignalFlags.RUN_FIRST, None,
                                  (bool, bool)),
         'close': (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
+        'state-changed': (GObject.SignalFlags.RUN_FIRST, None, (int, int)),
     }
 
     def __init__(self):
@@ -82,7 +83,18 @@ class MeldDoc(GObject.GObject):
         self.label_text = _("untitled")
         self.tooltip_text = _("untitled")
         self.main_actiongroup = None
-        self.state = STATE_NORMAL
+        self._state = STATE_NORMAL
+
+    @property
+    def state(self):
+        return self._state
+
+    @state.setter
+    def state(self, value):
+        if value == self._state:
+            return
+        self.emit('state-changed', self._state, value)
+        self._state = value
 
     def get_comparison(self):
         """Get the comparison type and path(s) being compared"""


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