Commit a4869c79 authored by John Stowers's avatar John Stowers

More cleaning of default handling and presentation for ComboBox lists

parent b739c222
...@@ -78,7 +78,10 @@ class KeyThemeSwitcher(GSettingsComboTweak): ...@@ -78,7 +78,10 @@ class KeyThemeSwitcher(GSettingsComboTweak):
GSettingsComboTweak.__init__(self, GSettingsComboTweak.__init__(self,
"org.gnome.desktop.interface", "org.gnome.desktop.interface",
"gtk-key-theme", "gtk-key-theme",
make_combo_list_with_default(self._get_valid_key_themes(), "Default"), make_combo_list_with_default(
self._get_valid_key_themes(),
"Default",
default_text="<i>Default</i>"),
**options) **options)
def _get_valid_key_themes(self): def _get_valid_key_themes(self):
......
...@@ -24,7 +24,7 @@ import json ...@@ -24,7 +24,7 @@ import json
from gi.repository import Gtk from gi.repository import Gtk
from gi.repository import GLib from gi.repository import GLib
from gtweak.utils import walk_directories, extract_zip_file from gtweak.utils import walk_directories, extract_zip_file, make_combo_list_with_default
from gtweak.gsettings import GSettingsSetting from gtweak.gsettings import GSettingsSetting
from gtweak.gshellwrapper import GnomeShell from gtweak.gshellwrapper import GnomeShell
from gtweak.tweakmodel import Tweak, TweakGroup from gtweak.tweakmodel import Tweak, TweakGroup
...@@ -93,13 +93,17 @@ class ShellThemeTweak(Tweak): ...@@ -93,13 +93,17 @@ class ShellThemeTweak(Tweak):
valid = walk_directories(dirs, lambda d: valid = walk_directories(dirs, lambda d:
os.path.exists(os.path.join(d, "gnome-shell")) and \ os.path.exists(os.path.join(d, "gnome-shell")) and \
os.path.exists(os.path.join(d, "gnome-shell", "gnome-shell.css"))) os.path.exists(os.path.join(d, "gnome-shell", "gnome-shell.css")))
#the default value to reset the shell is an empty string
valid.extend( ("",) )
#build a combo box with all the valid theme options #build a combo box with all the valid theme options
#manually add Adwaita to represent the default #manually add Adwaita to represent the default
cb = build_combo_box_text( cb = build_combo_box_text(
self._settings.get_string(ShellThemeTweak.THEME_GSETTINGS_NAME), self._settings.get_string(ShellThemeTweak.THEME_GSETTINGS_NAME),
("", "<i>Default</i>"), *make_combo_list_with_default(
*[(v,v) for v in valid]) valid,
"",
default_text="<i>Default</i>"))
cb.connect('changed', self._on_combo_changed) cb.connect('changed', self._on_combo_changed)
self._combo = cb self._combo = cb
......
...@@ -26,7 +26,7 @@ from gtweak.gconf import GConfSetting ...@@ -26,7 +26,7 @@ from gtweak.gconf import GConfSetting
from gi.repository import GLib from gi.repository import GLib
def make_combo_list_with_default(opts, default, title=True): def make_combo_list_with_default(opts, default, title=True, default_text=None):
""" """
Turns a list of values into a list of value,name (where name is the Turns a list of values into a list of value,name (where name is the
display name a user will see in a combo box). If a value is opt is display name a user will see in a combo box). If a value is opt is
...@@ -38,18 +38,18 @@ def make_combo_list_with_default(opts, default, title=True): ...@@ -38,18 +38,18 @@ def make_combo_list_with_default(opts, default, title=True):
""" """
themes = [] themes = []
for t in opts: for t in opts:
if t == "default" and t != default: if t.lower() == "default" and t != default:
#some themes etc are actually called default. Ick. Dont show them if they #some themes etc are actually called default. Ick. Dont show them if they
#are not the actual default value #are not the actual default value
continue continue
if title: if title and len(t):
name = t[0].upper() + t[1:] name = t[0].upper() + t[1:]
else: else:
name = t name = t
if t == default: if t == default:
name ="%s <i>(default)</i>" % name name = default_text or "%s <i>(default)</i>" % name
themes.append((t, name)) themes.append((t, name))
return themes return themes
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment