Great. I downloaded and compiled.
I still get "no data sources" in the explorer and in some test code which would simply show the sources() list. > SVN commit 923483 by sebas: > > birthday, location and photo for the akonadi dataengine contacts part > > In more general, the dataengine works as follows: > > For email: > ----------- > - request "EmailCollections", you'll get a list of EmailCollections-<id> > as key and the name of the collection as value. > (The list of collections is loaded on demand) > > - Choose one of those collections by request the ID > (EmailCollection-<id>). The dataengine now queries Akonadi for all > emails in that collections and will add a new source for every email. In > you dataUpdated() method, you can simply check if the > source.startsWith("EmailCollection-") and then query the data from that > email. > > Properties you might be interested in for those email source are: > - QDate DateTime > - QString Subject > - QString From > - QString To > - qlonglong Id > > The Id can be used to query Akonadi for the body of the email. That part > is not yet included in the Akonadi engine, but might come in the future. > > For Contacts: > -------------- > - request "ContactCollections", choose one of those and request > "ContactCollection-<id>". > - request one of those collections ("ContactCollection-<id>") > - New sources for every contact in that collection will appear. You can > now get at the Contacts data through the following fields in that > particular source: > > - double longitude > - double latitude > - QString Organization, Role, FullEmail, Name, Department, Emails, > various Phone- numbers > > Work to get those datasets more complete is under way. What's in should > already provide for most of the use cases you can dream of. > > CCMAIL:plasma-devel@kde.org > > M +23 -8 akonadiengine.cpp > > > --- trunk/playground/base/plasma/dataengines/akonadi/akonadiengine.cpp > #923482:923483 @@ -29,6 +29,7 @@ > > #include <kabc/addressee.h> > #include <kabc/phonenumber.h> > +#include <kabc/picture.h> > > /* > #include <kmime/kmime_message.h> > @@ -54,7 +55,6 @@ > SLOT(emailItemChanged(Akonadi::Item)) ); > // TODO: monitoring for contacts > > - fetchContactCollections(); // TODO: remove, it's there only for > debugging } > > AkonadiEngine::~AkonadiEngine() > @@ -256,22 +256,37 @@ > // Phone and related > QStringList phoneNumbers; > foreach (const KABC::PhoneNumber pn, a.phoneNumbers()) { > - QString key = QString("Phone%1").arg(pn.typeLabel()); > - setData(source, key, a.phoneNumber(pn.type()).toString()); > - phoneNumbers << a.phoneNumber(pn.type()).toString(); > + QString key = QString("Phone-%1").arg(pn.typeLabel()); > + setData(source, key, a.phoneNumber(pn.type()).number()); > + phoneNumbers << a.phoneNumber(pn.type()).number(); > } > if (!phoneNumbers.count()) { > setData(source, "PhoneNumbers", phoneNumbers); > } > > - // department, fullEmail, nickName, organisation, note, > prefix, realName, role + // Personal > + if (!a.birthday().isValid()) { > + setData(source, "Birthday", a.birthday()); > + } > > + if (a.photo().isEmpty()) { > + setData(source, "Photo", a.photo().data()); > + setData(source, "PhotoUrl", a.photo().url()); > + } > + if (a.geo().isValid()) { > + setData(source, "Latitude", a.geo().latitude()); > + setData(source, "Longitude", a.geo().longitude()); > + } > > - // phoneNumber.toString phoneNumber.typeLabel > + // addresses > > - //setData(source, "Name", a.name()); > + // categories > > - // TODO > + // note, > + > + // prefix, > + > + // ... > } > } > } > _______________________________________________ > Plasma-devel mailing list > Plasma-devel@kde.org > https://mail.kde.org/mailman/listinfo/plasma-devel _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel