[GSoC 2012] Message delivery notifications

Tomasz Wasilczyk tomasz at wasilczyk.pl
Sat Aug 4 07:14:36 EDT 2012


as we were talking before, there is a possibility to introduce message
delivery notifications in Pidgin. It's another pidgin/libpurple
change, which is needed for better Gadu-Gadu support (and also useful
for other protocols). I would like to implement it, but I have to
discuss some details here.

To introduce per-message handling, we need (at first) to assign an
optional message ID for every message. We have two (or more?) options:
- globally unique, string-based: it can be useful, if we introduce
someday database-based conversation log storage
- locally, unique for every conversation, int-based: light and fast

ID could be auto-generated, when not provided (NULL for string, 0 for
int-based ids), based on timestamp with microseconds.

Such message ID would be passed to purple_conversation_write as
parameter (and all dependent functions). It would be also added to all
message-related signals. I think, this is the hardest part.

There is also a need for a new signal, let's say "im-status-changed"
with message ID and current status (pending, received, not received)

At last, conversation window have to handle this. I think, default
theme could display some spinning circle [1] for pending ones,
unavailable emblem [2] for not delivered ones, and nothing for
delivered ones.

Waiting for comments,

[1] http://ajaxload.info/cache/FF/FF/FF/00/00/00/1-0.gif
[2] http://hg.pidgin.im/pidgin/main/file/tip/pidgin/pixmaps/emblems/16/unavailable.png

More information about the Devel mailing list