Commit Graph

904 Commits

Author SHA1 Message Date
Mateusz Biliński 6fecd84b16 Fixed log_calls decorator arguments in a few plugins. Fixed Acronyms Expander plugin (not working due to bad auto-merge). Added few comments. 2009-06-15 07:56:08 +02:00
Mateusz Biliński 018bda5a5f Merged default branch with plugin-system branch. Not all elements are fully
functional. This should be considered as sync commit.
2009-06-07 00:00:03 +02:00
Mateusz Biliński e8d704e96b Moved DBUS interface related variables. 2009-06-02 19:59:33 +02:00
Mateusz Biliński 369ea5544b Moved DBus type related instructions to scope which is executed only when there's a DBus support. No NameError exceptions are thrown anymore.
Makes debugging of plugins easier under WingIDE (which does not remember - at least it looks like that - the "ignore exception at this location" option when module is imported 'manually').

This could also be applied to src/remote_control.py .
2009-04-16 08:37:16 +00:00
Mateusz Biliński 8c75ed38b1 Google Translation plugin added (proof-of-concept) that translates incoming chat messages from English to French using Google Translate service.
Plugin object that registered new event is accessible in that event now, through self.plugin.
2008-08-25 17:20:16 +00:00
Mateusz Biliński c0a26be684 Three core (raw) events (iq, message, presence) go also through Network Events Controller (layer between network library and Global Events Dispatcher, newly added) and from there they are dispatched through Global Events Dispatcher.
Ability to register new incoming network events (based on exisiting one) added. Modify-only network events are possible (eg. add some text each message, but don't create any new global event). Events creation can be chained.
Examples of new network events classes are in New Events Example plugin.
Events from src/gajim.py now all go through Global Events Dispatcher and only through it (easy to modify, in chain, data passed with them).
2008-08-18 16:35:14 +00:00
Mateusz Biliński ff8eaddf51 Removed exit() from PySnarl so it doesn't terminate Gajim on non-Windows platforms. 2008-08-16 20:53:10 +00:00
Mateusz Biliński 94f27ecffc Snarl Notifications plugin initial version added. New events (from current core) go also through GED. 2008-08-16 20:30:37 +00:00
Mateusz Biliński 2ee4c7ee5e Changed log_calls parameter to EventsDumpPlugin in that class. 2008-08-11 15:38:07 +00:00
Mateusz Biliński 8ec03d822e Added Events Dump plugin, that prints out to console info about selected events when they occur. 2008-08-11 15:22:56 +00:00
Mateusz Biliński 06aee9d2d0 Initial version of Global Events Dispatcher.
Events previously generated for D-Bus support in remote_control.py go through Global Events Dispatcher now - this means any plugin can subscribe to them.
Implemented D-Bus support plugin based on remote_control.py.
2008-08-10 13:40:49 +00:00
Mateusz Biliński 16ac65e58b Improvements to GUI extension points handling - added method to remove these from PluginManager (memory optimization).
Removed logging from most of the code.
2008-08-03 13:29:11 +00:00
Mateusz Biliński 5cce0a8ca9 Banner Tweaks plugin has all (four) options implemented. 2008-08-02 17:29:32 +00:00
Mateusz Biliński 96cfc42060 Added files with Banner Tweaks plugin (initial version).
Few changes to PluginManager.
Added new GUI extension point related to draw_banner in ChatControlBase.
2008-07-31 15:30:20 +00:00
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
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
Nikos Kouremenos e7d6a83f68 icons --> iconsets {folder} and new invisible for gossip 2005-04-02 20:38:28 +00:00
Yann Leboulanger 5f44066b49 destroy accounts_window when we close the window instead of hiding it 2005-04-02 20:35:33 +00:00
Yann Leboulanger 4018b9b681 little fix: time radiobuttons are in the same group 2005-04-02 20:01:14 +00:00
Nikos Kouremenos 2816f2dc2c user can change [] <> 2005-04-02 19:52:00 +00:00
Yann Leboulanger d97506f97c update the windows icons when we chage the iconset 2005-04-01 19:58:54 +00:00
Nikos Kouremenos d409b248b5 gajim.sh --> gajim.py, adding psyco support if available, small fix in new message dialog if @ is not given 2005-04-01 14:55:56 +00:00
Nikos Kouremenos 38a576d870 imho roster looks better now 2005-04-01 00:28:45 +00:00
Nikos Kouremenos 610bc35b22 ImageCellRenderer has now better name, gajim.py --> gajim.sh [needs fix to makefile to make it work, padding and xalign trying to clean up (don't work yet). added a fixme in new message dialog about focus problems.. 2005-03-31 23:26:05 +00:00
Yann Leboulanger ce6f724620 when we change the iconset, change all the icons (in the roster, in the status combobox, in the systray, in (group)chat windows) 2005-03-31 19:21:48 +00:00
Yann Leboulanger 94ed80901f remove unneeded line 2005-03-31 16:05:51 +00:00
Yann Leboulanger 03ec680f15 we cannot change the group of a contact that is in 'not in the roster' group 2005-03-31 15:32:18 +00:00
Yann Leboulanger 7df4dfc655 when we press ctrl+PageUp/Down / Tab in the conversation textview, send the event to the notebook 2005-03-31 15:03:07 +00:00
Yann Leboulanger 765e720357 do not quit gajim if we don't click ok in the status message 2005-03-31 12:48:57 +00:00
Yann Leboulanger 67dcbf2e27 add spaces between icon and text in status combobox 2005-03-31 12:44:42 +00:00
Yann Leboulanger 704bfc3a2a bugfix if we create a new account self.account is not set 2005-03-31 12:17:07 +00:00
Yann Leboulanger 48473d8ac6 typo 2005-03-31 12:16:20 +00:00
Yann Leboulanger b78a30bfbb correctly redraw the contacts wgen they change their status 2005-03-31 07:03:46 +00:00
Yann Leboulanger 1254d61ca9 remove the (2) beside a user if one of the resource go offline even if we show offline users 2005-03-30 21:52:43 +00:00
Yann Leboulanger eefb01e746 in service discovery an item can have no name 2005-03-30 20:06:01 +00:00
Yann Leboulanger 259983a952 show improved status un combobox 2005-03-30 19:20:20 +00:00
Yann Leboulanger 4626a385db dnd is after xa 2005-03-30 19:13:45 +00:00
Nikos Kouremenos 9e8c2a2970 iconstyle --> iconset 2005-03-30 12:29:48 +00:00
Yann Leboulanger 45a63ab694 finish fixing the stellar iconset 2005-03-30 09:33:29 +00:00
Yann Leboulanger 0566966c85 continue fixing the stellar iconset 2005-03-30 09:33:03 +00:00
Yann Leboulanger c98d4cd3b7 begining of the stellar iconset fix 2005-03-30 09:00:19 +00:00
Yann Leboulanger fe8221e7f3 fix msn iconset (still missing chat error invisible message not_in_the_roster requested xa icons) 2005-03-30 08:54:26 +00:00
Yann Leboulanger 6b84d9a728 fix icq iconstyle (still missiong invisible message not_in_the_roster and requested icons) 2005-03-30 08:51:03 +00:00
Yann Leboulanger 316f7b9a04 redraw the roster when we change the iconset 2005-03-30 08:47:24 +00:00
Yann Leboulanger 73bc4a083b fix gossip iconstyle (still missing error invisible not_in_the_roster requested icons) 2005-03-30 08:45:11 +00:00
Nikos Kouremenos 5508f73513 on_preferences_window_show makes sure always first tab is active, adding more status iconsets and fixed code, draw_roster doesnt update them very well and organized 2005-03-29 23:52:26 +00:00
Nikos Kouremenos 0b3553b8fe fix in mail detection 2005-03-29 21:44:54 +00:00
Nikos Kouremenos 5ce8490927 Hopefully won't break vincent [sorry if I do], better regexp (thanks jajcus) 2005-03-29 21:28:58 +00:00
Vincent Hanquez 76338d6e77 when there's no systray, prevent gajim from not working.
Although, systray should be access only by a set of method to prevent those
type of things..
2005-03-29 17:57:07 +00:00
Vincent Hanquez 41638ba9d0 somebody commit spaces ... 2005-03-29 17:49:10 +00:00
Nikos Kouremenos be06ef1ecb adding more preset status msgs. I want to be able to sort them. it don't understand why it doesn't seem to happen 2005-03-29 16:51:41 +00:00
Nikos Kouremenos 7b70ace347 systray --> Systray (the class) 2005-03-29 16:37:59 +00:00
Nikos Kouremenos d8d40e0c01 add_jid remove_jid is better coded like that. removal of systrayDummy class [have a look and we can discuss], also have a look at a FIXME, back to detection of http://b) with ) in it, cause http://be?b)b can be valid url 2005-03-29 16:16:42 +00:00
Yann Leboulanger 6b19bc4c74 we need to be offline to change the account's name 2005-03-28 23:14:03 +00:00
Yann Leboulanger 4f62c70a47 remove empty groups when we drag and drop
fix some problems with drag and drop when we merge accounts
2005-03-28 22:17:14 +00:00
Yann Leboulanger 99a64c0735 merge account is applied instantly 2005-03-28 16:15:50 +00:00
Yann Leboulanger d71865324c fix in handler names 2005-03-28 16:10:04 +00:00
Yann Leboulanger e404f1df65 logger fix 2005-03-28 15:19:52 +00:00
Yann Leboulanger b00123c039 bugfix in logger.py 2005-03-28 13:35:08 +00:00
Yann Leboulanger 97d6098491 remove comment (I fill a ticket for that) 2005-03-28 11:05:08 +00:00
Yann Leboulanger a4121119ef do not use changed signal in disco: when we write some thing this signal is emited each time we add / remove a character, so gajim sends many useless requiest
Plz do not use glade 2.10: pygtk2.6 is really not needed atm, and many people don't have it so we must not depend on pytgk2.6 fot the moment
2005-03-28 10:59:52 +00:00
Yann Leboulanger 9d6a1a5dc2 fix the systray bug from ticket 128 2005-03-28 10:45:16 +00:00
Nikos Kouremenos 72e212731c new message dialog fix for title and add to accounts shouldn't list not in the roster. plz see my fixme comment 2005-03-28 01:39:12 +00:00
Nikos Kouremenos d80325510b fixes for ticket 128 2005-03-28 01:20:47 +00:00
Nikos Kouremenos 4e9745b77e code for on_agents_treeview_row_activated and agents --> services 2005-03-28 01:05:28 +00:00
Nikos Kouremenos eadbcdb201 small fix 2005-03-28 00:25:51 +00:00
Nikos Kouremenos 45540743fd on_address_comboboxentry_changed event and code 2005-03-28 00:10:47 +00:00
Yann Leboulanger 11c34f9e24 do not show agents if they are not childs of another agent. It fixs that bug: you ask agents from an account1 and quickly ask agents from another account2, then answer from account1 arrive. They must not be displayed, it's too late. 2005-03-27 23:00:01 +00:00
Yann Leboulanger f1e6a30dcc we can now choose a group when we add a user 2005-03-27 21:35:55 +00:00
Nikos Kouremenos 0efac5ef4d disco menus back to previous, one more tooltip in glade 2005-03-27 21:17:16 +00:00
Nikos Kouremenos 4e3c0a5911 typo 2005-03-27 20:31:46 +00:00
Nikos Kouremenos a1a2e1e3fc eugenia colors as default, fix in makeing menus, and better regexp (doesn't detect http://) anymore) [thanks jajcus] 2005-03-27 20:30:00 +00:00
Nikos Kouremenos 2295a319ce show_all/hide for roster and accounts window, better strings when multiple accounts [has a bug], changelog is better now 2005-03-27 19:39:50 +00:00
Yann Leboulanger ee6fb42258 service_discovery_window is nicer
expand the first row
2005-03-27 18:02:23 +00:00
Yann Leboulanger 936a8392d5 browse agent -> Service discovery 2005-03-27 18:01:41 +00:00
Yann Leboulanger 189a134722 service discovery is now asynchronous, we can send and receive other messages while we browse agents (YEAH !) 2005-03-27 10:31:26 +00:00
Yann Leboulanger aa17bb46f4 limit the list of saved address to 10 2005-03-27 09:19:06 +00:00
Yann Leboulanger 2440f0145f the agents are now borwsed only when we expand the row in the Service_discovery_window
we can now browse all jabber servers
save the last server discovered
2005-03-27 09:08:31 +00:00
Yann Leboulanger 82219f71a7 remove unneeded comments 2005-03-27 08:41:09 +00:00
Yann Leboulanger f2e07f4f77 do not crash if we get an empty message 2005-03-27 08:40:42 +00:00
Yann Leboulanger b40a87922e activate the tab when we create a new groupchat 2005-03-27 08:40:01 +00:00
Yann Leboulanger ccc95f46db glade fix: no need of a vbox in a vbox 2005-03-27 08:38:58 +00:00
Yann Leboulanger 23b8c1faa9 always create self.tip even if show_icon is never called 2005-03-27 08:38:26 +00:00
Nikos Kouremenos 5216a4bb6b ficking ticket 119. 115 and resizing problems that we had with edit groups dialog (now resizes very nicely) 2005-03-26 20:46:23 +00:00
Nikos Kouremenos 714119dbe6 finally up 2005-03-26 21:09:49 +00:00
Nikos Kouremenos 2463197d4f save button has focus and svn says 0.6.1 as version 2005-03-23 14:25:56 +00:00
Yann Leboulanger cb65574c24 give the focus to the account name when we open the accout modification window 2005-03-23 13:43:11 +00:00
Nikos Kouremenos a425908513 fixes in glade, and some other stuff 2005-03-23 13:25:48 +00:00
Yann Leboulanger db818cdace the GUI is a bit more HIG-compliant like that (Thanks Eugenia) 2005-03-23 10:41:27 +00:00
Yann Leboulanger 1cac89ebde some string to translate 2005-03-22 19:02:27 +00:00
Yann Leboulanger 7793eb2c98 do not print a traceback if the configured application does not exists 2005-03-22 10:13:32 +00:00
Yann Leboulanger ec0950075f show the number of unread messages in the systray tooltip 2005-03-21 23:14:27 +00:00
Yann Leboulanger 068d75dbc1 upgrade the systray variable when we change an account name 2005-03-21 22:41:30 +00:00
Yann Leboulanger bc721f5b1f purge the nb_unread variabl when we close a tab 2005-03-21 22:06:34 +00:00
Yann Leboulanger 2b30c63163 upgrade the account variable in opened chat / groupchat / information windows 2005-03-21 21:52:54 +00:00
Yann Leboulanger c231084e18 initialize the ignore_messages_from_unknown_contacts checkbutton in preferences window 2005-03-21 21:01:03 +00:00
Nikos Kouremenos 73310eaa58 glade fixes 2005-03-21 20:51:17 +00:00
Nikos Kouremenos 11f918e944 glade fixes & tooltips allover 2005-03-21 13:22:18 +00:00
Nikos Kouremenos 3fed5a8e7b gajim_window now is roster_window 2005-03-21 12:34:20 +00:00
Yann Leboulanger 8224f38256 do not show the roster widows before it is positionned 2005-03-21 09:27:10 +00:00