summaryrefslogtreecommitdiffstats
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/domain/actions/sinkactions.cpp15
-rw-r--r--framework/domain/folderlistmodel.cpp23
-rw-r--r--framework/domain/settings/accountsettings.cpp8
3 files changed, 23 insertions, 23 deletions
diff --git a/framework/domain/actions/sinkactions.cpp b/framework/domain/actions/sinkactions.cpp
index f8a4e9ff..47041a5b 100644
--- a/framework/domain/actions/sinkactions.cpp
+++ b/framework/domain/actions/sinkactions.cpp
@@ -28,6 +28,7 @@
28SINK_DEBUG_AREA("sinkactions") 28SINK_DEBUG_AREA("sinkactions")
29 29
30using namespace Kube; 30using namespace Kube;
31using namespace Sink;
31 32
32static ActionHandlerHelper markAsReadHandler("org.kde.kube.actions.mark-as-read", 33static ActionHandlerHelper markAsReadHandler("org.kde.kube.actions.mark-as-read",
33 [](Context *context) -> bool { 34 [](Context *context) -> bool {
@@ -102,11 +103,11 @@ static ActionHandlerHelper sendMailHandler("org.kde.kube.actions.sendmail",
102 auto message = context->property("message").value<KMime::Message::Ptr>(); 103 auto message = context->property("message").value<KMime::Message::Ptr>();
103 SinkLog() << "Sending a mail: "; 104 SinkLog() << "Sending a mail: ";
104 105
105 Sink::Query query; 106 Query query;
106 query += Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::transport); 107 query.containsFilter<ApplicationDomain::SinkResource::Capabilities>(ApplicationDomain::ResourceCapabilities::Mail::transport);
107 query += Sink::Query::AccountFilter(accountId); 108 query.filter(ApplicationDomain::SinkAccount(accountId));
108 Sink::Store::fetchAll<Sink::ApplicationDomain::SinkResource>(query) 109 Store::fetchAll<ApplicationDomain::SinkResource>(query)
109 .then<void, QList<Sink::ApplicationDomain::SinkResource::Ptr>>([=](const QList<Sink::ApplicationDomain::SinkResource::Ptr> &resources) -> KAsync::Job<void> { 110 .then<void, QList<ApplicationDomain::SinkResource::Ptr>>([=](const QList<ApplicationDomain::SinkResource::Ptr> &resources) -> KAsync::Job<void> {
110 if (!resources.isEmpty()) { 111 if (!resources.isEmpty()) {
111 auto resourceId = resources[0]->identifier(); 112 auto resourceId = resources[0]->identifier();
112 SinkTrace() << "Sending message via resource: " << resourceId; 113 SinkTrace() << "Sending message via resource: " << resourceId;
@@ -138,8 +139,8 @@ static ActionHandlerHelper saveAsDraft("org.kde.kube.actions.save-as-draft",
138 139
139 if (existingMail.identifier().isEmpty()) { 140 if (existingMail.identifier().isEmpty()) {
140 Sink::Query query; 141 Sink::Query query;
141 query += Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::drafts); 142 query.containsFilter<ApplicationDomain::SinkResource::Capabilities>(ApplicationDomain::ResourceCapabilities::Mail::drafts);
142 query += Sink::Query::AccountFilter(accountId); 143 query.filter(ApplicationDomain::SinkAccount(accountId));
143 return Sink::Store::fetchOne<Sink::ApplicationDomain::SinkResource>(query) 144 return Sink::Store::fetchOne<Sink::ApplicationDomain::SinkResource>(query)
144 .then<void, Sink::ApplicationDomain::SinkResource>([=](const Sink::ApplicationDomain::SinkResource &resource) -> KAsync::Job<void> { 145 .then<void, Sink::ApplicationDomain::SinkResource>([=](const Sink::ApplicationDomain::SinkResource &resource) -> KAsync::Job<void> {
145 Sink::ApplicationDomain::Mail mail(resource.identifier()); 146 Sink::ApplicationDomain::Mail mail(resource.identifier());
diff --git a/framework/domain/folderlistmodel.cpp b/framework/domain/folderlistmodel.cpp
index 000dd263..98453ce9 100644
--- a/framework/domain/folderlistmodel.cpp
+++ b/framework/domain/folderlistmodel.cpp
@@ -72,19 +72,18 @@ void FolderListModel::runQuery(const Sink::Query &query)
72 72
73void FolderListModel::setAccountId(const QVariant &accountId) 73void FolderListModel::setAccountId(const QVariant &accountId)
74{ 74{
75 using namespace Sink::ApplicationDomain;
75 const auto account = accountId.toString().toUtf8(); 76 const auto account = accountId.toString().toUtf8();
76 Sink::Store::fetchAll<Sink::ApplicationDomain::SinkResource>(Sink::Query::PropertyFilter("account", QVariant::fromValue(account))) 77
77 .syncThen<void, QList<Sink::ApplicationDomain::SinkResource::Ptr>>([this, account](const QList<Sink::ApplicationDomain::SinkResource::Ptr> &resources) { 78 //Get all folders of an account
78 Sink::Query query; 79 auto query = Sink::Query();
79 query.liveQuery = true; 80 query.filter(SinkAccount(account));
80 query.requestedProperties << "name" << "icon" << "parent"; 81 query.liveQuery = true;
81 query.parentProperty = "parent"; 82 query.request<Folder::Name>()
82 for (const auto &r : resources) { 83 .request<Folder::Icon>()
83 qDebug() << "Found resources for account: " << r->identifier() << account; 84 .request<Folder::Parent>();
84 query.resources << r->identifier(); 85 query.parentProperty = Folder::Parent::name;
85 } 86 runQuery(query);
86 runQuery(query);
87 }).exec();
88} 87}
89 88
90QVariant FolderListModel::accountId() const 89QVariant FolderListModel::accountId() const
diff --git a/framework/domain/settings/accountsettings.cpp b/framework/domain/settings/accountsettings.cpp
index 9a3be059..020fd503 100644
--- a/framework/domain/settings/accountsettings.cpp
+++ b/framework/domain/settings/accountsettings.cpp
@@ -155,7 +155,7 @@ void AccountSettings::loadAccount()
155 155
156void AccountSettings::loadImapResource() 156void AccountSettings::loadImapResource()
157{ 157{
158 Sink::Store::fetchOne<Sink::ApplicationDomain::SinkResource>(Sink::Query::AccountFilter(mAccountIdentifier) + Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::storage)) 158 Sink::Store::fetchOne<Sink::ApplicationDomain::SinkResource>(Sink::Query().filter(Sink::ApplicationDomain::SinkAccount(mAccountIdentifier)).containsFilter<Sink::ApplicationDomain::SinkResource::Capabilities>(Sink::ApplicationDomain::ResourceCapabilities::Mail::storage))
159 .syncThen<void, Sink::ApplicationDomain::SinkResource>([this](const Sink::ApplicationDomain::SinkResource &resource) { 159 .syncThen<void, Sink::ApplicationDomain::SinkResource>([this](const Sink::ApplicationDomain::SinkResource &resource) {
160 mImapIdentifier = resource.identifier(); 160 mImapIdentifier = resource.identifier();
161 mImapServer = resource.getProperty("server").toString(); 161 mImapServer = resource.getProperty("server").toString();
@@ -169,7 +169,7 @@ void AccountSettings::loadImapResource()
169 169
170void AccountSettings::loadMaildirResource() 170void AccountSettings::loadMaildirResource()
171{ 171{
172 Sink::Store::fetchOne<Sink::ApplicationDomain::SinkResource>(Sink::Query::AccountFilter(mAccountIdentifier) + Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::storage)) 172 Sink::Store::fetchOne<Sink::ApplicationDomain::SinkResource>(Sink::Query().filter(Sink::ApplicationDomain::SinkAccount(mAccountIdentifier)).containsFilter<Sink::ApplicationDomain::SinkResource::Capabilities>(Sink::ApplicationDomain::ResourceCapabilities::Mail::storage))
173 .syncThen<void, Sink::ApplicationDomain::SinkResource>([this](const Sink::ApplicationDomain::SinkResource &resource) { 173 .syncThen<void, Sink::ApplicationDomain::SinkResource>([this](const Sink::ApplicationDomain::SinkResource &resource) {
174 mMaildirIdentifier = resource.identifier(); 174 mMaildirIdentifier = resource.identifier();
175 auto path = resource.getProperty("path").toString(); 175 auto path = resource.getProperty("path").toString();
@@ -184,7 +184,7 @@ void AccountSettings::loadMaildirResource()
184 184
185void AccountSettings::loadMailtransportResource() 185void AccountSettings::loadMailtransportResource()
186{ 186{
187 Sink::Store::fetchOne<Sink::ApplicationDomain::SinkResource>(Sink::Query::AccountFilter(mAccountIdentifier) + Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::transport)) 187 Sink::Store::fetchOne<Sink::ApplicationDomain::SinkResource>(Sink::Query().filter(Sink::ApplicationDomain::SinkAccount(mAccountIdentifier)).containsFilter<Sink::ApplicationDomain::SinkResource::Capabilities>(Sink::ApplicationDomain::ResourceCapabilities::Mail::transport))
188 .syncThen<void, Sink::ApplicationDomain::SinkResource>([this](const Sink::ApplicationDomain::SinkResource &resource) { 188 .syncThen<void, Sink::ApplicationDomain::SinkResource>([this](const Sink::ApplicationDomain::SinkResource &resource) {
189 mMailtransportIdentifier = resource.identifier(); 189 mMailtransportIdentifier = resource.identifier();
190 mSmtpServer = resource.getProperty("server").toString(); 190 mSmtpServer = resource.getProperty("server").toString();
@@ -199,7 +199,7 @@ void AccountSettings::loadMailtransportResource()
199void AccountSettings::loadIdentity() 199void AccountSettings::loadIdentity()
200{ 200{
201 //FIXME this assumes that we only ever have one identity per account 201 //FIXME this assumes that we only ever have one identity per account
202 Sink::Store::fetchOne<Sink::ApplicationDomain::Identity>(Sink::Query::AccountFilter(mAccountIdentifier)) 202 Sink::Store::fetchOne<Sink::ApplicationDomain::Identity>(Sink::Query().filter(Sink::ApplicationDomain::SinkAccount(mAccountIdentifier)))
203 .syncThen<void, Sink::ApplicationDomain::Identity>([this](const Sink::ApplicationDomain::Identity &identity) { 203 .syncThen<void, Sink::ApplicationDomain::Identity>([this](const Sink::ApplicationDomain::Identity &identity) {
204 mIdentityIdentifier = identity.identifier(); 204 mIdentityIdentifier = identity.identifier();
205 mUsername = identity.getProperty("username").toString(); 205 mUsername = identity.getProperty("username").toString();