[Kde-pim] Dragging akonadi items
Ingo Klöcker
kloecker at kde.org
Sun Feb 21 14:05:09 GMT 2010
On Sunday 21 February 2010, Robin Atwood wrote:
> On Sunday 21 February 2010, Ingo Klöcker wrote:
> > On Sunday 21 February 2010, Robin Atwood wrote:
> > > If I drag a kaddressbook item to kwrite, the akonadi: URL is
> > > resolved and I can see the VCS entry in the editor. If I drag it
> > > to my KLineEdit widget I just get the URL despite that I have
> > > the UrlDropsEnabled property set. What am I missing? (A lot, I
> > > suspect!)
> >
> > I think you misunderstand the UrlDropsEnabled property.
>
> That was my impression also. :)
>
> > IMO resolving of URLs cannot be handled by a plain vanilla
> > KLineEdit because what the URL should be resolved to depends on
> > the context. An akonadi-URL representing a contact could be
> > resolved to the contact's name, the contact's email address, the
> > contact's phone number, etc., depending on the context (i.e. does
> > the line edit expect a name, an email address, a phone number,
> > etc.).
>
> This is what I want. I guess my question is how to do the decoding
> without getting too involved with akonadi internals; KWrite seems to
> do it automatically.
KWrite simply uses the corresponding kioslave to load the data
referenced by the URL. All applications supporting KIO can do this. For
a line edit this approach doesn't work because putting a complete vCard
into a line edit doesn't make much sense.
Nevertheless, you might not have to get in touch with Akonadi at all.
KMail's line edit does the following:
void KMLineEdit::dropEvent(QDropEvent *event)
{
const QMimeData *md = event->mimeData();
// Case one: The user dropped a text/directory (i.e. vcard), so decode
its
// contents
if ( KPIM::KVCardDrag::canDecode( md ) ) {
KABC::Addressee::List list;
KPIM::KVCardDrag::fromMimeData( md, list );
KABC::Addressee::List::Iterator ait;
for ( ait = list.begin(); ait != list.end(); ++ait ){
insertEmails( (*ait).emails() );
}
}
[...]
}
The only problem is that KPIM::KVCardDrag lives in kdepim/libkdepim,
i.e. it's not public API. If you want to use it outside or kdepim you
might have to copy it.
Regards,
Ingo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20100221/46747005/attachment.sig>
-------------- next part --------------
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list