CMakeLists.txt conversion/kabcconversion.cpp

Christian Mollekopf mollekopf at kolabsys.com
Mon May 20 15:57:44 CEST 2013


 CMakeLists.txt                |    2 +-
 conversion/kabcconversion.cpp |   23 ++++++++++++++++-------
 2 files changed, 17 insertions(+), 8 deletions(-)

New commits:
commit 84f194233beccdd43a349e4f378012e319ecdca2
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Mon May 20 15:56:45 2013 +0200

    Adapt to binary incompatible changes for setting email addresses on
    contacts.
    
    Requires libkolabxml 1.0. Types are not preserved yet.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f66bcc..ca0edfb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -47,7 +47,7 @@ set(CMAKECONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/Libkolab )
 include(MacroLogFeature)
 
 # Do the building
-find_package(Libkolabxml 0.9 REQUIRED)
+find_package(Libkolabxml 1.0 REQUIRED)
 macro_log_feature(Libkolabxml_FOUND "Libkolabxml" "Kolab XML Format 3 serializing library" "http://git.kolab.org/libkolabxml/" TRUE "0.8.3" "Required for reading/writing Kolab XML Objects")
 
 find_package(Qt4 4.6.0 REQUIRED)
diff --git a/conversion/kabcconversion.cpp b/conversion/kabcconversion.cpp
index b69aa72..ce33913 100644
--- a/conversion/kabcconversion.cpp
+++ b/conversion/kabcconversion.cpp
@@ -432,11 +432,16 @@ KABC::Addressee toKABC(const Kolab::Contact &contact)
   QString preferredEmail;
   
   if (!contact.emailAddresses().empty()) {
-      addressee.setEmails(toStringList(contact.emailAddresses()));
+      QStringList emails;
+      foreach( const Kolab::Email &email, contact.emailAddresses()) {
+          emails << fromStdString(email.address());
+          //FIXME preserve type
+      }
+      addressee.setEmails(emails);
       if ((contact.emailAddressPreferredIndex() >= 0) && (contact.emailAddressPreferredIndex() < static_cast<int>(contact.emailAddresses().size()))) {
-          preferredEmail = fromStdString(contact.emailAddresses().at(contact.emailAddressPreferredIndex()));
+          preferredEmail = fromStdString(contact.emailAddresses().at(contact.emailAddressPreferredIndex()).address());
       } else {
-          preferredEmail = fromStdString(contact.emailAddresses().at(0));
+          preferredEmail = fromStdString(contact.emailAddresses().at(0).address());
       }
       addressee.insertEmail(preferredEmail, true);
   }
@@ -705,13 +710,17 @@ Kolab::Contact fromKABC(const KABC::Addressee &addressee)
     }
     
     int prefEmail = -1;
+    int count = 0;
+    std::vector<Kolab::Email> emails;
     foreach(const QString &e, addressee.emails()) {
-        prefEmail++;
-        if (e == addressee.preferredEmail()) {
-            break;
+        if ((prefEmail == -1) && (e == addressee.preferredEmail())) {
+            prefEmail = count;
         }
+        count++;
+        //FIXME preserve types
+        emails.push_back(Kolab::Email(toStdString(e)));
     }
-    c.setEmailAddresses(fromStringList(addressee.emails()), prefEmail);
+    c.setEmailAddresses(emails, prefEmail);
     if (addressee.geo().isValid()) {
         c.setGPSpos(std::vector<Kolab::Geo>() << Kolab::Geo(addressee.geo().latitude(), addressee.geo().longitude()));
     }





More information about the commits mailing list