- 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)
Sorry, bct, but I think it is to early to merge that as it completely
breaks. It seems nobody in gajim@conference.gajim.org considers it
usable yet.
I don't know if you got asterix' ok for it and I'm sorry if I reverted
it now although you had his ok, but having broken trunk is very
contra-productive. I think it was just too early to merge.
* Buttons get disabled as needed now [we still need something to update
this while the window is open (it might change, for example, the
contact was added)].
* Remove the new accelerators in destroy_menu().
* Move some OTR stuff.
* Don't hide OTR from the user if not available, but set unsensitive.
* Moved some code so we can get rid of a few ifs.
What still needs to be done for the GUI redesign to be complete:
Don't show entries in the actions menu that have buttons.
command? This is far more userfriendly. If you have any objections,
feel free to revert and I'll think of something else that's not as
annoying as /say.
Contacts are now online hidden when they connect/reconnect and not completely removed/readded. Should come with a great speed improvement for people with big rosters.
There are still a few known problems but non that should dalay this patch any longer. Related bugs will be tracked with 'modelfilter' keyword.
See #1201
-Check if there are pending events and send offline even if we don't ask a status message (was a indentation
mistake I think)
- Really make unread and recent working according to 'notify_on_all_muc_messages' value
- be faster, hopefully