From d2305f14fced3afdbda2b5a8f2a270ae91d79ae1 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 4 Dec 2015 11:29:32 +0100 Subject: Added mail and folder properties --- common/domain/folder.cpp | 9 +++++++-- common/domain/folder.fbs | 1 + common/propertymapper.cpp | 20 +++++++++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) (limited to 'common') diff --git a/common/domain/folder.cpp b/common/domain/folder.cpp index 989d2c4..5558060 100644 --- a/common/domain/folder.cpp +++ b/common/domain/folder.cpp @@ -80,8 +80,9 @@ void TypeImplementation::removeIndex(const QByteArray &identifier, const QSharedPointer::Buffer> > TypeImplementation::initializeReadPropertyMapper() { auto propertyMapper = QSharedPointer >::create(); - propertyMapper->addMapping("parent", &Buffer::parent); + propertyMapper->addMapping("parent", &Buffer::parent); propertyMapper->addMapping("name", &Buffer::name); + propertyMapper->addMapping("icon", &Buffer::icon); return propertyMapper; } @@ -89,12 +90,16 @@ QSharedPointer::BufferBuilder> > { auto propertyMapper = QSharedPointer >::create(); propertyMapper->addMapping("parent", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function { - auto offset = variantToProperty(value, fbb); + auto offset = variantToProperty(value, fbb); return [offset](BufferBuilder &builder) { builder.add_parent(offset); }; }); propertyMapper->addMapping("name", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function { auto offset = variantToProperty(value, fbb); return [offset](BufferBuilder &builder) { builder.add_name(offset); }; }); + propertyMapper->addMapping("icon", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function { + auto offset = variantToProperty(value, fbb); + return [offset](BufferBuilder &builder) { builder.add_icon(offset); }; + }); return propertyMapper; } diff --git a/common/domain/folder.fbs b/common/domain/folder.fbs index 3476d58..31dc32a 100644 --- a/common/domain/folder.fbs +++ b/common/domain/folder.fbs @@ -3,6 +3,7 @@ namespace Akonadi2.ApplicationDomain.Buffer; table Folder { name:string; parent:string; + icon:string; } root_type Folder; diff --git a/common/propertymapper.cpp b/common/propertymapper.cpp index 7ff072a..60f7dd5 100644 --- a/common/propertymapper.cpp +++ b/common/propertymapper.cpp @@ -28,6 +28,15 @@ flatbuffers::uoffset_t variantToProperty(const QVariant &property, flat return 0; } +template <> +flatbuffers::uoffset_t variantToProperty(const QVariant &property, flatbuffers::FlatBufferBuilder &fbb) +{ + if (property.isValid()) { + return fbb.CreateString(property.toByteArray().toStdString()).o; + } + return 0; +} + template <> QVariant propertyToVariant(const flatbuffers::String *property) { @@ -38,9 +47,18 @@ QVariant propertyToVariant(const flatbuffers::String *property) return QVariant(); } +template <> +QVariant propertyToVariant(const flatbuffers::String *property) +{ + if (property) { + //We have to copy the memory, otherwise it would become eventually invalid + return QString::fromStdString(property->c_str()).toUtf8(); + } + return QVariant(); +} + template <> QVariant propertyToVariant(uint8_t property) { return static_cast(property); } - -- cgit v1.2.3