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

Christian Mollekopf mollekopf at kolabsys.com
Tue Dec 9 16:12:10 CET 2014


 resources/kolab/CMakeLists.txt                   |    2 ++
 resources/kolab/kolabresource.cpp                |    2 ++
 resources/kolab/kolabretrievecollectionstask.cpp |    7 +++++++
 3 files changed, 11 insertions(+)

New commits:
commit c2e9605d302a376edc0e7d9cee49df7bb5362e61
Author: Sandro Knauß <mail at sandroknauss.de>
Date:   Wed Dec 3 19:27:09 2014 +0100

    Disable Alarms for Other Users calendars.
    
    Unfortunatelly till now it does not check if the Attribute is known -
    this would help, if the users wants alarms for a spesific calendar of an
    other person.
    
    KOLAB: #3731

diff --git a/resources/kolab/CMakeLists.txt b/resources/kolab/CMakeLists.txt
index 2a31647..2f1f316 100644
--- a/resources/kolab/CMakeLists.txt
+++ b/resources/kolab/CMakeLists.txt
@@ -44,6 +44,7 @@ target_link_libraries(kolabresource
     ${KDE4_KIO_LIBS}
     ${KDEPIMLIBS_KMIME_LIBS}
     ${KDEPIMLIBS_AKONADI_KMIME_LIBS}
+    ${KDEPIMLIBS_AKONADI_CALENDAR_LIBS}
     ${KDEPIMLIBS_KPIMIDENTITIES_LIBS}
     ${Libkolab_LIBRARIES}
     ${Libkolabxml_LIBRARIES}
@@ -81,6 +82,7 @@ target_link_libraries(akonadi_kolab_resource
     ${KDE4_KIO_LIBS}
     ${KDEPIMLIBS_KMIME_LIBS}
     ${KDEPIMLIBS_AKONADI_KMIME_LIBS}
+    ${KDEPIMLIBS_AKONADI_CALENDAR_LIBS}
     ${KDEPIMLIBS_KPIMIDENTITIES_LIBS}
     imapresource
     kolabresource
diff --git a/resources/kolab/kolabresource.cpp b/resources/kolab/kolabresource.cpp
index a5056dd..2066aab 100644
--- a/resources/kolab/kolabresource.cpp
+++ b/resources/kolab/kolabresource.cpp
@@ -25,6 +25,7 @@
 #include <retrieveitemstask.h>
 #include <collectionannotationsattribute.h>
 #include <changecollectiontask.h>
+#include <akonadi/calendar/blockalarmsattribute.h>
 
 #include <KWindowSystem>
 #include <KLocalizedString>
@@ -49,6 +50,7 @@ KolabResource::KolabResource(const QString& id)
     KGlobal::locale()->insertCatalog(QLatin1String("akonadi_imap_resource"));
     //Ensure we have up-to date metadata before attempting to sync folder
     setScheduleAttributeSyncBeforeItemSync(true);
+    setKeepLocalCollectionChanges(QSet<QByteArray>() << "ENTITYDISPLAY" << Akonadi::BlockAlarmsAttribute().type());
 }
 
 KolabResource::~KolabResource()
diff --git a/resources/kolab/kolabretrievecollectionstask.cpp b/resources/kolab/kolabretrievecollectionstask.cpp
index 5038c60..87956bc 100644
--- a/resources/kolab/kolabretrievecollectionstask.cpp
+++ b/resources/kolab/kolabretrievecollectionstask.cpp
@@ -35,6 +35,7 @@
 #include <akonadi/entitydisplayattribute.h>
 #include <akonadi/kmime/messageparts.h>
 #include <akonadi/collectionidentificationattribute.h>
+#include <akonadi/calendar/blockalarmsattribute.h>
 
 #include <kmime/kmime_message.h>
 
@@ -297,6 +298,12 @@ void KolabRetrieveCollectionsTask::setAttributes(Akonadi::Collection &c, const Q
     CollectionIdentificationAttribute *attr = c.attribute<CollectionIdentificationAttribute>(Akonadi::Collection::AddIfMissing);
     attr->setIdentifier(path.toLatin1());
 
+    // If the folder is a other users folder block all alarms from default
+    if (isNamespaceFolder(path, resourceState()->userNamespaces())) {
+        Akonadi::BlockAlarmsAttribute *attr = c.attribute<Akonadi::BlockAlarmsAttribute>(Akonadi::Collection::AddIfMissing);
+        attr->blockEverything(true);
+    }
+
     // If the folder is a other users top-level folder mark it accordingly
     if (pathParts.size() == 1 && isNamespaceFolder(path, resourceState()->userNamespaces())) {
         Akonadi::EntityDisplayAttribute *attr = c.attribute<Akonadi::EntityDisplayAttribute>(Akonadi::Collection::AddIfMissing);




More information about the commits mailing list