From kde-commits Fri Sep 30 21:38:22 2016 From: Montel Laurent Date: Fri, 30 Sep 2016 21:38:22 +0000 To: kde-commits Subject: [libkdepim/Applications/16.08] src/addressline/addresslineedit: Workaround when we dnd email from vi Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=147527151102741 Git commit d2290646a9f095ef7aa67daed232e02dc87f20f0 by Montel Laurent. Committed on 30/09/2016 at 21:38. Pushed by mlaurent into branch 'Applications/16.08'. Workaround when we dnd email from viewer M +14 -5 src/addressline/addresslineedit/addresseelineedit.cpp http://commits.kde.org/libkdepim/d2290646a9f095ef7aa67daed232e02dc87f20f0 diff --git a/src/addressline/addresslineedit/addresseelineedit.cpp b/src/ad= dressline/addresslineedit/addresseelineedit.cpp index 2a7fab8..9ce0947 100644 --- a/src/addressline/addresslineedit/addresseelineedit.cpp +++ b/src/addressline/addresslineedit/addresseelineedit.cpp @@ -312,7 +312,6 @@ void AddresseeLineEdit::mouseReleaseEvent(QMouseEvent *= event) void AddresseeLineEdit::dropEvent(QDropEvent *event) { const QMimeData *md =3D event->mimeData(); - // Case one: The user dropped a text/directory (i.e. vcard), so decode= its // contents if (KContacts::VCardDrag::canDecode(md)) { @@ -415,12 +414,22 @@ void AddresseeLineEdit::dropEvent(QDropEvent *event) } } else { // Let's see if this drop contains a comma separated list = of emails - const QMimeData *mimeData =3D event->mimeData(); - if (mimeData->hasText()) { - const QString dropData =3D mimeData->text(); + if (md->hasText()) { + const QString dropData =3D md->text(); const QStringList addrs =3D KEmailAddress::splitAddres= sList(dropData); if (!addrs.isEmpty()) { - setText(KEmailAddress::normalizeAddressesAndDecode= Idn(dropData)); + if (addrs.count() =3D=3D 1) { + QUrl url(dropData); + if (url.scheme() =3D=3D QLatin1String("mailto"= )) { + KContacts::Addressee addressee; + addressee.insertEmail(KEmailAddress::decod= eMailtoUrl(url), true /* preferred */); + insertEmails(addressee.emails()); + } else { + setText(KEmailAddress::normalizeAddressesA= ndDecodeIdn(dropData)); + } + } else { + setText(KEmailAddress::normalizeAddressesAndDe= codeIdn(dropData)); + } setModified(true); return; }