From 8d5684292ef92f32487ba32df716a00c4a0841b5 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 19 Nov 2015 17:37:39 +0100 Subject: Loading data with the new model for the test client --- examples/client/main.cpp | 7 ++++--- examples/dummyresource/dummystore.h | 2 +- examples/dummyresource/resourcefactory.cpp | 24 ++++++++++++++++++++++++ examples/dummyresource/resourcefactory.h | 1 + 4 files changed, 30 insertions(+), 4 deletions(-) (limited to 'examples') diff --git a/examples/client/main.cpp b/examples/client/main.cpp index 75fcf18..794fc58 100644 --- a/examples/client/main.cpp +++ b/examples/client/main.cpp @@ -25,6 +25,7 @@ #include "common/resource.h" #include "common/storage.h" #include "common/domain/event.h" +#include "common/domain/folder.h" #include "common/resourceconfig.h" #include "console.h" @@ -124,10 +125,10 @@ int main(int argc, char *argv[]) query.syncOnDemand = false; query.processAll = false; query.liveQuery = true; - query.requestedProperties << "summary" << "uid"; + query.requestedProperties << "name"; - auto model = Akonadi2::Store::loadModel(query); - auto view = QSharedPointer >::create(model.data()); + auto model = Akonadi2::Store::loadModel(query); + auto view = QSharedPointer >::create(model.data()); return app.exec(); } diff --git a/examples/dummyresource/dummystore.h b/examples/dummyresource/dummystore.h index 4ecd5ea..c730118 100644 --- a/examples/dummyresource/dummystore.h +++ b/examples/dummyresource/dummystore.h @@ -23,7 +23,6 @@ class DummyStore { public: - //TODO proper singleton static DummyStore &instance() { static DummyStore instance; @@ -32,4 +31,5 @@ public: QMap > events() const; QMap > mails() const; + QMap > folders() const; }; diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp index bed1d71..2a5a3e8 100644 --- a/examples/dummyresource/resourcefactory.cpp +++ b/examples/dummyresource/resourcefactory.cpp @@ -163,6 +163,27 @@ void DummyResource::createMail(const QByteArray &ridBuffer, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb) +{ + //Map the source format to the buffer format (which happens to be an exact copy here) + auto name = m_fbb.CreateString(data.value("name").toString().toStdString()); + flatbuffers::Offset parent; + bool hasParent = false; + if (!data.value("parent").toString().isEmpty()) { + hasParent = true; + parent = m_fbb.CreateString(data.value("parent").toString().toStdString()); + } + + auto builder = Akonadi2::ApplicationDomain::Buffer::FolderBuilder(m_fbb); + builder.add_name(name); + if (hasParent) { + builder.add_parent(parent); + } + auto buffer = builder.Finish(); + Akonadi2::ApplicationDomain::Buffer::FinishFolderBuffer(m_fbb, buffer); + Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize()); +} + void DummyResource::synchronize(const QString &bufferType, const QMap > &data, Akonadi2::Storage::Transaction &transaction, std::function &data, flatbuffers::FlatBufferBuilder &entityFbb)> createEntity) { Index uidIndex("index.uid", transaction); @@ -209,6 +230,9 @@ KAsync::Job DummyResource::synchronizeWithSource() synchronize(ENTITY_TYPE_MAIL, DummyStore::instance().mails(), transaction, [this](const QByteArray &ridBuffer, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb) { createMail(ridBuffer, data, entityFbb); }); + synchronize(ENTITY_TYPE_FOLDER, DummyStore::instance().folders(), transaction, [this](const QByteArray &ridBuffer, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb) { + createFolder(ridBuffer, data, entityFbb); + }); f.setFinished(); }); diff --git a/examples/dummyresource/resourcefactory.h b/examples/dummyresource/resourcefactory.h index 196d29a..67681ae 100644 --- a/examples/dummyresource/resourcefactory.h +++ b/examples/dummyresource/resourcefactory.h @@ -38,6 +38,7 @@ public: private: void createEvent(const QByteArray &rid, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb); void createMail(const QByteArray &rid, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb); + void createFolder(const QByteArray &rid, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb); void synchronize(const QString &bufferType, const QMap > &data, Akonadi2::Storage::Transaction &transaction, std::function &data, flatbuffers::FlatBufferBuilder &entityFbb)> createEntity); }; -- cgit v1.2.3