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

List:       kopete-devel
Subject:    Re: [kopete-devel] Kopete Development Status
From:       Duncan Mac-Vicar <duncan () kde ! org>
Date:       2005-11-16 20:31:07
Message-ID: 200511162131.07647.duncan () kde ! org
[Download RAW message or body]

On Wednesday 16 November 2005 11:21, Olivier Goffart wrote:
> I'd like to know WHO is going to work on kopete and on what branch.
> Personally, i'd like to work on trunk, to refactor libkopete.  But i don't
> want to do it alone.
> It would be nice if poeple could reply this mail to see who will work
> where.

I will work in trunk

Basically with Will we want to come out refactoring the contact list backend.

I dont velieve in rewrites or "this is the perfect design or API", but 
iterative changes. 

What problem are we trying to solve (this was recopilated by Will and 
available on the wiki)

DUPLICATION of grouping of multiple IM addresses into the person using them. 
In libkopete, we have Kopete\:\:MetaContact and its child Kopete::Contacts. 
Then in KABC we mirror this in the KABC\:\:Addressee with a set of custom 
fields. This leads to problems with 
 CONSISTENCY
as Addressees can be deleted while Kopete is not running, it then has to 
update its copy of the grouping. Also IM addresses can be edited in Kontact 
while Kopete is running, and this case is not currently handled. 
COMPLEXITY
 at save time, the current code emits a signal, causing all plugins/protocols 
to write their data into a structure of nested QMaps, then this is written 
out as XML. Code complexity, both as run time (load/save speed) and as a 
barrier to understanding, is high. 
PORTABILITY
 The monolithic contactlist.xml file is hard to sync between different KDE 
installs. 
OPAQUE USE OF KDE ADDRESSBOOK
Currently, users have to optionally select the KABC contact to be able to 
benefit at all from addressbook integration. This should become transparent.

A doable divide an conquer roadmap could be. This basically means:

- ignore metacontacts from contact list when loading
- read the contact ids from the addressbook (custom IM fields)
- protocols still store contact/server cached specific information by their 
own, using a service in libkopete (right now the same contact list)
- visualize the contacts that are in the same addressee toghether in the GUI
- use the kabc groups

- when adding contacts, ask always for a addresse. You can use one in your own 
resource , create a new one, or use a kopete default one.

there are some behaviours that need to be defined. But the complexity of the 
code, and the protocols itself could be hugely minimized by achieving this. 
Also good time to come with tests, and get rid of some mess like Group, the 
addressBookField stuff, the contact list flow itself, etc.

Duncan

_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://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