Show
Ignore:
Timestamp:
06/02/08 01:33:51 (6 months ago)
Author:
vardo
Message:

Initial commit related to plug-in system:
- basic PluginManager? class that loads plugins from *.py files

in given directories

- Singleton metaclass was created to use with PluginManager?;

notice: init of class is called only once (not like in code

that is included in Python Cookbook)

- variable to keep paths of plugin directories has been created

(common.gajim.PLUGINS_DIRS); also added initilization of these
paths to common.ConfigPaths?

- added global variable with PluginManager? object:

common.gajim.plugin_manager

- created customized logger for plugin system ('gajim.plugin_system')
- created function decorator plugins.helpers.log_calls which logs

each call of function/method; it also logs when function is left

- base class Plugin for plug-in implementation added; not much

here - only empty class attributes: name, short_name, authors,

version, description

- based on Plugin class, first plugin was created named

LengthNotifierPlugin?; it is used to notify users when they
exceed given length of message during writing it (text entry
field highlights)

- first GUI extension points works when ChatControl? object

is created (it is used in mentioned plugin)

- added 'epydoc.conf' file customized a little bit (file

is also in trunk now)

- fixed indentation in common.sleepy module (also in trunk

now)

Files:
1 modified

Legend:

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

    r9699 r9737  
    34623462                gobject.timeout_add_seconds(gajim.config.get( 
    34633463                        'check_idle_every_foo_seconds'), self.read_sleepy) 
     3464                 
     3465                # Creating plugin manager 
     3466                import plugins 
     3467                gajim.plugin_manager = plugins.PluginManager() 
    34643468 
    34653469if __name__ == '__main__':