Show
Ignore:
Timestamp:
06/18/08 22:45:22 (6 months ago)
Author:
vardo
Message:

Added new 'init' method to Plugin class that plugins can implement to make actions that need to be done only once - when plugin is added (not activated) to Gajim. In this method plugins should declare handlers for GUI extension points. This was created so that init method doesn't have to be reimplemented in specific way (create config, load config) - it is all done by init in Plugin class. If init is reimplemented, it must call Plugin init (eg. using super() ) to plugin work properly.

Example plug-ins were modified to use init() instead of init().

Added new category in configuration - 'plugins'. It only holds one option for each plugin - 'active', which determines whether plugin should be activated on startup.

Now, Gajim remembers which plugins are active on exit, and activates them on next startup.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/plugin-system/src/plugins/gui.py

    r9762 r9821  
    140140                self.installed_plugins_model.set_sort_column_id(0, gtk.SORT_ASCENDING) 
    141141                 
    142                 for plugin_class in pm.plugins: 
    143                         self.installed_plugins_model.append([plugin_class,  
    144                                                                                                  plugin_class.name,  
    145                                                                                                  plugin_class._active]) 
     142                for plugin in pm.plugins: 
     143                        self.installed_plugins_model.append([plugin,  
     144                                                                                                 plugin.name,  
     145                                                                                                 plugin.active]) 
    146146                 
    147147        @log_calls('PluginsWindow') 
    148148        def installed_plugins_toggled_cb(self, cell, path): 
    149149                is_active = self.installed_plugins_model[path][2] 
    150                 plugin_class = self.installed_plugins_model[path][0] 
     150                plugin = self.installed_plugins_model[path][0] 
    151151 
    152152                if is_active: 
    153                         gajim.plugin_manager.deactivate_plugin(plugin_class._instance) 
     153                        gajim.plugin_manager.deactivate_plugin(plugin) 
    154154                else: 
    155                         gajim.plugin_manager.activate_plugin(plugin_class) 
     155                        gajim.plugin_manager.activate_plugin(plugin) 
    156156                 
    157157                self.installed_plugins_model[path][2] = not is_active