[gnome-tweak-tool] convert tweaks to gtk widgets
- From: John Stowers <jstowers src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-tweak-tool] convert tweaks to gtk widgets
- Date: Sun, 18 Aug 2013 19:48:54 +0000 (UTC)
commit 256f5e8cc0dafc85ec54e05808ba009b39071422
Author: John Stowers <john stowers gmail com>
Date: Sun Aug 4 23:22:57 2013 +0200
convert tweaks to gtk widgets
gtweak/tweakmodel.py | 13 ++----
gtweak/tweaks/tweak_shell.py | 14 ++++--
gtweak/tweaks/tweak_shell_extensions.py | 13 +++--
gtweak/tweakview.py | 6 +-
gtweak/widgets.py | 74 +++++++++++++++++++------------
5 files changed, 69 insertions(+), 51 deletions(-)
---
diff --git a/gtweak/tweakmodel.py b/gtweak/tweakmodel.py
index 1bd044b..e8a52fb 100644
--- a/gtweak/tweakmodel.py
+++ b/gtweak/tweakmodel.py
@@ -45,8 +45,11 @@ TWEAK_SORT_LAST = 1e3
LOG = logging.getLogger(__name__)
-class Tweak:
+class Tweak(object):
+
main_window = None
+ widget_for_size_group = None
+
def __init__(self, name, description, **options):
self.name = name
self.description = description
@@ -61,14 +64,6 @@ class Tweak:
#would prohibit other tweaks from inheriting from GtkWidgets
self._notify_cb = None
- @property
- def widget(self):
- raise NotImplementedError
-
- @property
- def widget_for_size_group(self):
- return None
-
def search_matches(self, txt):
if self._search_cache == None:
self._search_cache = self.name.lower() + " " + self.description.lower()
diff --git a/gtweak/tweaks/tweak_shell.py b/gtweak/tweaks/tweak_shell.py
index 3e8131c..b623935 100644
--- a/gtweak/tweaks/tweak_shell.py
+++ b/gtweak/tweaks/tweak_shell.py
@@ -46,7 +46,7 @@ class ShowWindowButtons(GSettingsComboTweak):
loaded=_shell_loaded,
**options)
-class ShellThemeTweak(Tweak):
+class ShellThemeTweak(Gtk.Box, Tweak):
THEME_EXT_NAME = "user-theme gnome-shell-extensions gcampax github com"
THEME_GSETTINGS_SCHEMA = "org.gnome.shell.extensions.user-theme"
@@ -57,6 +57,7 @@ class ShellThemeTweak(Tweak):
THEME_DIR = os.path.join(GLib.get_user_data_dir(), "themes")
def __init__(self, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
Tweak.__init__(self, _("Shell theme"), _("Install custom or user themes for gnome-shell"), **options)
#check the shell is running and the usertheme extension is present
@@ -97,7 +98,9 @@ class ShellThemeTweak(Tweak):
if error:
cb = build_combo_box_text(None)
- self.widget = build_label_beside_widget(self.name, cb, warning=error)
+ build_label_beside_widget(self.name, cb,
+ warning=error,
+ hbox=self)
self.widget_for_size_group = cb
else:
#include both system, and user themes
@@ -131,7 +134,7 @@ class ShellThemeTweak(Tweak):
["application/zip"])
chooser.connect("file-set", self._on_file_set)
- self.widget = build_label_beside_widget(self.name, chooser, cb)
+ build_label_beside_widget(self.name, chooser, cb, hbox=self)
self.widget_for_size_group = cb
self.widget_sort_hint = TWEAK_SORT_LAST
@@ -202,7 +205,7 @@ class ShellThemeTweak(Tweak):
val = combo.get_model().get_value(combo.get_active_iter(), 0)
self._settings.set_string(ShellThemeTweak.THEME_GSETTINGS_NAME, val)
-class StaticWorkspaceTweak(Tweak):
+class StaticWorkspaceTweak(Gtk.Box, Tweak):
NUM_WORKSPACES_SCHEMA = "org.gnome.desktop.wm.preferences"
NUM_WORKSPACES_KEY = "num-workspaces"
@@ -212,6 +215,7 @@ class StaticWorkspaceTweak(Tweak):
def __init__(self, **options):
schema = adjust_schema_for_overrides(self.DYNAMIC_SCHEMA, self.DYNAMIC_KEY, options)
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
Tweak.__init__(self, _("Dynamic workspaces"), _("Disable gnome-shell dynamic workspace management,
use static workspaces"), **options)
try:
@@ -240,7 +244,7 @@ class StaticWorkspaceTweak(Tweak):
hb.pack_start(sw, False, False, 0)
hb.pack_start(sb, True, True, 0)
- self.widget = build_label_beside_widget(self.name, hb)
+ build_label_beside_widget(self.name, hb, hbox=self)
self.widget_for_size_group = hb
sg = build_horizontal_sizegroup()
diff --git a/gtweak/tweaks/tweak_shell_extensions.py b/gtweak/tweaks/tweak_shell_extensions.py
index 10c59e9..6e3275d 100644
--- a/gtweak/tweaks/tweak_shell_extensions.py
+++ b/gtweak/tweaks/tweak_shell_extensions.py
@@ -19,9 +19,10 @@ from gtweak.utils import DisableExtension
def N_(x): return x
-class _ShellExtensionTweak(Tweak):
+class _ShellExtensionTweak(Gtk.Box, Tweak):
def __init__(self, shell, ext, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
Tweak.__init__(self, ext["name"], ext.get("description",""), **options)
self._shell = shell
@@ -68,10 +69,11 @@ class _ShellExtensionTweak(Tweak):
widgets.append(sw)
- self.widget = build_label_beside_widget(
+ build_label_beside_widget(
ext["name"].lower().capitalize(),
*widgets,
- warning=warning)
+ warning=warning,
+ hbox=self)
self.widget_for_size_group = None
def _on_disable_extension(self, de, sw):
@@ -130,9 +132,10 @@ class _ShellExtensionTweak(Tweak):
if self.widget.get_visible() == True:
self.widget.show_all()
-class _ShellExtensionInstallerTweak(Tweak):
+class _ShellExtensionInstallerTweak(Gtk.Box, Tweak):
def __init__(self, shell, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
Tweak.__init__(self, _("Install Shell Extension"), "", **options)
self._shell = shell
@@ -149,7 +152,7 @@ class _ShellExtensionInstallerTweak(Tweak):
False, False, 0)
hb.pack_start(chooser, False, False, 0)
- self.widget = build_label_beside_widget(self.name, hb)
+ build_label_beside_widget(self.name, hb, hbox=self)
self.widget_for_size_group = hb
self.loaded = self._shell is not None
diff --git a/gtweak/tweakview.py b/gtweak/tweakview.py
index cf087f4..cc2c334 100644
--- a/gtweak/tweakview.py
+++ b/gtweak/tweakview.py
@@ -149,7 +149,7 @@ class Window(Gtk.ApplicationWindow):
if isinstance(t, Title):
cssname = "tweak-title"
row = Gtk.ListBoxRow(name=cssname)
- row.add(t.widget)
+ row.add(t)
box.add(row)
t.set_notify_cb(self._on_tweak_notify)
scroll = Gtk.ScrolledWindow()
@@ -216,9 +216,9 @@ class Window(Gtk.ApplicationWindow):
def show_only_tweaks(self, tweaks):
for t in self._model.tweaks:
if t in tweaks:
- t.widget.show_all()
+ t.show_all()
else:
- t.widget.hide()
+ t.hide()
def _on_tweak_notify_response(self, info, response, func):
self._detail_vbox.remove(info)
diff --git a/gtweak/widgets.py b/gtweak/widgets.py
index d732328..deffb62 100644
--- a/gtweak/widgets.py
+++ b/gtweak/widgets.py
@@ -190,7 +190,7 @@ class _GSettingsTweak(Tweak):
need_logout=True,
)
-class _DependableMixin:
+class _DependableMixin(object):
def add_dependency_on_tweak(self, depends, depends_how):
if isinstance(depends, Tweak):
@@ -203,23 +203,25 @@ class _DependableMixin:
depends.settings,
depends.key_name,
)
- self.widget.set_sensitive(sensitive)
+ self.set_sensitive(sensitive)
depends.settings.connect("changed::%s" % depends.key_name, self._on_changed_depend)
def _on_changed_depend(self, settings, key_name):
sensitive = self._depends_how(settings,key_name)
- self.widget.set_sensitive(sensitive)
+ self.set_sensitive(sensitive)
-class GSettingsCheckTweak(_GSettingsTweak, _DependableMixin):
+class GSettingsCheckTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, name, schema_name, key_name, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, schema_name, key_name, **options)
- self.widget = Gtk.CheckButton.new_with_label(name)
+ widget = Gtk.CheckButton.new_with_label(name)
self.settings.bind(
key_name,
- self.widget,
+ widget,
"active", Gio.SettingsBindFlags.DEFAULT)
+ self.add(widget)
self.widget_for_size_group = None
self.add_dependency_on_tweak(
@@ -227,14 +229,15 @@ class GSettingsCheckTweak(_GSettingsTweak, _DependableMixin):
options.get("depends_how")
)
-class GSettingsSwitchTweak(_GSettingsTweak, _DependableMixin):
+class GSettingsSwitchTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, name, schema_name, key_name, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, schema_name, key_name, **options)
w = Gtk.Switch()
self.settings.bind(key_name, w, "active", Gio.SettingsBindFlags.DEFAULT)
- self.widget = build_label_beside_widget(name, w)
- # never change the size of a switch
+
+ build_label_beside_widget(name, w, hbox=self)
self.widget_for_size_group = None
self.add_dependency_on_tweak(
@@ -242,17 +245,19 @@ class GSettingsSwitchTweak(_GSettingsTweak, _DependableMixin):
options.get("depends_how")
)
-class GSettingsFontButtonTweak(_GSettingsTweak, _DependableMixin):
+class GSettingsFontButtonTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, name, schema_name, key_name, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, schema_name, key_name, **options)
w = Gtk.FontButton()
self.settings.bind(key_name, w, "font-name", Gio.SettingsBindFlags.DEFAULT)
- self.widget = build_label_beside_widget(name, w)
+ build_label_beside_widget(name, w, hbox=self)
self.widget_for_size_group = w
-class GSettingsRangeTweak(_GSettingsTweak, _DependableMixin):
+class GSettingsRangeTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, schema_name, key_name, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, schema_name, key_name, **options)
#returned variant is range:(min, max)
@@ -260,11 +265,13 @@ class GSettingsRangeTweak(_GSettingsTweak, _DependableMixin):
w = Gtk.HScale.new_with_range(_min, _max, options.get('adjustment_step', 1))
self.settings.bind(key_name, w.get_adjustment(), "value", Gio.SettingsBindFlags.DEFAULT)
- self.widget = build_label_beside_widget(self.name, w)
+
+ build_label_beside_widget(self.name, w, hbox=self)
self.widget_for_size_group = w
-class GSettingsSpinButtonTweak(_GSettingsTweak, _DependableMixin):
+class GSettingsSpinButtonTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, schema_name, key_name, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, schema_name, key_name, **options)
#returned variant is range:(min, max)
@@ -275,11 +282,13 @@ class GSettingsSpinButtonTweak(_GSettingsTweak, _DependableMixin):
w.set_adjustment(adjustment)
w.set_digits(options.get('digits', 0))
self.settings.bind(key_name, adjustment, "value", Gio.SettingsBindFlags.DEFAULT)
- self.widget = build_label_beside_widget(self.name, w)
+
+ build_label_beside_widget(self.name, w, hbox=self)
self.widget_for_size_group = w
-class GSettingsComboEnumTweak(_GSettingsTweak, _DependableMixin):
+class GSettingsComboEnumTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, name, schema_name, key_name, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, schema_name, key_name, **options)
_type, values = self.settings.get_range(key_name)
@@ -290,10 +299,9 @@ class GSettingsComboEnumTweak(_GSettingsTweak, _DependableMixin):
w.connect('changed', self._on_combo_changed)
self.combo = w
- self.widget = build_label_beside_widget(name, w)
+ build_label_beside_widget(name, w, hbox=self)
self.widget_for_size_group = w
-
def _values_are_different(self):
#to stop bouncing back and forth between changed signals. I suspect there must be a nicer
#Gio.settings_bind way to fix this
@@ -314,8 +322,9 @@ class GSettingsComboEnumTweak(_GSettingsTweak, _DependableMixin):
if self._values_are_different():
self.settings.set_string(self.key_name, val)
-class GSettingsComboTweak(_GSettingsTweak, _DependableMixin):
+class GSettingsComboTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, name, schema_name, key_name, key_options, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, schema_name, key_name, **options)
#check key_options is iterable
@@ -328,10 +337,11 @@ class GSettingsComboTweak(_GSettingsTweak, _DependableMixin):
self.settings.get_string(self.key_name),
*key_options)
self.combo.connect('changed', self._on_combo_changed)
- self.widget = build_label_beside_widget(name, self.combo)
+ self.settings.connect('changed::'+self.key_name, self._on_setting_changed)
+
+ build_label_beside_widget(name, self.combo,hbox=self)
self.widget_for_size_group = self.combo
- self.settings.connect('changed::'+self.key_name, self._on_setting_changed)
def _on_setting_changed(self, setting, key):
assert key == self.key_name
@@ -364,8 +374,9 @@ class FileChooserButton(Gtk.FileChooserButton):
self.set_local_only(local_only)
self.set_action(Gtk.FileChooserAction.OPEN)
-class GSettingsFileChooserButtonTweak(_GSettingsTweak, _DependableMixin):
+class GSettingsFileChooserButtonTweak(Gtk.Box, _GSettingsTweak, _DependableMixin):
def __init__(self, schema_name, key_name, local_only, mimetypes, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, schema_name, key_name, **options)
self.settings.connect('changed::'+self.key_name, self._on_setting_changed)
@@ -374,7 +385,7 @@ class GSettingsFileChooserButtonTweak(_GSettingsTweak, _DependableMixin):
self.filechooser.set_uri(self.settings.get_string(self.key_name))
self.filechooser.connect("file-set", self._on_file_set)
- self.widget = build_label_beside_widget(self.name, self.filechooser)
+ build_label_beside_widget(self.name, self.filechooser, hbox=self)
self.widget_for_size_group = self.filechooser
def _values_are_different(self):
@@ -388,8 +399,9 @@ class GSettingsFileChooserButtonTweak(_GSettingsTweak, _DependableMixin):
if uri and self._values_are_different():
self.settings.set_string(self.key_name, uri)
-class DarkThemeSwitcher(Tweak):
+class DarkThemeSwitcher(Gtk.Box, Tweak):
def __init__(self, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
Tweak.__init__(self, _("Enable dark theme for all applications"),
_("Enable the dark theme hint for all the applications in the session"),
**options)
@@ -402,7 +414,9 @@ class DarkThemeSwitcher(Tweak):
title = _("Global Dark Theme")
description = _("Applications need to be restarted for change to take effect")
w.connect("notify::active", self._on_switch_changed)
- self.widget = build_label_beside_widget(title, w, desc=description)
+
+ build_label_beside_widget(title, w, desc=description, hbox=self)
+ self.widget_for_size_group = None
def _on_switch_changed(self, switch, param):
active = switch.get_active()
@@ -413,10 +427,12 @@ class DarkThemeSwitcher(Tweak):
except:
self.notify_error(_("Error writing setting"))
-class Title(Tweak):
+class Title(Gtk.Box, Tweak):
def __init__(self, name, desc, **options):
+ Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
Tweak.__init__(self, name, desc, **options)
- self.widget = Gtk.Label()
- self.widget.set_markup("<b>"+name+"</b>")
- self.widget.props.xalign = 0.0
+ widget = Gtk.Label()
+ widget.set_markup("<b>"+name+"</b>")
+ widget.props.xalign = 0.0
+ self.add(widget)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]