Branch 'kolab/integration/4.13.0' - 2 commits - resources/kolab

Christian Mollekopf mollekopf at kolabsys.com
Mon Aug 18 10:41:56 CEST 2014


 resources/kolab/kolabhelpers.cpp  |   92 +++++++++++++++++++-------------------
 resources/kolab/kolabresource.cpp |    2 
 2 files changed, 47 insertions(+), 47 deletions(-)

New commits:
commit dcf7934aed0c155f6b0612b9a27aa4fb4868dd3e
Author: Christian Mollekopf <chrigi_1 at fastmail.fm>
Date:   Wed Aug 13 13:27:11 2014 +0200

    KolabResource: Catch Payload exceptions

diff --git a/resources/kolab/kolabhelpers.cpp b/resources/kolab/kolabhelpers.cpp
index 084bcb5..d9d1c6d 100644
--- a/resources/kolab/kolabhelpers.cpp
+++ b/resources/kolab/kolabhelpers.cpp
@@ -210,52 +210,54 @@ Akonadi::Item KolabHelpers::translateToImap(const Akonadi::Item &item, bool &ok)
     //Everthing stays the same, except mime type and payload
     Akonadi::Item imapItem = item;
     imapItem.setMimeType( QLatin1String("message/rfc822") );
-    switch(getKolabTypeFromMimeType(item.mimeType())) {
-        case Kolab::EventObject:
-        case Kolab::TodoObject:
-        case Kolab::JournalObject:
-        {
-            Q_ASSERT(item.hasPayload<KCalCore::Incidence::Ptr>());
-            kDebug() << "converted event";
-            const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeIncidence(
-                item.payload<KCalCore::Incidence::Ptr>(),
-                Kolab::KolabV3, productId, QLatin1String("UTC") );
-            imapItem.setPayload( message );
-        }
-        break;
-        case Kolab::NoteObject:
-        {
-            Q_ASSERT(item.hasPayload<KMime::Message::Ptr>());
-            kDebug() << "converted note";
-            const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeNote(
-                item.payload<KMime::Message::Ptr>(), Kolab::KolabV3, productId);
-            imapItem.setPayload( message );
-        }
-        break;
-        case Kolab::ContactObject:
-        {
-            Q_ASSERT(item.hasPayload<KABC::Addressee>());
-            kDebug() << "converted contact";
-            const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeContact(
-                item.payload<KABC::Addressee>(), Kolab::KolabV3, productId);
-            imapItem.setPayload( message );
-        }
-        break;
-        case Kolab::DistlistObject:
-        {
-            Q_ASSERT(item.hasPayload<KABC::ContactGroup>());
-            const KABC::ContactGroup contactGroup = convertToGidOnly(item.payload<KABC::ContactGroup>());
-            kDebug() << "converted distlist";
-            const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeDistlist(
-                contactGroup, Kolab::KolabV3, productId);
-            imapItem.setPayload( message );
-        }
-        break;
-        default:
-            kWarning() << "object type not handled: " << item.id() << item.mimeType();
-            ok = false;
-            return Akonadi::Item();
+    try {
+        switch(getKolabTypeFromMimeType(item.mimeType())) {
+            case Kolab::EventObject:
+            case Kolab::TodoObject:
+            case Kolab::JournalObject:
+            {
+                kDebug() << "converted event";
+                const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeIncidence(
+                    item.payload<KCalCore::Incidence::Ptr>(),
+                    Kolab::KolabV3, productId, QLatin1String("UTC") );
+                imapItem.setPayload( message );
+            }
+            break;
+            case Kolab::NoteObject:
+            {
+                kDebug() << "converted note";
+                const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeNote(
+                    item.payload<KMime::Message::Ptr>(), Kolab::KolabV3, productId);
+                imapItem.setPayload( message );
+            }
+            break;
+            case Kolab::ContactObject:
+            {
+                kDebug() << "converted contact";
+                const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeContact(
+                    item.payload<KABC::Addressee>(), Kolab::KolabV3, productId);
+                imapItem.setPayload( message );
+            }
+            break;
+            case Kolab::DistlistObject:
+            {
+                const KABC::ContactGroup contactGroup = convertToGidOnly(item.payload<KABC::ContactGroup>());
+                kDebug() << "converted distlist";
+                const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeDistlist(
+                    contactGroup, Kolab::KolabV3, productId);
+                imapItem.setPayload( message );
+            }
+            break;
+            default:
+                kWarning() << "object type not handled: " << item.id() << item.mimeType();
+                ok = false;
+                return Akonadi::Item();
 
+        }
+    } catch (Akonadi::PayloadException e) {
+        kWarning() << "The item contains the wrong or no payload: " << item.id() << item.mimeType();
+        kWarning() << e.what();
+        return Akonadi::Item();
     }
 
     if (checkForErrors(item)) {


commit 54f081b869c53f28914554de7c4550c1ae1d65d3
Author: Christian Mollekopf <chrigi_1 at fastmail.fm>
Date:   Mon Aug 11 21:59:05 2014 +0200

    Don't keep local mimetypes and access rights.
    
    Since we're getting the relevant metadata we can overwrite the local information.

diff --git a/resources/kolab/kolabresource.cpp b/resources/kolab/kolabresource.cpp
index 6348e20..2d6db5e 100644
--- a/resources/kolab/kolabresource.cpp
+++ b/resources/kolab/kolabresource.cpp
@@ -68,8 +68,6 @@ ResourceStateInterface::Ptr KolabResource::createResourceState(const TaskArgumen
 void KolabResource::retrieveCollections()
 {
     emit status(AgentBase::Running, i18nc("@info:status", "Retrieving folders"));
-
-    setKeepLocalCollectionChanges(QSet<QByteArray>() << "CONTENTMIMETYPES" << "AccessRights");
     startTask(new KolabRetrieveCollectionsTask(createResourceState(TaskArguments()), this));
 }
 




More information about the commits mailing list