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