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
d1d3cc9bbd
GUI extension points removal working properly now.
2008-08-03 22:02:53 +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
d8075a23e6
Small sync commit.
2008-07-18 07:05:07 +00:00
Mateusz Biliński
b647885d86
Small sync commit.
2008-07-05 16:44:27 +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
03b982ad50
[Merwok] Commented out 'import pycallgraph' to remove import error.
...
Added pycallgraph.py for those that want to generate callgraphs anyway.
2008-06-12 19:26:55 +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
fdd3648323
Small improvements: plug-in instance object dereferenced on deactivation. 'gajim.plugin_system' logger doesn't set level DEBUG by default (have to use command-line option '-l' from now on).
2008-06-08 16:36:46 +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
77f10031f1
Added mechanism to successfully load plugins after GUI extension points have been created, e.g. when we want to modify ChatControl behaviour and objects of this class have already been created.
...
Also: customized IPython console look
2008-06-03 08:25:16 +00:00
Mateusz Biliński
f62698e28c
Added docstrings in reST format (also with todos). Commented out 'print' statements related to roster window. A few modifications to make code prettier (PyLint driven).
2008-06-02 23:15:08 +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
Nikos Kouremenos
a5e218efba
fix tooltip about logging encrypting messages. (it is now shorter, better understood (jargon removed where possible), and we it's OpenPGP and not just GPG guys {or last time I checked :$})
2008-05-27 19:40:00 +00:00
Jean-Marie Traissard
7d21a1a624
Fix account parameter for gajim-remote handle_uri with a groupchat. Fixes #3344 .
2008-05-27 16:47:33 +00:00
js
6c9063b702
[Kjell Braden] Fix HTML on OTR.
...
@bct: When moving the OTR stuff, you would've needed to adjust the
XHTML killing part. This patch fixes it. I didn't even notice since
I have XHTML disabled globally.
2008-05-27 14:50:54 +00:00
Yann Leboulanger
c127493e58
remove pep options from pref window, store them per account, store caps_hash per account. see #3954
2008-05-27 10:24:29 +00:00
Brendan Taylor
e09c93621e
don't send termination unless we've sent a message
...
fixes #3963
2008-05-26 23:53:40 +00:00
Brendan Taylor
dbcfc984f5
don't do first message notification if we can pick up a sessionless control
...
fixes #3961
2008-05-25 21:28:40 +00:00
Brendan Taylor
df5200b3bb
try not to send session termination messages to non-XEP-0201 clients
2008-05-25 21:28:32 +00:00
Brendan Taylor
f7874d29c7
reuse chat controls after session termination
...
fixes #3950
2008-05-23 23:27:08 +00:00
Brendan Taylor
f68ffc3816
not every OTR message needs a session
2008-05-23 23:26:53 +00:00
js
4e26da4a98
Use glibtoolize if available, we need this on OS X with MacPorts.
2008-05-22 11:42:09 +00:00
js
e672c81b44
Not everybody who's got OS X has native GTK, mkay?
2008-05-22 11:26:03 +00:00
Yann Leboulanger
21f332221e
typos. see #3953
2008-05-20 14:30:19 +00:00
Yann Leboulanger
8bda3a5543
upadte all contact instances when we get a pep event for a contact. See #3953
2008-05-20 14:18:12 +00:00
Yann Leboulanger
e2f98ad2e0
re-enable docutils inclusion in windows built. Used by RST generator
2008-05-20 11:33:11 +00:00
Brendan Taylor
4feacc73ab
moved OTR stuff from session.received to connection._messageCB
...
fixed lock icon when session has been terminated
2008-05-20 00:44:30 +00:00
Stephan Erb
3bcf189dfd
Show pep tooltip info also for multiple resources and SelfContacts.
...
(Tooltips might not be complete because of some not yet addressed backend bugs)
2008-05-19 21:31:25 +00:00
Stephan Erb
a06468b846
Always remove contacts from GUI when we receive a roster via xmppy.
...
This fixes a bug with metacontacts over different groups and should stop contact duplication in most cases.
2008-05-19 21:17:43 +00:00
js
ea3e43c15a
Always pass the special message '?OTR?' to libotr.
2008-05-19 20:25:58 +00:00
js
f1c333410e
Revert r9682, it was a bad idea. The solution is not to send the
...
thread id, but to even remove the lock symbol when OTR was ended
and we don't have a thread id.
2008-05-19 20:13:24 +00:00
Stephan Erb
abe75901d4
Remove some extra model refiltering.
...
Whenever we write to the underlying child_model gtk will call the _visible_func on itself.
2008-05-19 20:08:32 +00:00
js
f92f5f5c64
Send thread ID on ending OTR session so that self.session is defined
...
when that event is received and the lock icon updated.
2008-05-19 20:04:48 +00:00
Brendan Taylor
b0aeefcbb5
flush xmpppy's send queue before disconnecting
2008-05-19 20:04:14 +00:00
Stephan Erb
304da5e252
Enable assertions to catch errors early.
2008-05-19 20:03:22 +00:00
Stephan Erb
ea00e4d933
Improve select_contact method.
...
* use correct API in session.py
* only filter when really needed
2008-05-19 20:00:41 +00:00
js
5f7f717e29
Again, not update_ui(), but update_otr()!
2008-05-19 19:06:11 +00:00
js
50e31a5072
Again, it's update_otr(), not update_ui()!
2008-05-19 19:04:44 +00:00
js
303a09d7c8
update_ui() doesn't call update_otr(). We want update_otr() here.
2008-05-19 18:57:14 +00:00
js
acc78e6d48
Coding style & make translatable.
2008-05-19 18:48:53 +00:00
Brendan Taylor
368dd9fe66
missed part of that last patch
2008-05-19 18:30:04 +00:00