From dd060cc5e3b336a77f8e5e76df4bc76a58e22cd4 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 4 Oct 2016 12:10:06 +0200 Subject: Adapted to new query api --- framework/domain/actions/sinkactions.cpp | 15 ++++++++------- framework/domain/folderlistmodel.cpp | 23 +++++++++++------------ framework/domain/settings/accountsettings.cpp | 8 ++++---- 3 files changed, 23 insertions(+), 23 deletions(-) (limited to 'framework') 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 @@ SINK_DEBUG_AREA("sinkactions") using namespace Kube; +using namespace Sink; static ActionHandlerHelper markAsReadHandler("org.kde.kube.actions.mark-as-read", [](Context *context) -> bool { @@ -102,11 +103,11 @@ static ActionHandlerHelper sendMailHandler("org.kde.kube.actions.sendmail", auto message = context->property("message").value(); SinkLog() << "Sending a mail: "; - Sink::Query query; - query += Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::transport); - query += Sink::Query::AccountFilter(accountId); - Sink::Store::fetchAll(query) - .then>([=](const QList &resources) -> KAsync::Job { + Query query; + query.containsFilter(ApplicationDomain::ResourceCapabilities::Mail::transport); + query.filter(ApplicationDomain::SinkAccount(accountId)); + Store::fetchAll(query) + .then>([=](const QList &resources) -> KAsync::Job { if (!resources.isEmpty()) { auto resourceId = resources[0]->identifier(); SinkTrace() << "Sending message via resource: " << resourceId; @@ -138,8 +139,8 @@ static ActionHandlerHelper saveAsDraft("org.kde.kube.actions.save-as-draft", if (existingMail.identifier().isEmpty()) { Sink::Query query; - query += Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::drafts); - query += Sink::Query::AccountFilter(accountId); + query.containsFilter(ApplicationDomain::ResourceCapabilities::Mail::drafts); + query.filter(ApplicationDomain::SinkAccount(accountId)); return Sink::Store::fetchOne(query) .then([=](const Sink::ApplicationDomain::SinkResource &resource) -> KAsync::Job { 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) void FolderListModel::setAccountId(const QVariant &accountId) { + using namespace Sink::ApplicationDomain; const auto account = accountId.toString().toUtf8(); - Sink::Store::fetchAll(Sink::Query::PropertyFilter("account", QVariant::fromValue(account))) - .syncThen>([this, account](const QList &resources) { - Sink::Query query; - query.liveQuery = true; - query.requestedProperties << "name" << "icon" << "parent"; - query.parentProperty = "parent"; - for (const auto &r : resources) { - qDebug() << "Found resources for account: " << r->identifier() << account; - query.resources << r->identifier(); - } - runQuery(query); - }).exec(); + + //Get all folders of an account + auto query = Sink::Query(); + query.filter(SinkAccount(account)); + query.liveQuery = true; + query.request() + .request() + .request(); + query.parentProperty = Folder::Parent::name; + runQuery(query); } QVariant 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() void AccountSettings::loadImapResource() { - Sink::Store::fetchOne(Sink::Query::AccountFilter(mAccountIdentifier) + Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::storage)) + Sink::Store::fetchOne(Sink::Query().filter(Sink::ApplicationDomain::SinkAccount(mAccountIdentifier)).containsFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::storage)) .syncThen([this](const Sink::ApplicationDomain::SinkResource &resource) { mImapIdentifier = resource.identifier(); mImapServer = resource.getProperty("server").toString(); @@ -169,7 +169,7 @@ void AccountSettings::loadImapResource() void AccountSettings::loadMaildirResource() { - Sink::Store::fetchOne(Sink::Query::AccountFilter(mAccountIdentifier) + Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::storage)) + Sink::Store::fetchOne(Sink::Query().filter(Sink::ApplicationDomain::SinkAccount(mAccountIdentifier)).containsFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::storage)) .syncThen([this](const Sink::ApplicationDomain::SinkResource &resource) { mMaildirIdentifier = resource.identifier(); auto path = resource.getProperty("path").toString(); @@ -184,7 +184,7 @@ void AccountSettings::loadMaildirResource() void AccountSettings::loadMailtransportResource() { - Sink::Store::fetchOne(Sink::Query::AccountFilter(mAccountIdentifier) + Sink::Query::CapabilityFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::transport)) + Sink::Store::fetchOne(Sink::Query().filter(Sink::ApplicationDomain::SinkAccount(mAccountIdentifier)).containsFilter(Sink::ApplicationDomain::ResourceCapabilities::Mail::transport)) .syncThen([this](const Sink::ApplicationDomain::SinkResource &resource) { mMailtransportIdentifier = resource.identifier(); mSmtpServer = resource.getProperty("server").toString(); @@ -199,7 +199,7 @@ void AccountSettings::loadMailtransportResource() void AccountSettings::loadIdentity() { //FIXME this assumes that we only ever have one identity per account - Sink::Store::fetchOne(Sink::Query::AccountFilter(mAccountIdentifier)) + Sink::Store::fetchOne(Sink::Query().filter(Sink::ApplicationDomain::SinkAccount(mAccountIdentifier))) .syncThen([this](const Sink::ApplicationDomain::Identity &identity) { mIdentityIdentifier = identity.identifier(); mUsername = identity.getProperty("username").toString(); -- cgit v1.2.3