Account: add 'OnlyUsedByClient' property?
@gdesmott
Submitted by Guillaume Desmottes Assigned to Telepathy bugs list
Description
We'd like to have Polari behaving like a 'normal' IRC client (like XChat). That means that IRC accounts are connected when Polari is started and disconnected when it's exited. Currently, the only way to do that would be to enable/disable all the IRC accounts when Polari is starting/exiting. This will lead to unexpected side effect like forcing people to manually re-enable the account if they want to use another client (empathy-chat?) for whatever reason.
A potential way to fix this could be to add a 'OnlyUsedByClient' Account property containing either '' (empty string) or a Client D-Bus name. If Account.OnlyUsedByClient is empty then the account is considered to be 'desktop wide' which is the current behaviour (different clients can use the account).
Let's say an Account 'A' has C has Account.OnlyUsedByClient value:
- C is responsible of handling A's presence/connection status. Especially, changing our global presence in Empathy or Shell shouldn't affect A.
- All channels from A should be handled by C. See also bug #30963 for another attempt to solve this issue. This should prevent the kind of problem I described in https://bugzilla.gnome.org/show_bug.cgi?id=599184#c29
- Accounts UI like empathy-chat may or may not display A. Actually this may be a replacement for the Hidden API (bug #33101)?
We should probably have API to enfore accounts change even for those accounts. For example, we probably still want to change their presence to away when the computer is idle. (Or maybe this should be done directly by MC itself?)