Branch 'dev/libkolab' - 3 commits - cmake/modules libkolab/CMakeLists.txt libkolab/kolabformat

Christian Mollekopf mollekopf at kolabsys.com
Fri Mar 23 16:04:20 CET 2012


 cmake/modules/FindKDELibraries.cmake  |   20 +++++++++---
 cmake/modules/FindKolabInternal.cmake |    2 -
 libkolab/CMakeLists.txt               |    2 -
 libkolab/kolabformat/kolabobject.cpp  |   56 ++++++++++++++++++++++++++++++++++
 libkolab/kolabformat/kolabobject.h    |    6 +++
 5 files changed, 79 insertions(+), 7 deletions(-)

New commits:
commit 79ede711aeab218c2fa63fc458c9c887c5e337d1
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Fri Mar 23 14:55:34 2012 +0100

    Implemented v2 notes.

diff --git a/libkolab/kolabformat/kolabobject.cpp b/libkolab/kolabformat/kolabobject.cpp
index c3603a5..3e4bdb6 100644
--- a/libkolab/kolabformat/kolabobject.cpp
+++ b/libkolab/kolabformat/kolabobject.cpp
@@ -23,11 +23,13 @@
 #include <kolabformatV2/event.h>
 #include <kolabformatV2/contact.h>
 #include <kolabformatV2/distributionlist.h>
+#include <kolabformatV2/note.h>
 #include <mime/mimeutils.h>
 #include <conversion/kcalconversion.h>
 #include <qdom.h>
 #include <kdebug.h>
 #include <qbuffer.h>
+#include <akonadi/notes/noteutils.h>
 #include <kolab/kolabformat.h>
 
 
@@ -38,6 +40,8 @@ static QString todoKolabType() { return QString::fromLatin1("application/x-vnd.k
 static QString journalKolabType() { return QString::fromLatin1("application/x-vnd.kolab.journal"); };
 static QString contactKolabType() { return QString::fromLatin1("application/x-vnd.kolab.contact"); };
 static QString distlistKolabType() { return QString::fromLatin1("application/x-vnd.kolab.contact.distlist"); }
+static QString noteKolabType() { return QString::fromLatin1("application/x-vnd.kolab.note"); }
+
 static QString xCalMimeType() { return QString::fromLatin1("application/calendar+xml"); };
 
 /*
@@ -175,6 +179,39 @@ KMime::Message::Ptr contactToKolabFormat(const KolabV2::Contact& contact)
 }
 
 
+KMime::Message::Ptr noteFromKolab(const QByteArray &xmlData, const KMime::Message::Ptr &data)
+{
+    KolabV2::Note j;
+    if ( !j.load( xmlData ) ) {
+        kWarning() << "failed to read note";
+        return KMime::Message::Ptr();
+    }
+
+    Akonadi::NoteUtils::NoteMessageWrapper note;
+    note.setTitle(j.summary());
+    note.setText(j.body().toUtf8());
+    note.setFrom("kolab at kde4");
+    note.setCreationDate(data->date()->dateTime());
+    return note.message();
+}
+
+KMime::Message::Ptr noteToKolab(const KMime::Message::Ptr& msg)
+{
+    Akonadi::NoteUtils::NoteMessageWrapper note(msg);
+    KolabV2::Note j;
+    j.setSummary( note.title() );
+    j.setBody( note.text() );
+
+    KMime::Message::Ptr message = Mime::createMessage( noteKolabType() );
+    message->subject()->fromUnicodeString( j.summary(), "utf-8" );
+    KMime::Content* content = Mime::createMainPart( noteKolabType(), j.saveXML().toUtf8() );
+    message->addContent( content );
+
+    message->assemble();
+    return message;
+}
+
+
 //Normalize incidences before serializing them
 void normalizeIncidence(KCalCore::Incidence::Ptr i)
 {
@@ -206,6 +243,7 @@ public:
     KCalCore::Incidence::Ptr mIncidence;
     KABC::Addressee mAddressee;
     KABC::ContactGroup mContactGroup;
+    KMime::Message::Ptr mNote;
     ObjectType mObjectType;
     Version mVersion;
 };
@@ -268,6 +306,10 @@ ObjectType KolabObjectReader::parseMimeMessage(const KMime::Message::Ptr &msg)
         kDebug() << "distlist";
         d->mContactGroup = contactGroupFromKolab(xmlData);
         d->mObjectType = DistlistObject;
+    }  else if (kolabType == noteKolabType()) { //Note
+        kDebug() << "notes";
+        d->mNote = noteFromKolab(xmlData, msg);
+        d->mObjectType = NoteObject;
     } else {
         kWarning() << "no kolab object found " << kolabType;
     }
@@ -317,6 +359,11 @@ KABC::ContactGroup KolabObjectReader::getDistlist() const
     return d->mContactGroup;
 }
 
+KMime::Message::Ptr KolabObjectReader::getNote() const
+{
+    return d->mNote;
+}
+
 
 
 KMime::Message::Ptr KolabObjectWriter::writeEvent(const KCalCore::Event::Ptr &i, Version v, const QString &tz)
@@ -386,6 +433,15 @@ KMime::Message::Ptr KolabObjectWriter::writeDistlist(const KABC::ContactGroup &d
     return distListToKolabFormat(d);
 }
 
+KMime::Message::Ptr KolabObjectWriter::writeNote(const KMime::Message::Ptr &note, Version v)
+{
+    if (v == KolabV3) {
+        //TODO
+    }
+    return noteToKolab(note);
+}
+
+
 
 }; //Namespace
 
diff --git a/libkolab/kolabformat/kolabobject.h b/libkolab/kolabformat/kolabobject.h
index a20ce99..3c00cbb 100644
--- a/libkolab/kolabformat/kolabobject.h
+++ b/libkolab/kolabformat/kolabobject.h
@@ -41,7 +41,8 @@ enum ObjectType {
     TodoObject,
     JournalObject,
     ContactObject,
-    DistlistObject
+    DistlistObject,
+    NoteObject
 };
 
 
@@ -70,6 +71,8 @@ public:
     KCalCore::Incidence::Ptr getIncidence() const;
     KABC::Addressee getContact() const;
     KABC::ContactGroup getDistlist() const;
+    KMime::Message::Ptr getNote() const;
+
 private:
     //@cond PRIVATE
     class Private;
@@ -84,6 +87,7 @@ public:
     static KMime::Message::Ptr writeJournal(const KCalCore::Journal::Ptr &, Version v = KolabV3, const QString &tz = QString());
     static KMime::Message::Ptr writeContact(const KABC::Addressee &, Version v = KolabV3);
     static KMime::Message::Ptr writeDistlist(const KABC::ContactGroup &, Version v = KolabV3);
+    static KMime::Message::Ptr writeNote(const KMime::Message::Ptr &, Version v = KolabV3);
 };
 
 }; //Namespace


commit 3dca5958002339e926490abda2d5736f33cd6500
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Fri Mar 23 14:54:41 2012 +0100

    FindKDELIbraries improved

diff --git a/cmake/modules/FindKDELibraries.cmake b/cmake/modules/FindKDELibraries.cmake
index 45e6c57..6d81cc6 100644
--- a/cmake/modules/FindKDELibraries.cmake
+++ b/cmake/modules/FindKDELibraries.cmake
@@ -2,17 +2,29 @@
 find_library(KCALCORE_LIBRARY NAMES kcalcore)
 if(KCALCORE_LIBRARY)
     set(KCALCORE_LIBRARY_FOUND ON)
-    message("KCalCore found")
+    message("KCalCore found: ${KCALCORE_LIBRARY}")
 endif(KCALCORE_LIBRARY)
 
 find_library(KMIME_LIBRARY NAMES kmime)
 if(KMIME_LIBRARY)
     set(KMIME_LIBRARY_FOUND ON)
-    message("KMime found")
+    message("KMime found: ${KMIME_LIBRARY}")
 endif(KMIME_LIBRARY)
 
 find_library(KABC_LIBRARY NAMES kabc)
 if(KABC_LIBRARY)
     set(KABC_LIBRARY_FOUND ON)
-    message("KABC found")
-endif(KABC_LIBRARY)
\ No newline at end of file
+    message("KABC found: ${KABC_LIBRARY}")
+endif(KABC_LIBRARY)
+
+find_library(AKONADI-KDE_LIBRARY NAMES akonadi-kde)
+if(AKONADI-KDE_LIBRARY)
+    set(AKONADI-KDE_LIBRARY_FOUND ON)
+    message("AKONADI-KDE found: ${AKONADI-KDE_LIBRARY}")
+endif(AKONADI-KDE_LIBRARY)
+
+find_library(AKONADI-NOTES_LIBRARY NAMES akonadi-notes)
+if(AKONADI-NOTES_LIBRARY)
+    set(AKONADI-NOTES_LIBRARY_FOUND ON)
+    message("AKONADI-NOTES found: ${AKONADI-NOTES_LIBRARY}")
+endif(AKONADI-NOTES_LIBRARY)
\ No newline at end of file
diff --git a/libkolab/CMakeLists.txt b/libkolab/CMakeLists.txt
index c00fdc7..4338a9d 100644
--- a/libkolab/CMakeLists.txt
+++ b/libkolab/CMakeLists.txt
@@ -30,7 +30,7 @@ set(LIBRARY_TYPE STATIC)
 add_subdirectory(kolabformatV2)
 
 add_library(kolab SHARED kolabformat/kolabobject.cpp mime/mimeutils.cpp conversion/kcalconversion.cpp)
-target_link_libraries(kolab kolabformatV2  ${KOLABXML} ${KCALCORE_LIBRARY} ${KMIME_LIBRARY} ${QT_QTCORE_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTGUI_LIBRARY} ${KDE4_KDECORE_LIBRARY} ${KABC_LIBRARY} akonadi-kde ${KDE4_KIO_LIBRARY})
+target_link_libraries(kolab kolabformatV2  ${KOLABXML} ${KCALCORE_LIBRARY} ${KMIME_LIBRARY} ${QT_QTCORE_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTGUI_LIBRARY} ${KDE4_KDECORE_LIBRARY} ${KABC_LIBRARY} ${AKONDI-KDE_LIBRARY} ${AKONADI-NOTES_LIBRARY} ${KDE4_KIO_LIBRARY})
 set_target_properties(kolab PROPERTIES VERSION 0.1 SOVERSION 0)
 
 install(TARGETS kolab EXPORT libkolabLibraryTargets ${KOLAB_INSTALL_DIRECTORIES})


commit 48d7b5e4a88482dfd87f1756dc005b782b10f284
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Fri Mar 23 14:54:15 2012 +0100

    fixed header install path

diff --git a/cmake/modules/FindKolabInternal.cmake b/cmake/modules/FindKolabInternal.cmake
index 9e817eb..fb9d6a5 100644
--- a/cmake/modules/FindKolabInternal.cmake
+++ b/cmake/modules/FindKolabInternal.cmake
@@ -46,6 +46,6 @@ set(KOLAB_INSTALL_DIRECTORIES  RUNTIME DESTINATION "${KOLAB_BIN_INSTALL_DIR}"
 if(KOLAB_HEADER_INSTALL_DIR)
     message("KOLAB_HEADER_INSTALL_DIR specified manually")
 else()
-    set(KOLAB_HEADER_INSTALL_DIR  "${CMAKE_INSTALL_PREFIX}/include")
+    set(KOLAB_HEADER_INSTALL_DIR  "${CMAKE_INSTALL_PREFIX}/include/kolab")
 endif()
 message("KOLAB_HEADER_INSTALL_DIR: ${KOLAB_HEADER_INSTALL_DIR}")





More information about the commits mailing list