diff options
author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-08-11 15:36:23 +0200 |
---|---|---|
committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-08-11 15:36:23 +0200 |
commit | de7ae6b763e48607f7d1da8f4f98bd7386cccba8 (patch) | |
tree | 60b61555cba7712e850fbecb7a37a1dca26b7a23 /src/Gui/PluginSettingsUI.py | |
parent | 13329d88e147fac7cafcdebcafd1859a74a27aa9 (diff) | |
download | abrt-de7ae6b763e48607f7d1da8f4f98bd7386cccba8.tar.gz abrt-de7ae6b763e48607f7d1da8f4f98bd7386cccba8.tar.xz abrt-de7ae6b763e48607f7d1da8f4f98bd7386cccba8.zip |
GUI: Added option to disable/enable plugins (config preview)
Diffstat (limited to 'src/Gui/PluginSettingsUI.py')
-rw-r--r-- | src/Gui/PluginSettingsUI.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/Gui/PluginSettingsUI.py b/src/Gui/PluginSettingsUI.py new file mode 100644 index 00000000..55174d6e --- /dev/null +++ b/src/Gui/PluginSettingsUI.py @@ -0,0 +1,57 @@ +import gtk + +class PluginSettingsUI(gtk.Dialog): + def __init__(self, pluginfo): + #print "Init PluginSettingsUI" + gtk.Dialog.__init__(self) + self.plugin_name = pluginfo.Name + self.Settings = pluginfo.Settings + self.pluginfo = pluginfo + self.plugin_gui = None + + if pluginfo.getGUI(): + self.plugin_gui = gtk.Builder() + self.plugin_gui.add_from_file(pluginfo.getGUI()) + self.dialog = self.plugin_gui.get_object("PluginDialog") + if not self.dialog: + raise Exception("Can't find PluginDialog widget in UI description!") + self.dialog.set_title("%s" % pluginfo.getName()) + else: + # we shouldn't get here, but just to be safe + no_ui_label = gtk.Label("No UI for plugin %s" % pluginfo) + self.add(no_ui_label) + no_ui_label.show() + + def hydrate(self): + if self.plugin_gui: + if self.pluginfo.Enabled == "yes": + if self.Settings: + #print "Hydrating %s" % self.plugin_name + for key,value in self.Settings.iteritems(): + #print "%s:%s" % (key,value) + widget = self.plugin_gui.get_object("conf_%s" % key) + if type(widget) == gtk.Entry: + widget.set_text(value) + elif type(widget) == gtk.CheckButton: + widget.set_active(value == "yes") + elif type(widget) == gtk.ComboBox: + print "combo box is not implemented" + else: + #print "Plugin %s has no configuration." % self.plugin_name + pass + else: + #print "Plugin %s is disabled." % self.plugin_name + pass + + else: + print "Nothing to hydrate!" + + def dehydrate(self): + #print "dehydrating %s" % self.pluginfo.getName() + pass + + def destroy(self): + self.dialog.destroy() + + def run(self): + return self.dialog.run() |