diff options
Diffstat (limited to 'common/clientapi.h')
-rw-r--r-- | common/clientapi.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/common/clientapi.h b/common/clientapi.h index 6237cfb..c4125bd 100644 --- a/common/clientapi.h +++ b/common/clientapi.h | |||
@@ -62,14 +62,19 @@ public: | |||
62 | return Akonadi2::resourceName(instanceIdentifier); | 62 | return Akonadi2::resourceName(instanceIdentifier); |
63 | } | 63 | } |
64 | 64 | ||
65 | static QList<QByteArray> getResources(const QList<QByteArray> &resourceFilter) | 65 | static QList<QByteArray> getResources(const QList<QByteArray> &resourceFilter, const QByteArray &type) |
66 | { | 66 | { |
67 | //Return the global resource (signified by an empty name) for types that don't eblong to a specific resource | ||
68 | if (type == "akonadiresource") { | ||
69 | return QList<QByteArray>() << ""; | ||
70 | } | ||
67 | QList<QByteArray> resources; | 71 | QList<QByteArray> resources; |
68 | const auto configuredResources = ResourceConfig::getResources(); | 72 | const auto configuredResources = ResourceConfig::getResources(); |
69 | if (resourceFilter.isEmpty()) { | 73 | if (resourceFilter.isEmpty()) { |
70 | for (const auto &res : configuredResources) { | 74 | for (const auto &res : configuredResources) { |
71 | //TODO filter by type | 75 | if (configuredResources.value(res) == type) { |
72 | resources << res; | 76 | resources << res; |
77 | } | ||
73 | } | 78 | } |
74 | } else { | 79 | } else { |
75 | for (const auto &res : resourceFilter) { | 80 | for (const auto &res : resourceFilter) { |
@@ -100,7 +105,7 @@ public: | |||
100 | eventLoop.quit(); | 105 | eventLoop.quit(); |
101 | }); | 106 | }); |
102 | // Query all resources and aggregate results | 107 | // Query all resources and aggregate results |
103 | KAsync::iterate(getResources(query.resources)) | 108 | KAsync::iterate(getResources(query.resources, ApplicationDomain::getTypeName<DomainType>())) |
104 | .template each<void, QByteArray>([query, resultSet](const QByteArray &resource, KAsync::Future<void> &future) { | 109 | .template each<void, QByteArray>([query, resultSet](const QByteArray &resource, KAsync::Future<void> &future) { |
105 | auto facade = FacadeFactory::instance().getFacade<DomainType>(resourceName(resource), resource); | 110 | auto facade = FacadeFactory::instance().getFacade<DomainType>(resourceName(resource), resource); |
106 | if (facade) { | 111 | if (facade) { |