summaryrefslogtreecommitdiffstats
path: root/examples/caldavresource/caldavresource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/caldavresource/caldavresource.cpp')
-rw-r--r--examples/caldavresource/caldavresource.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/examples/caldavresource/caldavresource.cpp b/examples/caldavresource/caldavresource.cpp
index d9f8c69..cdd224f 100644
--- a/examples/caldavresource/caldavresource.cpp
+++ b/examples/caldavresource/caldavresource.cpp
@@ -25,12 +25,14 @@
25#include "applicationdomaintype.h" 25#include "applicationdomaintype.h"
26#include "domainadaptor.h" 26#include "domainadaptor.h"
27#include "eventpreprocessor.h" 27#include "eventpreprocessor.h"
28#include "todopreprocessor.h"
28#include "facade.h" 29#include "facade.h"
29#include "facadefactory.h" 30#include "facadefactory.h"
30 31
31#include <KCalCore/ICalFormat> 32#include <KCalCore/ICalFormat>
32 33
33#define ENTITY_TYPE_EVENT "event" 34#define ENTITY_TYPE_EVENT "event"
35#define ENTITY_TYPE_TODO "todo"
34#define ENTITY_TYPE_CALENDAR "calendar" 36#define ENTITY_TYPE_CALENDAR "calendar"
35 37
36using Sink::ApplicationDomain::getTypeName; 38using Sink::ApplicationDomain::getTypeName;
@@ -38,12 +40,14 @@ using Sink::ApplicationDomain::getTypeName;
38class EventSynchronizer : public WebDavSynchronizer 40class EventSynchronizer : public WebDavSynchronizer
39{ 41{
40 using Event = Sink::ApplicationDomain::Event; 42 using Event = Sink::ApplicationDomain::Event;
43 using Todo = Sink::ApplicationDomain::Todo;
41 using Calendar = Sink::ApplicationDomain::Calendar; 44 using Calendar = Sink::ApplicationDomain::Calendar;
42 45
43public: 46public:
44 explicit EventSynchronizer(const Sink::ResourceContext &context) 47 explicit EventSynchronizer(const Sink::ResourceContext &context)
45 : WebDavSynchronizer(context, KDAV2::CalDav, getTypeName<Calendar>(), getTypeName<Event>()) 48 : WebDavSynchronizer(context, KDAV2::CalDav, getTypeName<Calendar>(), getTypeName<Event>())
46 {} 49 {
50 }
47 51
48protected: 52protected:
49 void updateLocalCollections(KDAV2::DavCollection::List calendarList) Q_DECL_OVERRIDE 53 void updateLocalCollections(KDAV2::DavCollection::List calendarList) Q_DECL_OVERRIDE
@@ -183,16 +187,20 @@ CalDavResource::CalDavResource(const Sink::ResourceContext &context)
183 auto synchronizer = QSharedPointer<EventSynchronizer>::create(context); 187 auto synchronizer = QSharedPointer<EventSynchronizer>::create(context);
184 setupSynchronizer(synchronizer); 188 setupSynchronizer(synchronizer);
185 189
186 setupPreprocessors(ENTITY_TYPE_EVENT, QVector<Sink::Preprocessor*>() << new EventPropertyExtractor); 190 setupPreprocessors(ENTITY_TYPE_EVENT, QVector<Sink::Preprocessor *>() << new EventPropertyExtractor);
191 setupPreprocessors(ENTITY_TYPE_TODO, QVector<Sink::Preprocessor *>() << new TodoPropertyExtractor);
187} 192}
188 193
189CalDavResourceFactory::CalDavResourceFactory(QObject *parent) 194CalDavResourceFactory::CalDavResourceFactory(QObject *parent)
190 : Sink::ResourceFactory(parent, { 195 : Sink::ResourceFactory(parent, {
191 Sink::ApplicationDomain::ResourceCapabilities::Event::event,
192 Sink::ApplicationDomain::ResourceCapabilities::Event::calendar, 196 Sink::ApplicationDomain::ResourceCapabilities::Event::calendar,
197 Sink::ApplicationDomain::ResourceCapabilities::Event::event,
193 Sink::ApplicationDomain::ResourceCapabilities::Event::storage, 198 Sink::ApplicationDomain::ResourceCapabilities::Event::storage,
199 Sink::ApplicationDomain::ResourceCapabilities::Todo::todo,
200 Sink::ApplicationDomain::ResourceCapabilities::Todo::storage,
194 }) 201 })
195{} 202{
203}
196 204
197Sink::Resource *CalDavResourceFactory::createResource(const Sink::ResourceContext &context) 205Sink::Resource *CalDavResourceFactory::createResource(const Sink::ResourceContext &context)
198{ 206{
@@ -201,10 +209,12 @@ Sink::Resource *CalDavResourceFactory::createResource(const Sink::ResourceContex
201 209
202using Sink::ApplicationDomain::Calendar; 210using Sink::ApplicationDomain::Calendar;
203using Sink::ApplicationDomain::Event; 211using Sink::ApplicationDomain::Event;
212using Sink::ApplicationDomain::Todo;
204 213
205void CalDavResourceFactory::registerFacades(const QByteArray &resourceName, Sink::FacadeFactory &factory) 214void CalDavResourceFactory::registerFacades(const QByteArray &resourceName, Sink::FacadeFactory &factory)
206{ 215{
207 factory.registerFacade<Event, Sink::DefaultFacade<Event>>(resourceName); 216 factory.registerFacade<Event, Sink::DefaultFacade<Event>>(resourceName);
217 factory.registerFacade<Todo, Sink::DefaultFacade<Todo>>(resourceName);
208 factory.registerFacade<Calendar, Sink::DefaultFacade<Calendar>>(resourceName); 218 factory.registerFacade<Calendar, Sink::DefaultFacade<Calendar>>(resourceName);
209} 219}
210 220
@@ -213,6 +223,7 @@ void CalDavResourceFactory::registerAdaptorFactories(
213 const QByteArray &resourceName, Sink::AdaptorFactoryRegistry &registry) 223 const QByteArray &resourceName, Sink::AdaptorFactoryRegistry &registry)
214{ 224{
215 registry.registerFactory<Event, DefaultAdaptorFactory<Event>>(resourceName); 225 registry.registerFactory<Event, DefaultAdaptorFactory<Event>>(resourceName);
226 registry.registerFactory<Todo, DefaultAdaptorFactory<Todo>>(resourceName);
216 registry.registerFactory<Calendar, DefaultAdaptorFactory<Calendar>>(resourceName); 227 registry.registerFactory<Calendar, DefaultAdaptorFactory<Calendar>>(resourceName);
217} 228}
218 229