From 5748e674150b8396aa0e61d16ca99e3287c71496 Mon Sep 17 00:00:00 2001 From: Mark Pariente Date: Wed, 8 Oct 2014 10:43:29 -0700 Subject: [PATCH 2/2] 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 5e1f308..5ebe330 100644 --- a/meld/filediff.py +++ b/meld/filediff.py @@ -850,9 +850,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 = [ -- 2.1.2