Skip to content

Commit 411f5a0

Browse files
mrpdaemonkaiw
authored andcommitted
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.
1 parent 9ec97d2 commit 411f5a0

3 files changed

Lines changed: 14 additions & 10 deletions

File tree

meld/filediff.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -852,9 +852,6 @@ def load_font(self):
852852
def on_setting_changed(self, settings, key):
853853
if key == 'font':
854854
self.load_font()
855-
elif key == 'style-scheme':
856-
for i in range(3):
857-
self.textview[i].get_buffer().change_style_scheme(meldsettings.style_scheme)
858855

859856
def check_save_modified(self, label=None):
860857
response = Gtk.ResponseType.OK

meld/meldbuffer.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from gi.repository import GtkSource
2525

2626
from meld.conf import _
27-
from meld.settings import bind_settings,settings
27+
from meld.settings import bind_settings,meldsettings
2828
from meld.util.compat import text_type
2929

3030

@@ -41,12 +41,12 @@ def __init__(self, filename=None):
4141
bind_settings(self)
4242
self.data = MeldBufferData(filename)
4343
self.user_action_count = 0
44-
self.change_style_scheme(settings.get_string('style-scheme'))
44+
meldsettings.connect('changed', self.on_setting_changed)
45+
GtkSource.Buffer.set_style_scheme(self, meldsettings.style_scheme)
4546

46-
def change_style_scheme(self, scheme):
47-
manager = GtkSource.StyleSchemeManager.get_default()
48-
style = GtkSource.StyleSchemeManager.get_scheme(manager, scheme)
49-
GtkSource.Buffer.set_style_scheme(self, style)
47+
def on_setting_changed(self, meldsettings, key):
48+
if key == 'style-scheme':
49+
GtkSource.Buffer.set_style_scheme(self, meldsettings.style_scheme)
5050

5151
def do_begin_user_action(self, *args):
5252
self.user_action_count += 1

meld/settings.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from gi.repository import GLib
2020
from gi.repository import GObject
2121
from gi.repository import Pango
22+
from gi.repository import GtkSource
2223

2324
import meld.conf
2425
import meld.filters
@@ -41,6 +42,7 @@ def __init__(self):
4142
self.on_setting_changed(settings, 'filename-filters')
4243
self.on_setting_changed(settings, 'text-filters')
4344
self.on_setting_changed(settings, 'use-system-font')
45+
self.style_scheme = self._style_scheme_from_gsettings()
4446
settings.connect('changed', self.on_setting_changed)
4547

4648
def on_setting_changed(self, settings, key):
@@ -56,9 +58,14 @@ def on_setting_changed(self, settings, key):
5658
self.font = self._current_font_from_gsetting()
5759
self.emit('changed', 'font')
5860
elif key in ('style-scheme'):
59-
self.style_scheme = settings.get_string('style-scheme')
61+
self.style_scheme = self._style_scheme_from_gsettings()
6062
self.emit('changed', 'style-scheme')
6163

64+
def _style_scheme_from_gsettings(self):
65+
manager = GtkSource.StyleSchemeManager.get_default()
66+
return GtkSource.StyleSchemeManager.get_scheme(manager,
67+
settings.get_string('style-scheme'))
68+
6269
def _filters_from_gsetting(self, key, filt_type):
6370
filter_params = settings.get_value(key)
6471
filters = [

0 commit comments

Comments
 (0)