kolabformat/kolabobject.cpp kolabformat/kolabobject.h

Christian Mollekopf mollekopf at kolabsys.com
Wed Nov 12 14:04:54 CET 2014


 kolabformat/kolabobject.cpp |   18 +++++++++++++-----
 kolabformat/kolabobject.h   |    2 +-
 2 files changed, 14 insertions(+), 6 deletions(-)

New commits:
commit 65e0a054fb74a5d04ca991dbd6b8f50fd6c798a9
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Wed Nov 12 14:04:50 2014 +0100

    Store relationmembers in tagmembers as well.

diff --git a/kolabformat/kolabobject.cpp b/kolabformat/kolabobject.cpp
index 65918d1..d6e5173 100644
--- a/kolabformat/kolabobject.cpp
+++ b/kolabformat/kolabobject.cpp
@@ -435,8 +435,11 @@ ObjectType KolabObjectReader::Private::readKolabV3(const KMime::Message::Ptr &ms
                     mRelation = Akonadi::Relation();
                     mRelation.setRemoteId(Conversion::fromStdString(configuration.uid()).toLatin1());
                     mRelation.setType(Akonadi::Relation::GENERIC);
-                    mRelation.setLeft(Akonadi::Item(Conversion::fromStdString(relation.members()[0]).toLongLong()));
-                    mRelation.setRight(Akonadi::Item(Conversion::fromStdString(relation.members()[1]).toLongLong()));
+
+                    mTagMembers.reserve(relation.members().size());
+                    foreach (const std::string &member, relation.members()) {
+                        mTagMembers << Conversion::fromStdString(member);
+                    }
                 } else {
                     Critical() << "generic relation had wrong number of members:" << relation.members().size();
                     printMessageDebugInfo(msg);
@@ -812,18 +815,23 @@ KMime::Message::Ptr KolabObjectWriter::writeTag(const Akonadi::Tag &tag, const Q
 #endif
 
 #ifdef HAVE_RELATION_H
-KMime::Message::Ptr KolabObjectWriter::writeRelation(const Akonadi::Relation &relation, Version v, const QString &productId)
+KMime::Message::Ptr KolabObjectWriter::writeRelation(const Akonadi::Relation &relation, const QStringList &items, Version v, const QString &productId)
 {
     ErrorHandler::clearErrors();
     if (v != KolabV3) {
         Critical() << "only v3 implementation available";
     }
 
+    if (items.size() != 2) {
+        Critical() << "Wrong number of members for generic relation.";
+        return KMime::Message::Ptr();
+    }
+
     Kolab::Relation kolabRelation(std::string(), "generic");
     std::vector<std::string> m;
     m.reserve(2);
-    m.push_back(Conversion::toStdString(QString::number(relation.left().id())));
-    m.push_back(Conversion::toStdString(QString::number(relation.right().id())));
+    m.push_back(Conversion::toStdString(items.at(0)));
+    m.push_back(Conversion::toStdString(items.at(1)));
     kolabRelation.setMembers(m);
 
     return writeRelationHelper(kolabRelation, relation.remoteId(), productId);
diff --git a/kolabformat/kolabobject.h b/kolabformat/kolabobject.h
index 378a172..96a6575 100644
--- a/kolabformat/kolabobject.h
+++ b/kolabformat/kolabobject.h
@@ -145,7 +145,7 @@ public:
     static KMime::Message::Ptr writeTag(const Akonadi::Tag &, const QStringList &items, Version v = KolabV3, const QString &productId = QString());
 #endif
 #ifdef HAVE_RELATION_H
-    static KMime::Message::Ptr writeRelation(const Akonadi::Relation &, Version v = KolabV3, const QString &productId = QString());
+    static KMime::Message::Ptr writeRelation(const Akonadi::Relation &, const QStringList &items, Version v = KolabV3, const QString &productId = QString());
 #endif
     
 };




More information about the commits mailing list