Commit Graph

788 Commits

Author SHA1 Message Date
Mateusz Biliński 8581b862e1 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.
2008-06-18 20:45:22 +00:00
Mateusz Biliński b6593b9493 Plugin can be a package (directory) now. Added example plugin that modifies roster window (with glade file).
Added activate and deactivate methods to Plugin (used in forementioned RosterButtonsPlugin).
2008-06-14 18:20:24 +00:00
Mateusz Biliński 11e61ea2a2 Small changes toward handling plug-ins configuration. 2008-06-12 18:26:08 +00:00
Mateusz Biliński 5dbe58507e Added 'chat_control_base' GUI extension point (now we are able to modify all chat controls - both normal and GC.
Added base version of AcronymsExpanderPlugin with some hardcoded acronyms. It uses newly added 'chat_control_base' extension point.
2008-06-09 11:46:29 +00:00
Mateusz Biliński e127925948 Added first version of 'Plugins' window. It's accessible through 'Edit/Plugins' item in roster menu. It seems that you can successfully (de)activate plug-ins through GUI now.
Added 'homepage' attribute to Plugin class.

Added (commented out) calls of pycallgraph in src/gajim.py for later use.

[xbright] Changed 'python' to 'python2.5' because code uses modules not available in previous versions of Python.
2008-06-07 17:28:34 +00:00
Mateusz Biliński 654e157eff Added plug-in deactivation mechanism, which allows plug-ins to clean up after themselves (eg. disconnecting handlers made in GUI); GUI extension points handlers are removed from list.
Updated Length Notifier plug-in so that it can be properly deactivated.
2008-06-03 13:40:27 +00:00
Mateusz Biliński 95b1e45920 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)
2008-06-01 23:33:51 +00:00
Yann Leboulanger 149ed7a22d reorder files 2005-04-12 15:47:20 +00:00
Yann Leboulanger fbf6c84e52 update files from trunk 2005-04-12 15:30:09 +00:00
Yann Leboulanger 317f0e0db3 we can now open only one join_gc window per account 2005-04-07 11:25:59 +00:00
Yann Leboulanger 25214a9cf2 close the vcard window when we press Escape
minimum width in gc window for the contact list on the left
2005-04-07 10:42:01 +00:00
Yann Leboulanger 058f632115 close the join_gc_window when we press Escape 2005-04-07 09:53:54 +00:00
Nikos Kouremenos 3014afd583 new basic emoticons 2005-04-07 00:35:06 +00:00
Yann Leboulanger 0a6658b90b remove commented line 2005-04-06 22:53:39 +00:00
Yann Leboulanger 3b84f1c242 we now saved the recently visited groupchats so we can restore it quickly 2005-04-06 22:52:48 +00:00
Yann Leboulanger 10dcd45494 small bugfix: we save the Join_groupchat_window instance in the __init__ function 2005-04-06 22:03:12 +00:00
Yann Leboulanger 91d6e8841a some glade fixes: minimum height of message textview in groupchat window
client info and os info on 2 lines instead of one in vcard_information_windows
2005-04-06 21:56:01 +00:00
Yann Leboulanger 00d7923d91 autodetect the python version in the Makefile (thx tab) 2005-04-06 20:30:37 +00:00
Yann Leboulanger 85527841a2 we now show the os informations in the vcard_information_window 2005-04-06 20:18:55 +00:00
Nikos Kouremenos eb5ae0d4ce bugfix 2005-04-06 19:46:39 +00:00
Nikos Kouremenos 1c7076cfb0 fixes for when disabling emoticons in prefs [gajim did not boot], add_remove_emoticons_window and class, better popups [needs more attention {me is on it}], no more emoticons tab, introducing version.py, hide os information included, and fixes allover. 2005-04-06 18:51:54 +00:00
Yann Leboulanger bac6ec88dd close the groupchat window when esc is pressed 2005-04-06 07:31:18 +00:00
Yann Leboulanger 62e05c0c2c a single click on the arrow in groupschat_window expand / collapse the group 2005-04-05 22:01:51 +00:00
Nikos Kouremenos 6ac64ad577 typo 2005-04-05 21:37:50 +00:00
Nikos Kouremenos 40e247e220 popup class is ready 2005-04-05 15:06:11 +00:00
Yann Leboulanger 96e8c8a447 change the bg color instead of the fg color when a contact (dis)connects. Colors have to be improved 2005-04-05 09:38:52 +00:00
Yann Leboulanger 634440c762 bugfix: when we Drag and drop a contact that is connected with several resources 2005-04-05 09:10:16 +00:00
Yann Leboulanger 1e7afe35d6 show the history window when we open it 2005-04-05 07:41:38 +00:00
Yann Leboulanger c797d737b0 show newly connected contacts in green and contacts that have just disconnected in red before removing them. Presentation/colors have to be improved, but the principle is there (to be tested). 2005-04-04 23:03:26 +00:00
Nikos Kouremenos 474fe3447e timeout in popup. I will also do the rest 2005-04-04 19:27:06 +00:00
Yann Leboulanger 6c10fe9a7b rename browser to disco everywhere 2005-04-04 17:15:08 +00:00
Nikos Kouremenos 6e345fe44c testing popup 2005-04-04 16:46:35 +00:00
Nikos Kouremenos 9e3e5a2acc do show_all implicitly everywhere [glade windows visible=False]. I did this so when show_all() it will be shown then [after connect and stuff], and not when being parsed 2005-04-04 15:51:29 +00:00
Nikos Kouremenos 3288d67b75 print status on new_user() no matter what status that is 2005-04-03 21:41:10 +00:00
Yann Leboulanger c8d12224c9 show the correct icon when we activate systray icon
reorder functions so that they are in the order in which they appear in the window
2005-04-03 09:21:26 +00:00
Yann Leboulanger 84b09c988f fix some problemswith key_press in groupchat window 2005-04-03 09:13:14 +00:00
Yann Leboulanger b4a1941a94 clear entries when we ask to retrieve 2005-04-03 08:49:07 +00:00
Yann Leboulanger 716f07747e bugfix in vcard publish 2005-04-03 08:42:13 +00:00
Yann Leboulanger cdaee5371f the name of this window has been changed ... not everywhere 2005-04-03 08:22:57 +00:00
Nikos Kouremenos 223b72d463 bugfix 2005-04-03 02:26:17 +00:00
Nikos Kouremenos 3e454ea51f vcard needs more work. did some gui stuff 2005-04-03 02:19:52 +00:00
Nikos Kouremenos c9df9a7ece try to fix ticket 148. has some problems: it wont display the accounts with erros in the accounts window. Only after you close it and open it again 2005-04-03 01:03:32 +00:00
Nikos Kouremenos 7c6f9f9499 fix in gossip iconset 2005-04-02 23:10:20 +00:00
Nikos Kouremenos 2fb798dc83 adding pncrush script to make pngs smaller 2005-04-02 22:55:38 +00:00
Nikos Kouremenos 6c0a65cff5 2 new icons for gossip 2005-04-02 22:30:23 +00:00
Nikos Kouremenos c14d580093 glade small fix 2005-04-02 22:13:29 +00:00
Yann Leboulanger b164e5232a typo 2005-04-02 21:55:22 +00:00
Nikos Kouremenos 8e419e899c pkgbuild ready for 0.6.1, fix in systray 2005-04-02 21:48:12 +00:00
Yann Leboulanger a1e7e9b191 fix in redraw_jid 2005-04-02 21:28:59 +00:00
Yann Leboulanger 0ed2b103d3 little bugfix 2005-04-02 21:12:13 +00:00