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 ¬e, 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