void CheckGravatarPluginInterface::exec() { if (mListItems.isEmpty()) { KMessageBox::sorry(parentWidget(), i18n("You have not selected any contacts.")); } else { if (mListItems.count() == 1) { Akonadi::Item item = mListItems.first(); if (item.hasPayload<KContacts::Addressee>()) { KContacts::Addressee address = item.payload<KContacts::Addressee>(); const QString email = address.preferredEmail(); if (email.isEmpty()) { KMessageBox::error(parentWidget(), i18n("No email found for this contact.")); return; } QPointer<KABGravatar::GravatarUpdateDialog> dlg = new KABGravatar::GravatarUpdateDialog(parentWidget()); dlg->setEmail(email); if (!address.photo().isEmpty()) { if (address.photo().isIntern()) { const QPixmap pix = QPixmap::fromImage(address.photo().data()); dlg->setOriginalPixmap(pix); } else { dlg->setOriginalUrl(QUrl(address.photo().url())); } } if (dlg->exec()) { KContacts::Picture picture = address.photo(); bool needToSave = false; if (dlg->saveUrl()) { const QUrl url = dlg->resolvedUrl(); if (!url.isEmpty()) { picture.setUrl(url.toString()); needToSave = true; } } else { const QPixmap pix = dlg->pixmap(); if (!pix.isNull()) { picture.setData(pix.toImage()); needToSave = true; } } if (needToSave) { address.setPhoto(picture); item.setPayload<KContacts::Addressee>(address); Akonadi::ItemModifyJob *modifyJob = new Akonadi::ItemModifyJob(item, this); connect(modifyJob, &Akonadi::ItemModifyJob::result, this, &CheckGravatarPluginInterface::slotModifyContactFinished); } } delete dlg; } else { KMessageBox::information(parentWidget(), i18n("A contact group was selected.")); } } else { KMessageBox::information(parentWidget(), i18n("Too many contacts selected.")); } } }
void ImageWidget::loadContact(const KContacts::Addressee &contact) { mPicture = (mType == Photo ? contact.photo() : contact.logo()); if (mPicture.isIntern() && !mPicture.data().isNull()) { mHasImage = true; } else if (!mPicture.isIntern() && !mPicture.url().isEmpty()) { mHasImage = true; } updateView(); }
void AddresseeTest::storeTest() { KContacts::Addressee addressee; KContacts::Picture logo(QStringLiteral("http://scottlandyard.info/pics/logo.png")); KContacts::Picture photo(QStringLiteral("http://scottlandyard.info/~sinclair/photo.png")); KContacts::Sound sound(QStringLiteral("http://scottlandyard.info/~sinclair/sound.wav")); QStringList emails; emails << QStringLiteral("*****@*****.**") << QStringLiteral("*****@*****.**"); KContacts::Key::List keys; keys << KContacts::Key(QStringLiteral("SecretKey")); QStringList categories; categories << QStringLiteral("Helper") << QStringLiteral("Friend"); QStringList customs; customs << QStringLiteral("X-Danger: high"); KContacts::Gender gender(QStringLiteral("H")); addressee.setGender(gender); KContacts::Lang lang(QLatin1String("lang")); addressee.setLangs(KContacts::Lang::List() << lang); addressee.setUid(QStringLiteral("My uid")); addressee.setName(QStringLiteral("John Sinclair")); addressee.setFormattedName(QStringLiteral("Sinclair, John")); addressee.setFamilyName(QStringLiteral("Sinclair")); addressee.setGivenName(QStringLiteral("John")); addressee.setAdditionalName(QStringLiteral("Bob")); addressee.setPrefix(QStringLiteral("Sir")); addressee.setSuffix(QStringLiteral("II")); addressee.setNickName(QStringLiteral("ghosthunter")); addressee.setBirthday(QDate(1982, 7, 19)); addressee.setMailer(QStringLiteral("mutt")); addressee.setTimeZone(KContacts::TimeZone(2)); addressee.setGeo(KContacts::Geo(42, 23)); addressee.setTitle(QStringLiteral("Ghost Hunter")); addressee.setRole(QStringLiteral("Leader")); addressee.setOrganization(QStringLiteral("Scottland Yard")); addressee.setNote(QStringLiteral("Don't cross black deads way...")); addressee.setProductId(QStringLiteral("ProductId45")); addressee.setRevision(QDateTime(QDate(1982, 9, 15))); addressee.setSortString(QStringLiteral("Name")); KContacts::ResourceLocatorUrl url; url.setUrl(QUrl(QStringLiteral("www.scottlandyard.info"))); addressee.setUrl(url); addressee.setSecrecy(KContacts::Secrecy(KContacts::Secrecy::Public)); addressee.setLogo(logo); addressee.setPhoto(photo); addressee.setSound(sound); addressee.setEmails(emails); addressee.setKeys(keys); addressee.setCategories(categories); addressee.setCustoms(customs); addressee.setKind(QStringLiteral("foo")); addressee.setChanged(false); KContacts::Impp imp; imp.setType(KContacts::Impp::GaduGadu); imp.setAddress(QStringLiteral("*****@*****.**")); KContacts::Impp::List listImp; listImp << imp; addressee.setImppList(listImp); QVERIFY(addressee.imppList() == listImp); QVERIFY(addressee.langs() == (KContacts::Lang::List() << lang)); QVERIFY(addressee.gender() == gender); QVERIFY(addressee.uid() == QStringLiteral("My uid")); QVERIFY(addressee.name() == QStringLiteral("John Sinclair")); QVERIFY(addressee.formattedName() == QStringLiteral("Sinclair, John")); QVERIFY(addressee.familyName() == QStringLiteral("Sinclair")); QVERIFY(addressee.givenName() == QStringLiteral("John")); QVERIFY(addressee.additionalName() == QStringLiteral("Bob")); QVERIFY(addressee.prefix() == QStringLiteral("Sir")); QVERIFY(addressee.suffix() == QStringLiteral("II")); QVERIFY(addressee.nickName() == QStringLiteral("ghosthunter")); QVERIFY(addressee.birthday().date() == QDate(1982, 7, 19)); QVERIFY(addressee.birthday().time() == QTime(0, 0)); QVERIFY(!addressee.birthdayHasTime()); QVERIFY(addressee.mailer() == QStringLiteral("mutt")); QVERIFY(addressee.timeZone() == KContacts::TimeZone(2)); QVERIFY(addressee.geo() == KContacts::Geo(42, 23)); QVERIFY(addressee.title() == QStringLiteral("Ghost Hunter")); QVERIFY(addressee.role() == QStringLiteral("Leader")); QVERIFY(addressee.organization() == QStringLiteral("Scottland Yard")); QVERIFY(addressee.note() == QStringLiteral("Don't cross black deads way...")); QVERIFY(addressee.productId() == QStringLiteral("ProductId45")); QVERIFY(addressee.revision() == QDateTime(QDate(1982, 9, 15))); QVERIFY(addressee.sortString() == QStringLiteral("Name")); QVERIFY(addressee.url() == url); QVERIFY(addressee.secrecy() == KContacts::Secrecy(KContacts::Secrecy::Public)); QVERIFY(addressee.logo() == logo); QVERIFY(addressee.photo() == photo); QVERIFY(addressee.sound() == sound); QVERIFY(addressee.emails() == emails); QVERIFY(addressee.keys() == keys); QVERIFY(addressee.categories() == categories); QVERIFY(addressee.customs() == customs); QVERIFY(addressee.changed() == false); QCOMPARE(addressee.kind(), QStringLiteral("foo")); }