From kde-pim Wed Jun 12 03:09:07 2002 From: Don Sanders Date: Wed, 12 Jun 2002 03:09:07 +0000 To: kde-pim Subject: Re: [Kde-pim] KPIM Workspace X-MARC-Message: https://marc.info/?l=kde-pim&m=102385134707410 On Tuesday 11 June 2002 20:52, Don Sanders wrote: ... > IMO KAddressBook should be responsible for maintaining (saving, > updating, loading) this (these) sorted index files. On seconds thoughts, libkabc should be responsible for this as well. So I guess what I'm suggesting is making, Addressee AddressBook::findByUid( const QString & ); fast, by just loading and parsing a single addressee. And adding some methods, // returns number of Addressee's in the AddressBook. int count AddressBook::count(); // Ensure the AddressBook is indexed by @param field then return // the @param index'th element sorting by @param field. // If @param ascending is true then sort by ascending order // else sort in descending order. Addressee findByField( int index, QString field = someGoodDefaultLikeFileAs, bool ascending = true ); and maybe something like: // If @param on is true index the AddressBook by @param field, else // if @param on is false do not index the addressbook by @param field. // Returns true on success, false if the backend does not support index'ing. bool indexByField( QString field, bool on ); // Returns true iff the AddressBook is indexed by @param field. bool isIndexedByField( QString field ); Cornelius any thoughts? The reason why I mention this is because the lack of such an API is a design limitation, making kabc non-scalable. And even more importantly the lack of such an API encourages KAddressBook code to be written in a way that is non-scalable. If the KAddresBook views aren't written efficiently then KAddressBook will be slow no matter how fast kabc is. Implementation wise I don't have time to do this now. I'm working on some KMail code, once that's ready to submit hopefully in a couple of weeks then I could have time to work on this. BTW in my last mail I suggested using a QValueList to hold the sorted uids but obviously a QValueVector should really be used. Don. _______________________________________________ kde-pim mailing list kde-pim@mail.kde.org http://mail.kde.org/mailman/listinfo/kde-pim kde-pim home page at http://pim.kde.org/