From 971e0502c081cf2eb43476611bf111015ea4192a Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Mon, 30 Apr 2012 21:04:37 +0200 Subject: [PATCH] don't load unactivatable plugins --- src/plugins/gui.py | 9 ++++++--- src/plugins/plugin.py | 1 + src/plugins/pluginmanager.py | 5 +++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/plugins/gui.py b/src/plugins/gui.py index 9ff3259b5..ab0c0cc1d 100644 --- a/src/plugins/gui.py +++ b/src/plugins/gui.py @@ -114,10 +114,13 @@ class PluginsWindow(object): desc_textbuffer = self.plugin_description_textview.get_buffer() from plugins.plugins_i18n import _ - desc_textbuffer.set_text(_(plugin.description)) + txt = plugin.description + if plugin.available_text: + txt += '\n\n' + _('Warning: %s') % plugin.available_text + desc_textbuffer.set_text(txt) self.plugin_description_textview.set_property('sensitive', True) self.uninstall_plugin_button.set_property('sensitive', - gajim.PLUGINS_DIRS[1] in plugin.__path__) + gajim.PLUGINS_DIRS[1] in plugin.__path__) if plugin.config_dialog is None: self.configure_plugin_button.set_property('sensitive', False) else: @@ -145,7 +148,7 @@ class PluginsWindow(object): for plugin in pm.plugins: self.installed_plugins_model.append([plugin, plugin.name, - plugin.active, plugin.activatable]) + plugin.active and plugin.activatable, plugin.activatable]) @log_calls('PluginsWindow') def installed_plugins_toggled_cb(self, cell, path): diff --git a/src/plugins/plugin.py b/src/plugins/plugin.py index 728280bd4..781be53d0 100644 --- a/src/plugins/plugin.py +++ b/src/plugins/plugin.py @@ -155,6 +155,7 @@ class GajimPlugin(object): :type: `plugins.plugin.GajimPluginConfig` ''' self.activatable = True + self.available_text = '' self.load_config() self.config_dialog = GajimPluginConfigDialog(self) self.init() diff --git a/src/plugins/pluginmanager.py b/src/plugins/pluginmanager.py index 71bf6c469..ed8e47fe9 100644 --- a/src/plugins/pluginmanager.py +++ b/src/plugins/pluginmanager.py @@ -292,7 +292,7 @@ class PluginManager(object): :param plugin: plugin to be activated :type plugin: class object of `GajimPlugin` subclass ''' - if not plugin.active: + if not plugin.active and plugin.activatable: self._add_gui_extension_points_handlers_from_plugin(plugin) self._handle_all_gui_extension_points_with_plugin(plugin) @@ -374,7 +374,8 @@ class PluginManager(object): def _activate_all_plugins_from_global_config(self): for plugin in self.plugins: - if self._plugin_is_active_in_global_config(plugin): + if self._plugin_is_active_in_global_config(plugin) and \ + plugin.activatable: try: self.activate_plugin(plugin) except GajimPluginActivateException: