Hello

After some hacking I got some news on the identity support for kopete.
Every account now is assigned to an identity.
By default, there will be only one identity (the "default" one), which will be 
created by the time you configure the first account in kopete, but more 
identities can be created in the identity configuration interface.

The Kopete::Account now has a identity() method which returns the identity 
assigned to the account. This method always returns a valid identity. If no 
identity was configured, it will create a default one and assign the account 
to that identity.

Account properties such as nickName, photo, will become now identity 
properties. They should be read from/written to the identity assigned to the 
account.

As I don't know the protocol implementations, I need some help on that: any 
place where user information is required should use the identity() now, by 
doing identity()->property() to get a property value, and 
identity()->setProperty() to set the value of a property in the identity.

It is still undecided how to handle synchronization, but my idea is to always 
use properties from the identity, never from the accounts themselves (unless 
an identity has only one account assigned to it, this would allow using the 
data from the account, but for all other cases, the identity data has 
preference).

Property changes are already being notified by the identity, so if the account 
supports storing information server-side, it can use that to always have 
up-to-date information from the identity.

I have created a dialog for configuring identity properties (which is 
accessible from the configuration dialog), but for chaning properties that 
are offen changed (like photo, nickname and so), I have created a inplace 
widget in kopete contact list window, which can be seen at:
http://people.mandriva.com/~boiko/kopete/identity/kopete_identity_status.png
Besides Bille not liking the underlined texts (which is something pretty easy 
to fix), I would like to know your opinion about that.

The identity icons are shown in the status bar for now, and don't have (yet) 
status overlay. I still think there must be a better way for showing the 
available identities than using a small icon on the status bar, but that is 
what I have for now :)
http://people.mandriva.com/~boiko/kopete/identity/identity_menu.png
The final version of the context menu won't have the accounts as submenus (as 
the account individual options can be configured in the inplace widget), it 
will only contain identity things, like configuring the identity and setting 
its online status.

So the next steps are: drop all account-specific user info dialogs (leaving 
just the ones that are used for contacts for now - those I'm planning to 
handle later), and make sure accounts are using the information from the 
identity and not from themselves.

Like said before, the work is being done on a separate branch. Now it is time 
to decide if this is going to be on 4.0, or if we leave that for 4.1 (giving 
us more time to better clean up our UI and doing bigger changes like this, or 
the contact list, status manager, etc)

Questions? Suggestions? Complaints? :)

Cheers

Gustavo Pichorim Boiko
-----------------------------------
KDE Developer      www.kde.org
Mandriva Labs      www.mandriva.com
_______________________________________________
kopete-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to