[gnome-tweak-tool] Factor out a GSettingsComboTweak
- From: John Stowers <jstowers src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-tweak-tool] Factor out a GSettingsComboTweak
- Date: Fri, 18 Mar 2011 05:30:17 +0000 (UTC)
commit 153dcb72283c6ee24368db4ab1b387d4c638115d
Author: John Stowers <john stowers gmail com>
Date: Fri Mar 18 15:04:20 2011 +1300
Factor out a GSettingsComboTweak
gtweak/tweaks/tweak_interface.py | 32 ++++++++------------------------
gtweak/widgets.py | 20 ++++++++++++++++++++
2 files changed, 28 insertions(+), 24 deletions(-)
---
diff --git a/gtweak/tweaks/tweak_interface.py b/gtweak/tweaks/tweak_interface.py
index 6062c7f..4165309 100644
--- a/gtweak/tweaks/tweak_interface.py
+++ b/gtweak/tweaks/tweak_interface.py
@@ -3,40 +3,24 @@ import os.path
from gi.repository import Gtk
import gtweak
-from gtweak.tweakmodel import Tweak, TweakGroup
-from gtweak.widgets import GSettingsSwitchTweak, build_label_beside_widget, build_combo_box_text
-from gtweak.gsettings import GSettingsSetting
+from gtweak.tweakmodel import TweakGroup
+from gtweak.widgets import GSettingsSwitchTweak, GSettingsComboTweak
-
-
-class ThemeSwitcher(Tweak):
+class ThemeSwitcher(GSettingsComboTweak):
""" Only shows themes that have variations for gtk+-3 and gtk+-2 """
def __init__(self, **options):
- self.key_name = "gtk-theme"
- self.settings = GSettingsSetting("org.gnome.desktop.interface")
- Tweak.__init__(self,
- self.settings.schema_get_summary(self.key_name),
- self.settings.schema_get_description(self.key_name),
- **options)
-
valid_themes = []
themedir = os.path.join(gtweak.DATA_DIR, "themes")
for t in os.listdir(themedir):
if os.path.exists(os.path.join(themedir, t, "gtk-2.0")) and \
os.path.exists(os.path.join(themedir, t, "gtk-3.0")):
valid_themes.append(t)
-
- combo = build_combo_box_text(
- self.settings.get_value(self.key_name),
- *[(t, t) for t in valid_themes])
- combo.connect('changed', self._on_combo_changed)
- self.widget = build_label_beside_widget(self.name, combo)
- def _on_combo_changed(self, combo):
- _iter = combo.get_active_iter()
- if _iter:
- value = combo.get_model().get_value(_iter, 0)
- self.settings.set_value(self.key_name, value)
+ GSettingsComboTweak.__init__(self,
+ "org.gnome.desktop.interface",
+ "gtk-theme",
+ [(t, t) for t in valid_themes],
+ **options)
TWEAK_GROUPS = (
TweakGroup(
diff --git a/gtweak/widgets.py b/gtweak/widgets.py
index 67d0e2d..29646f5 100644
--- a/gtweak/widgets.py
+++ b/gtweak/widgets.py
@@ -112,6 +112,26 @@ class GSettingsComboEnumTweak(_GSettingsTweak):
if self._values_are_different():
self.settings.set_value(self.key_name, val)
+class GSettingsComboTweak(_GSettingsTweak):
+ def __init__(self, schema_name, key_name, key_options, **options):
+ _GSettingsTweak.__init__(self, schema_name, key_name, **options)
+
+ assert len(key_options) > 0
+ assert len(key_options[0]) == 2
+
+ combo = build_combo_box_text(
+ self.settings.get_value(self.key_name),
+ *key_options)
+ combo.connect('changed', self._on_combo_changed)
+ self.widget = build_label_beside_widget(self.name, combo)
+ self.widget_for_size_group = combo
+
+ def _on_combo_changed(self, combo):
+ _iter = combo.get_active_iter()
+ if _iter:
+ value = combo.get_model().get_value(_iter, 0)
+ self.settings.set_value(self.key_name, value)
+
class _GConfTweak(Tweak):
def __init__(self, key_name, key_type, **options):
self.gconf = GConfSetting(key_name, key_type)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]