[gnome-tweak-tool] generalise the ZipFileChooserButton a little



commit a40c6c743f2e12038fbafaa179b29cfe162ac4ef
Author: John Stowers <john stowers gmail com>
Date:   Sun Dec 2 18:27:41 2012 +0100

    generalise the ZipFileChooserButton a little

 gtweak/tweaks/tweak_shell.py            |    7 +++++--
 gtweak/tweaks/tweak_shell_extensions.py |    7 +++++--
 gtweak/widgets.py                       |   14 ++++++++------
 3 files changed, 18 insertions(+), 10 deletions(-)
---
diff --git a/gtweak/tweaks/tweak_shell.py b/gtweak/tweaks/tweak_shell.py
index bd90fc8..4696669 100644
--- a/gtweak/tweaks/tweak_shell.py
+++ b/gtweak/tweaks/tweak_shell.py
@@ -28,7 +28,7 @@ from gtweak.utils import walk_directories, extract_zip_file, make_combo_list_wit
 from gtweak.gsettings import GSettingsSetting, GSettingsMissingError, GSettingsFakeSetting
 from gtweak.gshellwrapper import GnomeShellFactory
 from gtweak.tweakmodel import Tweak, TweakGroup, TWEAK_GROUP_THEME, TWEAK_GROUP_SHELL, TWEAK_SORT_LAST
-from gtweak.widgets import ZipFileChooserButton, GSettingsComboTweak, GSettingsComboEnumTweak, GSettingsSwitchTweak, build_label_beside_widget, build_horizontal_sizegroup, build_combo_box_text, UI_BOX_SPACING
+from gtweak.widgets import FileChooserButtonTweak, GSettingsComboTweak, GSettingsComboEnumTweak, GSettingsSwitchTweak, build_label_beside_widget, build_horizontal_sizegroup, build_combo_box_text, UI_BOX_SPACING
 
 class ShowWindowButtons(GSettingsComboTweak):
     def __init__(self, **options):
@@ -125,7 +125,10 @@ class ShellThemeTweak(Tweak):
             self._combo = cb
 
             #a filechooser to install new themes
-            chooser = ZipFileChooserButton(_("Select a theme"))
+            chooser = FileChooserButtonTweak(
+                        _("Select a theme"),
+                        True,
+                        "application/zip")
             chooser.connect("file-set", self._on_file_set)
 
             self.widget = build_label_beside_widget(self.name, chooser, cb)
diff --git a/gtweak/tweaks/tweak_shell_extensions.py b/gtweak/tweaks/tweak_shell_extensions.py
index 9123e02..71c7101 100644
--- a/gtweak/tweaks/tweak_shell_extensions.py
+++ b/gtweak/tweaks/tweak_shell_extensions.py
@@ -10,7 +10,7 @@ from gi.repository import GLib
 from gtweak.utils import extract_zip_file, execute_subprocess
 from gtweak.gshellwrapper import GnomeShell, GnomeShellFactory
 from gtweak.tweakmodel import Tweak, TweakGroup
-from gtweak.widgets import ZipFileChooserButton, build_label_beside_widget, build_horizontal_sizegroup, build_tight_button, UI_BOX_SPACING
+from gtweak.widgets import FileChooserButtonTweak, build_label_beside_widget, build_horizontal_sizegroup, build_tight_button, UI_BOX_SPACING
 
 def N_(x): return x
 
@@ -83,7 +83,10 @@ class _ShellExtensionInstallerTweak(Tweak):
 
         self._shell = shell
 
-        chooser = ZipFileChooserButton(_("Select an extension"))
+        chooser = FileChooserButtonTweak(
+                        _("Select an extension"),
+                        True,
+                        "application/zip")
         chooser.connect("file-set", self._on_file_set)
 
         hb = Gtk.HBox(spacing=UI_BOX_SPACING)
diff --git a/gtweak/widgets.py b/gtweak/widgets.py
index f20b55a..6db3461 100644
--- a/gtweak/widgets.py
+++ b/gtweak/widgets.py
@@ -302,16 +302,18 @@ class GConfFontButtonTweak(_GConfTweak):
     def _on_fontbutton_changed(self, btn, param):
         self.gconf.set_value(btn.props.font_name)
 
-class ZipFileChooserButton(Gtk.FileChooserButton):
-    def __init__(self, title):
+class FileChooserButtonTweak(Gtk.FileChooserButton):
+    def __init__(self, title, local_only, mimetypes=()):
         Gtk.FileChooserButton.__init__(self, title=title)
 
-        f = Gtk.FileFilter()
-        f.add_mime_type("application/zip")
-        self.set_filter(f)
+        if mimetypes:
+            f = Gtk.FileFilter()
+            for m in mimetypes:
+                f.add_mime_type(m)
+            self.set_filter(f)
 
         #self.set_width_chars(15)
-        self.set_local_only(True)
+        self.set_local_only(local_only)
 
 class DarkThemeSwitcher(Tweak):
     def __init__(self, **options):



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]