Sorry, it just wasn't maintainable. The problem is the current libotr
API. I'm sick of working around the strange libotr API, sick of getting
HTML messages, sick of losing messages. The final argument for
completely removing it was that we can't get the message ID of a sent
msg anymore - which we need. I tried to work around this as well, but
there seems to be no way to wait for a signal in glib the way I would
need it for the workaround (I wanted to emit a signal in inject_message
and then wait for it after the call to otr_message_fragment_and_send
so the signal can pass us the message id). And the last reason is that
we're heading towards a new release and thus want to stabilize the code,
thus don't have time to work around even more libotr API strangeness.
I will give feedback to the libotr developers, who are currently
planning a new API, so that we can hopefully see OTR support once again
as soon as libotr4 is released.
Kjell already announced that he will continue his branch:
https://code.launchpad.net/~afflux/gajim/otr
I really hope the libotr devs will provide a sane API with libotr4 so
we can integrate OTR support again.
Oh, and I added one more try/except block for OS X.
This code seems not necessary. But why does that created that problem ?
It seems for some reason, path is not good. Probably the iter itself is not good. So expand act on the wrong
group (I can proove that).
* Moved one import in osx/__init__.py. If that import fails, we still
got the few functions defined we need, even if the rest of that file
doesn't work due to missing deps.
Someone completely broke it by trying to port it to native GTK.
However, that person didn't only break it with X11 GTK, with
native GTK it wasn't working correctly either.
Fixed it by adding lots of try/except blocks. Someone definitely
deserves to be slaughtered for completely breaking it on OS X…
TODO:
* Implement section 5.
* Think of a way to show in GUI
Possible way: Grey out the sent msg until we receive a <received/>,
but only if we know the other end supports XEP-0184.
* Maybe implement section 6?
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.
disconnection or exit. Previous version seemed perfect, but if server don't have the
same exact time than us (always), lots of messages can be logged twice. Here we will
lost log for messages that were sent beetween we lost connection and we see it. But that
seems better for me. For previous version, see [9516].
- 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)
* rename draw_roster to better express its functionality
* remove unnecessary call of refilter()
* directly remove groups when there is only one child left and we want to remove it
Note: in gtkTreeStore iters persist as long as the row isn't removed. Iters in Modelfilter persist as long as the model is unchanged.
-Stop using idle_call for marking days with log in calendar, because this was... longer !
-Stop emiting month changed signal two times (so it was even longer)