[meld] Move property handling to settings.py



commit 411f5a031b026f84f32da1bc164da9f7fc3705d3
Author: Mark Pariente <markpariente gmail com>
Date:   Wed Oct 8 10:43:29 2014 -0700

    Move property handling to settings.py
    
    As requested by Kai, removed style-scheme property handling from
    filediff.py and moved it to meld.settings. Now meld.buffer just listens
    to the changed signal of meld.settings and just changes scheme as a
    response. Also moved scheme lookup to meld.settings.

 meld/filediff.py   |    3 ---
 meld/meldbuffer.py |   12 ++++++------
 meld/settings.py   |    9 ++++++++-
 3 files changed, 14 insertions(+), 10 deletions(-)
---
diff --git a/meld/filediff.py b/meld/filediff.py
index 05ba6b6..162c509 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -852,9 +852,6 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
     def on_setting_changed(self, settings, key):
         if key == 'font':
             self.load_font()
-        elif key == 'style-scheme':
-            for i in range(3):
-                self.textview[i].get_buffer().change_style_scheme(meldsettings.style_scheme)
 
     def check_save_modified(self, label=None):
         response = Gtk.ResponseType.OK
diff --git a/meld/meldbuffer.py b/meld/meldbuffer.py
index d3fe665..7599eee 100644
--- a/meld/meldbuffer.py
+++ b/meld/meldbuffer.py
@@ -24,7 +24,7 @@ from gi.repository import GObject
 from gi.repository import GtkSource
 
 from meld.conf import _
-from meld.settings import bind_settings,settings
+from meld.settings import bind_settings,meldsettings
 from meld.util.compat import text_type
 
 
@@ -41,12 +41,12 @@ class MeldBuffer(GtkSource.Buffer):
         bind_settings(self)
         self.data = MeldBufferData(filename)
         self.user_action_count = 0
-        self.change_style_scheme(settings.get_string('style-scheme'))
+        meldsettings.connect('changed', self.on_setting_changed)
+        GtkSource.Buffer.set_style_scheme(self, meldsettings.style_scheme)
 
-    def change_style_scheme(self, scheme):
-        manager = GtkSource.StyleSchemeManager.get_default()
-        style = GtkSource.StyleSchemeManager.get_scheme(manager, scheme)
-        GtkSource.Buffer.set_style_scheme(self, style)
+    def on_setting_changed(self, meldsettings, key):
+        if key == 'style-scheme':
+            GtkSource.Buffer.set_style_scheme(self, meldsettings.style_scheme)
 
     def do_begin_user_action(self, *args):
         self.user_action_count += 1
diff --git a/meld/settings.py b/meld/settings.py
index d147e31..c651bca 100644
--- a/meld/settings.py
+++ b/meld/settings.py
@@ -19,6 +19,7 @@ from gi.repository import Gio
 from gi.repository import GLib
 from gi.repository import GObject
 from gi.repository import Pango
+from gi.repository import GtkSource
 
 import meld.conf
 import meld.filters
@@ -41,6 +42,7 @@ class MeldSettings(GObject.GObject):
         self.on_setting_changed(settings, 'filename-filters')
         self.on_setting_changed(settings, 'text-filters')
         self.on_setting_changed(settings, 'use-system-font')
+        self.style_scheme = self._style_scheme_from_gsettings()
         settings.connect('changed', self.on_setting_changed)
 
     def on_setting_changed(self, settings, key):
@@ -56,9 +58,14 @@ class MeldSettings(GObject.GObject):
             self.font = self._current_font_from_gsetting()
             self.emit('changed', 'font')
         elif key in ('style-scheme'):
-            self.style_scheme = settings.get_string('style-scheme')
+            self.style_scheme = self._style_scheme_from_gsettings()
             self.emit('changed', 'style-scheme')
 
+    def _style_scheme_from_gsettings(self):
+        manager = GtkSource.StyleSchemeManager.get_default()
+        return GtkSource.StyleSchemeManager.get_scheme(manager,
+                settings.get_string('style-scheme'))
+
     def _filters_from_gsetting(self, key, filt_type):
         filter_params = settings.get_value(key)
         filters = [


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