[meld] style: Run common style initialisation from settings initialisation
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld] style: Run common style initialisation from settings initialisation
- Date: Fri, 5 Jul 2019 01:25:07 +0000 (UTC)
commit c1262d2ce6d353eeb19bfd716b80d37a28d9653d
Author: Kai Willadsen <kai willadsen gmail com>
Date: Fri Jul 5 10:19:01 2019 +1000
style: Run common style initialisation from settings initialisation
This lets us handle all of the style scheme settings as globals
controlled directly by the central settings handling. Widgets already
hook in to style changes to update their colour maps.
meld/settings.py | 5 ++++-
meld/style.py | 23 ++++++++++-------------
2 files changed, 14 insertions(+), 14 deletions(-)
---
diff --git a/meld/settings.py b/meld/settings.py
index 30a8b9e4..33ce1a28 100644
--- a/meld/settings.py
+++ b/meld/settings.py
@@ -56,8 +56,11 @@ class MeldSettings(GObject.GObject):
self.emit('changed', 'style-scheme')
def _style_scheme_from_gsettings(self):
+ from meld.style import set_base_style_scheme
manager = GtkSource.StyleSchemeManager.get_default()
- return manager.get_scheme(settings.get_string('style-scheme'))
+ scheme = manager.get_scheme(settings.get_string('style-scheme'))
+ set_base_style_scheme(scheme)
+ return scheme
def _filters_from_gsetting(self, key, filt_type):
filter_params = settings.get_value(key)
diff --git a/meld/style.py b/meld/style.py
index c05d9efc..1cf330de 100644
--- a/meld/style.py
+++ b/meld/style.py
@@ -33,18 +33,17 @@ class MeldStyleScheme(enum.Enum):
dark = "meld-dark"
+style_scheme: Optional[GtkSource.StyleScheme] = None
base_style_scheme: Optional[GtkSource.StyleScheme] = None
-def get_base_style_scheme() -> GtkSource.StyleScheme:
+def set_base_style_scheme(
+ new_style_scheme: GtkSource.StyleScheme) -> GtkSource.StyleScheme:
global base_style_scheme
+ global style_scheme
- if base_style_scheme:
- return base_style_scheme
-
- from meld.settings import meldsettings
- style_scheme = meldsettings.style_scheme
+ style_scheme = new_style_scheme
# Get our text background colour by checking the 'text' style of
# the user's selected style scheme, falling back to the GTK+ theme
@@ -72,21 +71,19 @@ def get_base_style_scheme() -> GtkSource.StyleScheme:
MeldStyleScheme.dark if use_dark else MeldStyleScheme.base)
manager = GtkSource.StyleSchemeManager.get_default()
- base_style_scheme = manager.get_scheme(base_scheme_name)
+ base_style_scheme = manager.get_scheme(base_scheme_name.value)
+ if style_scheme.props.id in (MeldStyleScheme.dark.value, MeldStyleScheme.base.value):
+ style_scheme = base_style_scheme
return base_style_scheme
def colour_lookup_with_fallback(name: str, attribute: str) -> Gdk.RGBA:
- from meld.settings import meldsettings
- source_style = meldsettings.style_scheme
-
- style = source_style.get_style(name) if source_style else None
+ style = style_scheme.get_style(name) if style_scheme else None
style_attr = getattr(style.props, attribute) if style else None
if not style or not style_attr:
- base_style = get_base_style_scheme()
try:
- style = base_style.get_style(name)
+ style = base_style_scheme.get_style(name)
style_attr = getattr(style.props, attribute)
except AttributeError:
pass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]