(Only takes space if needed now)
* Possibility to disable display of mood in roster from preferences.
(Also works on the fly with the new rendering method)
* Minor improvements in the translation of the moods to German.
* Do not show transports when the account is disconnected. Fixes#4124
* Hide contacts with unconfirmed subscription when we only want to see online contacts. Fixes#4118
* partly rewrote join_room because it was hard to read
* Correctly handle invites from anonymous rooms. Fixes#4057
* Use HIG dialog for invitation requests
* Fix bug where minimized groupchats where hidden after a reconnect
* Removed some duplicated code
Remove some usage of has_key() in the contacts module. It is a bit slower (method overhead) and will be deprecated soon.
In roster_window. make a small if-clause more pythonic.
Caps is now used for: File Transfers, MUC Invites, Ad-Hoc Commands.
TODO:
* Also handle it this way for typing notifications
(This might give some trouble / compatibility issues)
* Fall back to service discovery if no caps are available. Otherwise,
we break compatibility with a lot of clients. (Asterix?)
This also fixes the problem of showing the wrong icon when expanding metacontacts.
Example:
We have the groups A, B, C in our child model
But only A and C are visible (and therefore in modelfilter)
Imagine we have a childIter_G pointing to group B
Getting its path in the childmodel, will give us (lets say) 2
2 means now the second group/row in the CHILD model
We now pass this to the tree and tell him "Expand row 2"
The tree itself is looking at the 2nd row of modelfilter: "Hey modelfilter, expand row number 2"
For modelfilter row number 2 is C and NOT B
* Do not double escape group names
* Try to remove SelfContact on disconnect only once
* Do not show minimized groupchats which were minimized after disconnect
* Always reset group expand state after adding a contact to roster.
* Don't traceback when another resource of us is moving contacts to new/different groups.
* Always refilter all involved groups.
* It is now possible to not update contacts severside when using add/remove_from_groups
* Change metacontact ordering. Fallback to priority only if two contacts have the same show, not the other way round.
* Move contacts that just signed out to the bottom of the group, not to the top.
-Use a method to get_shown_groups (possibly more work to do (special group attribute))
-Show contact only if contact.ask, not according to modified xep 0162 logic. (I don't get neither the xep
meaning, neither this modified logic, can you explain steve-e ?)
-Remove contact before we modify it req_sub(). Else we can't remove it because iter is not found.
-When removing a contact and we let him in see us (observer), manually set show to offline, so he is not set as
visible.
-Remove observer from observer group if we asked him auth (I mean before he answer). Xep 0162 say he is not an
observer then. Fix contact staying in observer group when we get auth later.
-Renaming groups seems fixed (it's an accident :p )
More work on group to follow
* don't traceback when selfcontact is disconnecting
* make more use of "remove contact after last event removed" mechanism
* correctly redraw bigbrothers after status change
* handle situation where we receive a message, go offline without reading it and reconnect after another resource has moved the sending contact to another group.
know bugs: newly added transports added to "not in roster group"
* show correct expand icon for metacontacts in different groups
* only redraw parent when really necessary
* remove obscure code
* fix draw_parent_contact
Do not risk invalidating child_model iters when redrawing a contact.
Move logic to update the family when the big brother has changed to an extra function.
ToDo:
* nearby_family code duplication
* totaly restructure and cleanup draw_contact
-When creating self-contact contact instance, store it with group 'self_contact', so it never goes in General
-Make general group not be seen visible because of self contact even if self.regroup
-Remove the self contact instance itself too when WE deconnect or when IT deconnect, so we will
not see it as offline if refilling roster (regroup account for example)