[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kopete-devel
Subject:    Re: [Kopete-devel]  Display Picture in the metacontact synced with
From:       Will Stephenson <william.stephenson () ncl ! ac ! uk>
Date:       2003-09-11 17:31:17
[Download RAW message or body]

On Thursday 11 September 2003 17:35, Olivier Goffart wrote:
> As everyone has elready seen, Kopete CVS already support the MSN display
> picture.
> In the same time, Will is working on the KAdressBook integration, and would
> like to use the display picture for KAB

But this is only one example of contact metadata.  There are many other things 
that protocols give us that we should be able to put in KABC that we should 
consider.  If we were to take the approach you describe below for all of 
these items, we have to add a lot of API, most of which will not be used by 
most protocols.  

There are two metadata properties I think we should keep in mind - the 
frequency of updates, and the merge policy.  

By frequency of updates, I mean, do we need to track the metadata's value as 
tightly as possible or can we be more relaxed?  Some types of contact 
metadata need to be completely up to date, using change notification; these 
are essential features.  The two examples are display name and (probably) 
display picture.  Call this 'Push updating' For other things, though, like 
dates of birth and addresses, on demand, 'Pull updating' is sufficient (see 
ICQ's user info). 

By Merge Policy, I mean, how we manage the multiple, partially overlapping 
sets of metadata that each each protocol provides.  Automatic or hand 
merging?  If we have a KMC with 3 contacts and each one updates their 
metadata whenever they want, how do we reconcile that into one record in a 
KMC?  At the moment we do not allow push updating when there are multiple 
metadata sources.  I can't see a automatic way to perform these merges that 
wouldn't violate the principle of least surprise.

Since for most data we only need pull updating and hand merging, I don't think 
we need the API below for most items.  We could get away without any 
additions to KopeteContact for these by just adding them to KMC (perhaps in a 
child UserInfo object) and then allowing protocol specific UI to manipulate 
the KMC metadata.  For example, for each widget on the ICQ Userinfo, there 
would be a button to 'Use this for the addressbook/metacontact'.  Then, at 
metacontact level, have an option to use the metacontact data in the KABC.

Will

> Here is a proposal of API:
>
> QPixmap KopeteMetaContact::displayPicture()
> KopeteMetaContact::setDisplayPicture(QPixmap)
> QPixmap KopeteContact::displayPicture()
> KopeteContact::setDisplayPicture(QPixmap)
> signal KopeteContact::displayPictureChanged()


-- 
Will Stephenson
IRC: Bille

_______________________________________________
Kopete-devel mailing list
Kopete-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/kopete-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic