summaryrefslogtreecommitdiffstats
path: root/framework/domain/composercontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/domain/composercontroller.cpp')
-rw-r--r--framework/domain/composercontroller.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/framework/domain/composercontroller.cpp b/framework/domain/composercontroller.cpp
index 207c5047..3328d9eb 100644
--- a/framework/domain/composercontroller.cpp
+++ b/framework/domain/composercontroller.cpp
@@ -132,9 +132,12 @@ void ComposerController::setMessage(const KMime::Message::Ptr &msg)
132 132
133void ComposerController::loadMessage(const QVariant &message, bool loadAsDraft) 133void ComposerController::loadMessage(const QVariant &message, bool loadAsDraft)
134{ 134{
135 Sink::Query query(*message.value<Sink::ApplicationDomain::Mail::Ptr>()); 135 using namespace Sink;
136 query.request<Sink::ApplicationDomain::Mail::MimeMessage>(); 136 using namespace Sink::ApplicationDomain;
137 Sink::Store::fetchOne<Sink::ApplicationDomain::Mail>(query).then([this, loadAsDraft](const Sink::ApplicationDomain::Mail &mail) { 137
138 Query query(*message.value<Mail::Ptr>());
139 query.request<Mail::MimeMessage>();
140 Store::fetchOne<Mail>(query).then([this, loadAsDraft](const Mail &mail) {
138 setExistingMail(mail); 141 setExistingMail(mail);
139 142
140 //TODO this should probably happen as reaction to the property being set. 143 //TODO this should probably happen as reaction to the property being set.
@@ -227,10 +230,10 @@ void ComposerController::send()
227 230
228 Q_ASSERT(!accountId.isEmpty()); 231 Q_ASSERT(!accountId.isEmpty());
229 Query query; 232 Query query;
230 query.containsFilter<ApplicationDomain::SinkResource::Capabilities>(ApplicationDomain::ResourceCapabilities::Mail::transport); 233 query.containsFilter<SinkResource::Capabilities>(ResourceCapabilities::Mail::transport);
231 query.filter<SinkResource::Account>(accountId); 234 query.filter<SinkResource::Account>(accountId);
232 auto job = Store::fetchAll<ApplicationDomain::SinkResource>(query) 235 auto job = Store::fetchAll<SinkResource>(query)
233 .then([=](const QList<ApplicationDomain::SinkResource::Ptr> &resources) { 236 .then([=](const QList<SinkResource::Ptr> &resources) {
234 if (!resources.isEmpty()) { 237 if (!resources.isEmpty()) {
235 auto resourceId = resources[0]->identifier(); 238 auto resourceId = resources[0]->identifier();
236 SinkLog() << "Sending message via resource: " << resourceId; 239 SinkLog() << "Sending message via resource: " << resourceId;
@@ -278,7 +281,7 @@ void ComposerController::saveAsDraft()
278 if (existingMail.identifier().isEmpty()) { 281 if (existingMail.identifier().isEmpty()) {
279 SinkLog() << "Creating a new draft" << existingMail.identifier(); 282 SinkLog() << "Creating a new draft" << existingMail.identifier();
280 Query query; 283 Query query;
281 query.containsFilter<SinkResource::Capabilities>(ApplicationDomain::ResourceCapabilities::Mail::drafts); 284 query.containsFilter<SinkResource::Capabilities>(ResourceCapabilities::Mail::drafts);
282 query.filter<SinkResource::Account>(accountId); 285 query.filter<SinkResource::Account>(accountId);
283 return Store::fetchOne<SinkResource>(query) 286 return Store::fetchOne<SinkResource>(query)
284 .then([=](const SinkResource &resource) { 287 .then([=](const SinkResource &resource) {