[meld] meldbuffer, sourceview: Move buffer style scheme handling to sourceview



commit 4cd9779a6d312d2eb8ab9b1baebb4bec7ed6fd15
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Fri Jul 5 10:00:29 2019 +1000

    meldbuffer, sourceview: Move buffer style scheme handling to sourceview
    
    While this kind of feels like moving it to the wrong place, it's
    actually sensible because it's the only sane way to control when we
    access the MeldSettings object. With `MeldSourceView` we do this by
    delaying until realize(), but `MeldBuffer` is a simple GObject and so
    doesn't have the same life-cycle.

 meld/meldbuffer.py | 8 +-------
 meld/sourceview.py | 8 ++++++--
 2 files changed, 7 insertions(+), 9 deletions(-)
---
diff --git a/meld/meldbuffer.py b/meld/meldbuffer.py
index fdec5180..33dfb861 100644
--- a/meld/meldbuffer.py
+++ b/meld/meldbuffer.py
@@ -22,7 +22,7 @@ from gi.repository import GObject
 from gi.repository import GtkSource
 
 from meld.conf import _
-from meld.settings import bind_settings, meldsettings
+from meld.settings import bind_settings
 
 log = logging.getLogger(__name__)
 
@@ -40,12 +40,6 @@ class MeldBuffer(GtkSource.Buffer):
         bind_settings(self)
         self.data = MeldBufferData()
         self.undo_sequence = None
-        meldsettings.connect('changed', self.on_setting_changed)
-        self.set_style_scheme(meldsettings.style_scheme)
-
-    def on_setting_changed(self, meldsettings, key):
-        if key == 'style-scheme':
-            self.set_style_scheme(meldsettings.style_scheme)
 
     def do_begin_user_action(self, *args):
         if self.undo_sequence:
diff --git a/meld/sourceview.py b/meld/sourceview.py
index 52cb7c11..54641d6a 100644
--- a/meld/sourceview.py
+++ b/meld/sourceview.py
@@ -238,10 +238,13 @@ class MeldSourceView(GtkSource.View, SourceViewHelperMixin):
                 "meld:syncpoint-outline", "foreground")
             self.fill_colors, self.line_colors = get_common_theme()
 
-            tag = self.get_buffer().get_tag_table().lookup("inline")
+            buf = self.get_buffer()
+            buf.set_style_scheme(settings.style_scheme)
+
+            tag = buf.get_tag_table().lookup("inline")
             tag.props.background_rgba = colour_lookup_with_fallback(
                 "meld:inline", "background")
-            tag = self.get_buffer().get_tag_table().lookup("dimmed")
+            tag = buf.get_tag_table().lookup("dimmed")
             tag.props.foreground_rgba = colour_lookup_with_fallback(
                 "meld:dimmed", "foreground")
 
@@ -289,6 +292,7 @@ class MeldSourceView(GtkSource.View, SourceViewHelperMixin):
 
         self.on_setting_changed(meld_settings, 'font')
         self.on_setting_changed(meld_settings, 'style-scheme')
+        self.get_buffer().set_style_scheme(meld_settings.style_scheme)
 
         meld_settings.connect('changed', self.on_setting_changed)
 


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