Persistent chat rooms
Sadrul Habib Chowdhury
imadil at gmail.com
Sat Aug 25 08:42:31 EDT 2007
* Sean Egan had this to say on [23 Jul 2007, 11:39:50 -0700]:
> ... Pidgin will join the chat when it connects
> and stay in the chat as long as the setting is on. When you close the
> chat window, you will not leave the chat. Double-clicking the icon in
> the buddy list will merely re-show the window, with the full backlog
> and everything. You'll get alerted when someone says your name in the
> chat. We'll probably want at least one more blist icon to represent
> the different chat states. We'll also show the chat topic in the buddy
(I have snipped the bits not related to hiding a conversation)
I have committed some code in im.pidgin.sadrul.conv.persistent that can
help with hiding a conversation. The changes made are:
* Each conversation maintains its own message history in a hashtable.
(this bit is in libpurple)
* The 'Conversation -> Hide' menu sets the uiops for the conversation to
NULL, i.e., all UI-information about the conversation is destroyed.
* Whenever the user tries to show a hidden conversation (by
double-clicking on the buddy list, for example), the gtk uiops for the
conversation is set again. The complete UI-information is recreated
from the message history.
* The message history is accessible via DBus. The dbus-gnt script (under
libgnt/pygnt) utilizes this. So, for example, if you run pidgin, then
start dbus-gnt at a later time, it will start with conversation
windows with complete message history for the existing conversations.
A few more things I would like to add:
* Some kind of indication in the buddylist (color, format, emblem etc.)
for buddies/chats with hidden conversation.
* Some way to bring up all the hidden conversations with no more than
If the changes don't sound too bad (and don't feel too weird when you
use the branch -- yes, it compiles and everything!), I plan on merging
back with im.pidgin.pidgin.
More information about the Devel