From c08c329580a6f5e5da1ebba931461e7e7e47ba72 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 1 Mar 2017 01:03:18 +0100 Subject: Filter resources by the types they support. This avoid uselessly querying resources only to discover that they don't have a facade for the type. --- examples/dummyresource/resourcefactory.cpp | 8 +++++++- examples/imapresource/imapresource.cpp | 4 +++- examples/maildirresource/maildirresource.cpp | 4 +++- examples/mailtransportresource/mailtransportresource.cpp | 6 +++++- 4 files changed, 18 insertions(+), 4 deletions(-) (limited to 'examples') diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp index 0663bdb..a7d30c5 100644 --- a/examples/dummyresource/resourcefactory.cpp +++ b/examples/dummyresource/resourcefactory.cpp @@ -176,7 +176,13 @@ DummyResource::~DummyResource() } DummyResourceFactory::DummyResourceFactory(QObject *parent) - : Sink::ResourceFactory(parent, QByteArrayList() << Sink::ApplicationDomain::ResourceCapabilities::Mail::storage << "-folder.rename" << Sink::ApplicationDomain::ResourceCapabilities::Mail::sent) + : Sink::ResourceFactory(parent, {Sink::ApplicationDomain::ResourceCapabilities::Mail::mail, + "event", + Sink::ApplicationDomain::ResourceCapabilities::Mail::folder, + Sink::ApplicationDomain::ResourceCapabilities::Mail::storage, + "-folder.rename", + Sink::ApplicationDomain::ResourceCapabilities::Mail::sent} + ) { } diff --git a/examples/imapresource/imapresource.cpp b/examples/imapresource/imapresource.cpp index 5bf0c30..09f57d5 100644 --- a/examples/imapresource/imapresource.cpp +++ b/examples/imapresource/imapresource.cpp @@ -879,7 +879,9 @@ ImapResource::ImapResource(const ResourceContext &resourceContext) ImapResourceFactory::ImapResourceFactory(QObject *parent) : Sink::ResourceFactory(parent, - {Sink::ApplicationDomain::ResourceCapabilities::Mail::storage, + {Sink::ApplicationDomain::ResourceCapabilities::Mail::mail, + Sink::ApplicationDomain::ResourceCapabilities::Mail::folder, + Sink::ApplicationDomain::ResourceCapabilities::Mail::storage, Sink::ApplicationDomain::ResourceCapabilities::Mail::drafts, Sink::ApplicationDomain::ResourceCapabilities::Mail::folderhierarchy, Sink::ApplicationDomain::ResourceCapabilities::Mail::trash, diff --git a/examples/maildirresource/maildirresource.cpp b/examples/maildirresource/maildirresource.cpp index 3d299b4..813d84f 100644 --- a/examples/maildirresource/maildirresource.cpp +++ b/examples/maildirresource/maildirresource.cpp @@ -572,7 +572,9 @@ MaildirResource::MaildirResource(const Sink::ResourceContext &resourceContext) MaildirResourceFactory::MaildirResourceFactory(QObject *parent) : Sink::ResourceFactory(parent, - {Sink::ApplicationDomain::ResourceCapabilities::Mail::storage, + {Sink::ApplicationDomain::ResourceCapabilities::Mail::mail, + Sink::ApplicationDomain::ResourceCapabilities::Mail::folder, + Sink::ApplicationDomain::ResourceCapabilities::Mail::storage, Sink::ApplicationDomain::ResourceCapabilities::Mail::drafts, "-folder.rename", Sink::ApplicationDomain::ResourceCapabilities::Mail::trash, diff --git a/examples/mailtransportresource/mailtransportresource.cpp b/examples/mailtransportresource/mailtransportresource.cpp index 0118140..88a90c6 100644 --- a/examples/mailtransportresource/mailtransportresource.cpp +++ b/examples/mailtransportresource/mailtransportresource.cpp @@ -91,6 +91,9 @@ public: modifiedMail.setSent(true); auto resource = Store::readOne(Query{}.filter(mResourceInstanceIdentifier).request()); + if (resource.identifier().isEmpty()) { + SinkWarning() << "Failed to retrieve target resource: " << mResourceInstanceIdentifier; + } //Then copy the mail to the target resource Query query; query.containsFilter(ApplicationDomain::ResourceCapabilities::Mail::sent); @@ -193,7 +196,8 @@ MailtransportResource::MailtransportResource(const Sink::ResourceContext &resour } MailtransportResourceFactory::MailtransportResourceFactory(QObject *parent) - : Sink::ResourceFactory(parent, {Sink::ApplicationDomain::ResourceCapabilities::Mail::transport}) + : Sink::ResourceFactory(parent, {Sink::ApplicationDomain::ResourceCapabilities::Mail::mail, + Sink::ApplicationDomain::ResourceCapabilities::Mail::transport}) { } -- cgit v1.2.3