[gnome-tweak-tool] Refactor tweakgroup datamodel to allow later loading
- From: John Stowers <jstowers src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-tweak-tool] Refactor tweakgroup datamodel to allow later loading
- Date: Wed, 21 Aug 2013 22:22:40 +0000 (UTC)
commit 6a6e76a215ebcce4e99720bb94a8538a98640fe3
Author: John Stowers <john stowers gmail com>
Date: Thu Aug 22 00:04:38 2013 +0200
Refactor tweakgroup datamodel to allow later loading
gtweak/tweakmodel.py | 5 +++++
gtweak/widgets.py | 19 +++++++++++++++----
2 files changed, 20 insertions(+), 4 deletions(-)
---
diff --git a/gtweak/tweakmodel.py b/gtweak/tweakmodel.py
index 1e6f344..230e5e3 100644
--- a/gtweak/tweakmodel.py
+++ b/gtweak/tweakmodel.py
@@ -74,6 +74,11 @@ class TweakGroup(object):
self.tweaks = [t for t in tweaks if t.loaded]
self.uid = options.get('uid', self.__class__.__name__)
+ def add_tweak(self, tweak):
+ if tweak.loaded:
+ self.tweaks.append(tweak)
+ return True
+
class TweakModel(Gtk.ListStore):
(COLUMN_NAME,
COLUMN_TWEAK) = range(2)
diff --git a/gtweak/widgets.py b/gtweak/widgets.py
index 09e5de7..8221421 100644
--- a/gtweak/widgets.py
+++ b/gtweak/widgets.py
@@ -209,12 +209,19 @@ class ListBoxTweakGroup(Gtk.ListBox, TweakGroup):
self.props.vexpand = False
self.props.valign = Gtk.Align.START
- TweakGroup.__init__(self, name, *tweaks, **options)
-
self._sg = Gtk.SizeGroup(mode=Gtk.SizeGroupMode.HORIZONTAL)
self._sg.props.ignore_hidden = True
- for t in self.tweaks:
+ TweakGroup.__init__(self, name, **options)
+
+ for t in tweaks:
+ self.add_tweak_row(t)
+
+ #FIXME: need to add remove_tweak_row and remove_tweak (which clears
+ #the search cache etc)
+
+ def add_tweak_row(self, t, position=None):
+ if self.add_tweak(t):
if isinstance(t, Gtk.ListBoxRow):
row = t
else:
@@ -223,9 +230,13 @@ class ListBoxTweakGroup(Gtk.ListBox, TweakGroup):
if isinstance(t, Title):
row.get_style_context().add_class("title")
row.add(t)
- self.add(row)
+ if position is None:
+ self.add(row)
+ else:
+ self.insert(row, position)
if t.widget_for_size_group:
self._sg.add_widget(t.widget_for_size_group)
+ return row
class GSettingsCheckTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, name, schema_name, key_name, **options):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]