There will be a lot more to do, but at least with this change, it is not
possible anymore to create a UserID outside of JRoster. So there should
always be a unique instance of the UserID for each roster entry. This
makes sure the state of the user is globally synchronized properly, and
no part of the code is accidentally working on a copy instead of the
real thing.
Only the version with data forms is supported, not the legacy fixed
fields one. Error handling is not perfect yet and can likely be
improved.
To be tested more extensively after gloox get support for SRV records
(so we're sure to connect correctly to the server)
- Remove "channels" menu and instead list group chats in the roster view
- Allow joining a group chat by double ckicking on it in the roster
- Support for bookmarks2 (XEP-0402). XEP-0048 is also implemented, but
currently disabled.
- Joining a group chat adds it to the bookmarks with autojoin enabled,
unless it is not an user initiated action (for example, someone else
invited you in a room)
- Leaving a groupchat adds it to the bootkmarks, with autojoin disabled
(so you can easily access the server-side history for it or join back)
- Bookmarks can be deleted by right click->remove in the Roster.
Fixes #32, #40
Also includes several cleanups, refactoring, etc
TODO:
- Send back dataform to the server
- Handle OOB data
- Handle legacy fields again
- Better error handling
- Complete BOB and Media handling for captchas
- Finish support for previous/next navigation in registration wizard
(cleanup already added views, etc)
Future considerations:
- Drop JabberSpeak.cpp completely and use GlooxHandler instead
everywhere
The xmpp-doap extension has be simplified to only expose the
SupportedXep class and its children properties, as well as categories,
and reuses DOAP to the maximum.
Transport aren't really a cool thing these days, this code is in the old
Jabber implementation anyway, and it only handles IM networks that are
largely gone. We may reimplement this later, but for now it's easier to
have this out of the way.