Philipp Hörist pushed to branch master at gajim / gajim

Commits:
5510e042 by Philipp Hörist at 2017-11-01T11:42:44+01:00
Make OptionsDialog extendable

Plugins or other code can pass custom Options

- - - - -
f397e1b7 by Philipp Hörist at 2017-11-01T12:25:19+01:00
Rename OptionType.BOOL to VALUE

- - - - -


3 changed files:

- gajim/common/const.py
- gajim/dialogs.py
- gajim/options_dialog.py


Changes:

=====================================
gajim/common/const.py
=====================================
--- a/gajim/common/const.py
+++ b/gajim/common/const.py
@@ -24,7 +24,7 @@ class OptionKind(IntEnum):
 class OptionType(IntEnum):
     ACCOUNT_CONFIG = 0
     CONFIG = 1
-    BOOL = 2
+    VALUE = 2
     ACTION = 3
     DIALOG = 4
 


=====================================
gajim/dialogs.py
=====================================
--- a/gajim/dialogs.py
+++ b/gajim/dialogs.py
@@ -3439,24 +3439,24 @@ class XMLConsoleWindow(Gtk.Window):
     def on_filter_options(self, *args):
         options = [
             Option(OptionKind.SWITCH, 'Presence',
-                    OptionType.BOOL, self.presence,
+                    OptionType.VALUE, self.presence,
                     callback=self.on_option, data='presence'),
 
             Option(OptionKind.SWITCH, 'Message',
-                    OptionType.BOOL, self.message,
+                    OptionType.VALUE, self.message,
                     callback=self.on_option, data='message'),
 
-            Option(OptionKind.SWITCH, 'Iq', OptionType.BOOL, self.iq,
+            Option(OptionKind.SWITCH, 'Iq', OptionType.VALUE, self.iq,
                     callback=self.on_option, data='iq'),
 
             Option(OptionKind.SWITCH, 'Stream\nManagement',
-                    OptionType.BOOL, self.stream,
+                    OptionType.VALUE, self.stream,
                     callback=self.on_option, data='stream'),
 
-            Option(OptionKind.SWITCH, 'In', OptionType.BOOL, self.incoming,
+            Option(OptionKind.SWITCH, 'In', OptionType.VALUE, self.incoming,
                     callback=self.on_option, data='incoming'),
 
-            Option(OptionKind.SWITCH, 'Out', OptionType.BOOL, self.outgoing,
+            Option(OptionKind.SWITCH, 'Out', OptionType.VALUE, self.outgoing,
                     callback=self.on_option, data='outgoing'),
             ]
 


=====================================
gajim/options_dialog.py
=====================================
--- a/gajim/options_dialog.py
+++ b/gajim/options_dialog.py
@@ -8,7 +8,8 @@ from gajim import dialogs
 
 
 class OptionsDialog(Gtk.ApplicationWindow):
-    def __init__(self, parent, title, flags, options, account):
+    def __init__(self, parent, title, flags, options, account,
+                 extend=None):
         Gtk.ApplicationWindow.__init__(self)
         self.set_application(app.app)
         self.set_show_menubar(False)
@@ -23,7 +24,7 @@ class OptionsDialog(Gtk.ApplicationWindow):
         elif flags == Gtk.DialogFlags.DESTROY_WITH_PARENT:
             self.set_destroy_with_parent(True)
 
-        self.listbox = OptionsBox(account)
+        self.listbox = OptionsBox(account, extend)
         self.listbox.set_hexpand(True)
         self.listbox.set_selection_mode(Gtk.SelectionMode.NONE)
 
@@ -50,7 +51,7 @@ class OptionsDialog(Gtk.ApplicationWindow):
 
 
 class OptionsBox(Gtk.ListBox):
-    def __init__(self, account):
+    def __init__(self, account, extend=None):
         Gtk.ListBox.__init__(self)
         self.set_name('OptionsBox')
         self.account = account
@@ -72,6 +73,10 @@ class OptionsBox(Gtk.ListBox):
             OptionKind.GPG: GPGOption,
             }
 
+        if extend is not None:
+            for option, callback in extend:
+                self.map[option] = callback
+
     def add_option(self, option):
         if option.props is not None:
             listitem = self.map[option.kind](
@@ -168,7 +173,7 @@ class GenericOption(Gtk.Grid):
     def __get_value(type_, value, account):
         if value is None:
             return
-        if type_ == OptionType.BOOL:
+        if type_ == OptionType.VALUE:
             return value
         elif type_ == OptionType.CONFIG:
             return app.config.get(value)



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/compare/ecd5c652a24c156460f782d15362f9a3e21e2c4f...f397e1b7cb4a0f09f8005e30ce039882b120fd24

---
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/compare/ecd5c652a24c156460f782d15362f9a3e21e2c4f...f397e1b7cb4a0f09f8005e30ce039882b120fd24
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to