To do:
- Add VoIP controls to the chat window.
- Make it handle failed logins, show dialog with Cancel and Retry buttons.
  (dialog already exists)
- Add contact group support
- Add group chatting (look at gossip for UI ideas)
- Avatars appear in the wrong contacts.
- Show when the person is writing (abner implemented support)
- Add the code from the streaming test in tapioca-python and use the incoming
  call dialog
- If the user avatar from the server isn't in the avatar dir, add it under the 
  name 'server-avatar-$number.png' and make it default.
  This works the following way. We store a self-generated token for each avatar in
  the avatar dir. When we start, we receive the user avatar and generate our token,
  if it exists, we make it the first one in the dialog, if not, we save the avatar
  and its token and make it the first one
- Contact list should not scroll when populating it the first time.
- Add widget for audio conferencing, similar to the one from group audio
  conferencing in iChat


Future:
- HARD: Fix the ui-blocking (depending on luiz)
- Put a service in DBus to get/change the user presence and custom presence.


Done:
Fix this:
  chat_window.py:609: GtkWarning: gtk_text_view_get_iter_location: assertion `gtk_text_iter_get_buffer (iter) == get_buffer (text_view)' failed
  big_rect = self.conversation_textview.get_iter_location(end_iter)
  Inserted ('\n')
  Inserted ('Sent at 11:56 AM on Thursday')
  The problem seems to be that the last message is inserted after the window is closed!
- When no $id$.mru.txt file exists, make one with the standard distributed
  avatars! (if they exist in the dir)
- Change the icon of a blocked contact
- Add translation support (autoconf setup ready)
- Fix the alias names of offline contacts (depending on luiz)
- Make it possible to copy the avatars from the text view... pidgin does this!
- Sometimes ereseva doesn't show all contacts - fix!
- Fix the crash/stall on second login!
- Save position and size of the main window when it was uses last and restore at
  startup!
- Make emoticon dialog showing all emoticons, make popup showing the standard emoticons.
  (self.emote_group has all emoticons, look the comment in the code.)
- 'Remove contact' works in already existent contacts, but fails in contacts
  added in the same session.
- When a contact is added it must be included in the contact list with text and
  icon indicating "Authorization pending".
- Add combobox to select system "GTalk", "MSN (Experimental)". Grey out when
  the connection manager isnt found.
- Add the group list dialog which already exists!
- The PresenceCombo widget needs some horizontal spacing.
- Add 5 lines of /in-session/ log, to show as gray when a chat window is reopened.
- Refactor the emoticon code.
- Fix the scrolling for good
- Show the sign out dialog when you sign out from the tray
- Sign out should tell that all windows will be closed (and really close them)
  and let you choose not to sign out (look at Gtalk)
- Add Block to the Chat window
- Recognize links in chat window
- The Call capability should be set for GTalk Windows users, but seem not to be
- Add support for emoticons
- Actually set the avatar (use UserContact)
- Dont require preferences window (the widget is hooked up somewhere)
- Get the other sizes of the ereseva icon (from pidgin!)
- Add widget for video chat, similar to the one from iChat
- Make the file chooser only show supported image files!
- Change the label of the block/unblock menu item based on the contact state
- Make right click menu on contact list (block contact, delete contact)
- Make the Browse in the avatar selector open in the directory
  /home/user/.ereseva/avatars
- Finish the code to hide correctly the VCardPopup.
- Finish the port (from Landell) of combo status.
- Remove the ending of the contact uri on the chat-window
- Fix log in widget to work and be used
- Fix insert text
- Add parsing of ** (bold)
- Get Luiz to fix TextMessage
- Add your name
- Add menu entries to save and set the properties on the contact list
  (show offline contacts, sort after status)
- Make GUI for add contacts
- Disconnect Connection when gui is closed
- Change 'File' menu to 'Actions'
- Hookup the add contact dialog (Add Contact... menu entry)
- Add SHIFT+Enter for multi-line support 
- Fix bug in chat window that makes it expand with the text
- Fix the multiple chat windows bug.
- Fix the message duplication problem in the text channel.
- Update the contact list when the 'show-pictures' property is changed.
- Chat window is set urgent when contact says something
  when the window has the focus.
- Take the preferences 'show offline contacts' and 'sort after status' and put
  them as easily accessible check menu items.
- Change 'sort by states' option (remains default) to 'sort by name'
- If the user scrolled the message textview to read something and a message
  arrives, don't bother him with automatic scrolling, except that the scrollbar
  is very close to the bottom (must determine what 'very close' is).
- Change the label in the button on chat window from 'Preferences' to 'Options'.
- Add time of the last message when chat becomes inactive more than a minute.
- Displays a message in the conversation textview when the user custom status
  message is changed.
- Change the OK button in the avatar selector to Select.
- Put VCardPopup to work.
- Add a preference option to show the contact list in compact mode
  (just show the presence icon and the alias)
- Lots of VCard fixes
- Grey out Change Avatar and Add contact when not logged in!
- Make ComboPresence save and load the custom presence messages.
- The widgets in the contact list window need some more vertical spacing.
  (3 pixels or so)
- Change user presence when the presence in the ComboPrensence changes.
- Move the placement of the PresenceCombo to the top.
- Show a icon in the system tray.
- Put the dialogs in the same place (dialogs.py).
- Add buttons at the button "(Add)  (Chat|Talk|Conference)" that are sensitive
  or insensitive depending on the contact
- Add separator to the Video chat window (like in the main window)
- Clean up the callback code - right now there are several funcions making the
  Add contact window. It is ugly
- Make use of the instant search of the contact list TreeView.
- Add Contact dialog should be centered on the screen.
- Make it log in to normal Jabber accounts. If the settings dont work,
  try variations and save with a id.account.txt file for remembering.
  (dont store password there).
- Hook up escape to the Add Contact widget
- Make the tray icon show the status and not the logo of ereseva
- Make vcard background white
- Don't popup the tray menu on top of the tray icon! Pidgin doesn't do that!
- Add a small (initially hidden) widget in ContactList to ask subscribe
  authorization.
- Register user accounts using the format described here:
  http://telepathy.freedesktop.org/wiki/FileFormats

- Add a "Show contact list" toggle item to the tray and add a separator after it
- Search contacts (use filter).
- Fix the log view. Make sure that it works for other months that the current, and
- Implement "Go off the record" to turn off logging. Gtalk writes in the buffer:
  "You are now off the record Learn more Cancel".
- Fix the block user (ask abner! dont change icon unless you receive the blocked
  signal, as the server might not support blocking contacts!)
- Make the links clickable (with finger:).
- Implement the searching (marking of word in textbuffer) for the log view.
- Save chat logs as Unicode text.
