TODO for Jabber:

- support for public channels
- implement support for transports/agents
- support for file transfers
- allow synchronization of offline changes / online changes
- find out about Jabber server-side filtering components and if they can be
  integrated into the Kopete filtering API
- support all message types (chat/ticker/etc)
- do a std translation of resource.status().show() to JabberProtocol::Presence
- verify FIXMEs in JabberContact
- group chat needs a bit of rework
- add a button for server defaults
- on a failed connection attempt, the animation does not stop
- port dialogs to KDialogBase
- in slotGotVCard() there's a change nickname method, check that it does not
  collide with "rename contact" (change alias) -> disabled for now
- "Remove Authorization From" in contact popup menu has wrong position
- support different icons for contacts from servers with broken connections etc.
- show (i.e. with a QToolTip) the subscription status: both, to, from
- remove ugly cyclic includes/forward declarations in jabberawaydialog.h and jabberaccount.h
- display error messages in JabberContact::slotReceivedMessage()
- make awaydialog autodelete itself
- remove KOS from all classes, make them contact specific for Greg's enhancements,
  make all classes use JabberProtocol::OnlineStatus instead
- allow account ID changes
- clean up slight design glitches in vCard dialog
- add "querying..." feedback while waiting for vCard
- add more vCard features if bored
- clean up class names in the ui directory, no real scheme there right now
- a new contact that subscribed to you is added to the contact list (should
  be added as temporary)
- ask if authorization should be removed if a contact is deleted from the
  list
- provide better feedback for dialogs querying the server
- try to find a way to read a nickname for yourself from the Jabber roster
- support avatars and idle times for tooltips
- when trying to register an account, try to display the actual server error
  message
- when adding a new contact, automatically save the display name chosen
  there to the server
- when adding a new contact to an existing meta contact, save its display
  name to the server
- clean up JabberAddContactPage (needs rewrite)
- get rid of the createAddContact mess
- make sure Jabber account editor also calls validateJID() when adding a
  new contact (integrate it into validateData())
