Commit Graph

790 Commits

Author SHA1 Message Date
Mateusz Biliński 8aa9cad2e0 Plugin's configuration is now saved to disk (currently: using UserDict and shelve modules).
Length Notifier Plugin has configuration dialog (added entry with JIDs to be included when plugin is working) - fully usable.

Default values of configuration key has been added to GajimPlugin.

Some other minor changes/fixes.
2008-07-29 19:09:28 +00:00
Mateusz Biliński aaf5b30129 Added GajimPluginConfigDialog class - dialog that plugins should use to present configuration to user.
Now, 'Configure' button is invoked only for plug-ins that have config_dialog.
2008-06-19 12:56:45 +00:00
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