Changeset 9762 for branches/plugin-system/src/plugins/pluginmanager.py
- Timestamp:
- 06/07/08 19:28:34 (6 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/plugin-system/src/plugins/pluginmanager.py
r9754 r9762 95 95 96 96 for path in gajim.PLUGINS_DIRS: 97 self. plugins.extend(PluginManager.scan_dir_for_plugins(path))97 self._add_plugins(PluginManager.scan_dir_for_plugins(path)) 98 98 99 99 log.debug('plugins: %s'%(self.plugins)) … … 103 103 log.debug('active: %s'%(self.active_plugins)) 104 104 105 106 @log_calls('PluginManager') 107 def _add_plugin(self, plugin_class): 108 ''' 109 :todo: what about adding plug-ins that are already added? Module reload 110 and adding class from reloaded module or ignoring adding plug-in? 111 ''' 112 plugin_class._active = False 113 plugin_class._instance = None 114 self.plugins.append(plugin_class) 115 116 @log_calls('PluginManager') 117 def _add_plugins(self, plugin_classes): 118 for plugin_class in plugin_classes: 119 self._add_plugin(plugin_class) 120 105 121 @log_calls('PluginManager') 106 122 def gui_extension_point(self, gui_extpoint_name, *args): … … 125 141 Looking closer - we only rewrite tuples here. Real check should be 126 142 made in method that invokes gui_extpoints handlers. 127 128 143 ''' 129 144 … … 142 157 143 158 @log_calls('PluginManager') 144 def activate_plugin(self, plugin ):159 def activate_plugin(self, plugin_class): 145 160 ''' 146 161 :param plugin: plugin to be activated … … 148 163 ''' 149 164 150 plugin_object = plugin ()165 plugin_object = plugin_class() 151 166 152 167 success = True … … 157 172 if success: 158 173 self.active_plugins.append(plugin_object) 174 plugin_class._instance = plugin_object 175 plugin_class._active = True 159 176 160 177 return success … … 166 183 for gui_extpoint_name, gui_extpoint_handlers in \ 167 184 plugin_object.gui_extension_points.iteritems(): 168 for gui_extension_point_args in self.gui_extension_points[gui_extpoint_name]: 169 gui_extpoint_handlers[1](*gui_extension_point_args) 185 if gui_extpoint_name in self.gui_extension_points: 186 for gui_extension_point_args in self.gui_extension_points[gui_extpoint_name]: 187 gui_extpoint_handlers[1](*gui_extension_point_args) 170 188 171 189 # remove GUI extension points handlers (provided by plug-in) from … … 177 195 # removing plug-in from active plug-ins list 178 196 self.active_plugins.remove(plugin_object) 197 plugin_object.__class__._active = False 198 del plugin_object 179 199 180 200 def deactivate_all_plugins(self):
