From 2b8918e1cf28890b47c0cd2399eccf2087cbfbb4 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 27 Jun 2017 15:19:41 +0200 Subject: No more dummy values in the people view --- framework/src/CMakeLists.txt | 3 ++- framework/src/domain/contactcontroller.cpp | 22 ++++++++++++++++++---- framework/src/domain/contactcontroller.h | 6 ++++++ 3 files changed, 26 insertions(+), 5 deletions(-) (limited to 'framework/src') diff --git a/framework/src/CMakeLists.txt b/framework/src/CMakeLists.txt index 0e6af2ce..1b92e8c3 100644 --- a/framework/src/CMakeLists.txt +++ b/framework/src/CMakeLists.txt @@ -6,6 +6,7 @@ find_package(KAsync CONFIG REQUIRED) find_package(QGpgme CONFIG REQUIRED) find_package(KF5Codecs CONFIG REQUIRED) find_package(KF5Package CONFIG REQUIRED) +find_package(KF5Contacts CONFIG REQUIRED) add_definitions("-Wall -std=c++0x -g") @@ -42,7 +43,7 @@ set(SRCS add_library(frameworkplugin SHARED ${SRCS}) qt5_use_modules(frameworkplugin Core Quick Qml WebEngineWidgets Test) -target_link_libraries(frameworkplugin sink kube_otp KF5::Codecs KF5::Package KAsync) +target_link_libraries(frameworkplugin sink kube_otp KF5::Codecs KF5::Package KF5::Contacts KAsync) install(TARGETS frameworkplugin DESTINATION ${FRAMEWORK_INSTALL_DIR}) add_subdirectory(domain/mime/mimetreeparser) diff --git a/framework/src/domain/contactcontroller.cpp b/framework/src/domain/contactcontroller.cpp index 49f78b40..90ef6323 100644 --- a/framework/src/domain/contactcontroller.cpp +++ b/framework/src/domain/contactcontroller.cpp @@ -19,6 +19,7 @@ #include "contactcontroller.h" #include +#include ContactController::ContactController() : Kube::Controller(), @@ -40,11 +41,24 @@ void ContactController::loadContact(const QVariant &contact) { if (auto c = contact.value()) { setName(c->getFn()); - QStringList emails; - for (const auto &e : c->getEmails()) { - emails << e.email; + const auto &vcard = c->getVcard(); + KContacts::VCardConverter converter; + const auto addressee = converter.parseVCard(vcard); + setEmails(addressee.emails()); + QStringList numbers; + for (const auto &n : addressee.phoneNumbers()) { + numbers << n.number(); } - setEmails(emails); + setPhoneNumbers(numbers); + + for(const auto &a :addressee.addresses()) { + setStreet(a.street()); + setCity(a.locality()); + setCountry(a.country()); + break; + } + setCompany(addressee.organization()); + setJobTitle(addressee.role()); } } diff --git a/framework/src/domain/contactcontroller.h b/framework/src/domain/contactcontroller.h index d1973d9c..fea42430 100644 --- a/framework/src/domain/contactcontroller.h +++ b/framework/src/domain/contactcontroller.h @@ -35,6 +35,12 @@ class ContactController : public Kube::Controller //Interface properties KUBE_CONTROLLER_PROPERTY(QString, Name, name) KUBE_CONTROLLER_PROPERTY(QStringList, Emails, emails) + KUBE_CONTROLLER_PROPERTY(QStringList, PhoneNumbers, phoneNumbers) + KUBE_CONTROLLER_PROPERTY(QString, Street, street) + KUBE_CONTROLLER_PROPERTY(QString, City, city) + KUBE_CONTROLLER_PROPERTY(QString, Country, country) + KUBE_CONTROLLER_PROPERTY(QString, Company, company) + KUBE_CONTROLLER_PROPERTY(QString, JobTitle, jobTitle) KUBE_CONTROLLER_ACTION(save) -- cgit v1.2.3