diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/domain/folder.cpp | 9 | ||||
-rw-r--r-- | common/domain/folder.fbs | 1 | ||||
-rw-r--r-- | common/propertymapper.cpp | 20 |
3 files changed, 27 insertions, 3 deletions
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<Folder>::removeIndex(const QByteArray &identifier, const | |||
80 | QSharedPointer<ReadPropertyMapper<TypeImplementation<Folder>::Buffer> > TypeImplementation<Folder>::initializeReadPropertyMapper() | 80 | QSharedPointer<ReadPropertyMapper<TypeImplementation<Folder>::Buffer> > TypeImplementation<Folder>::initializeReadPropertyMapper() |
81 | { | 81 | { |
82 | auto propertyMapper = QSharedPointer<ReadPropertyMapper<Buffer> >::create(); | 82 | auto propertyMapper = QSharedPointer<ReadPropertyMapper<Buffer> >::create(); |
83 | propertyMapper->addMapping<QString, Buffer>("parent", &Buffer::parent); | 83 | propertyMapper->addMapping<QByteArray, Buffer>("parent", &Buffer::parent); |
84 | propertyMapper->addMapping<QString, Buffer>("name", &Buffer::name); | 84 | propertyMapper->addMapping<QString, Buffer>("name", &Buffer::name); |
85 | propertyMapper->addMapping<QByteArray, Buffer>("icon", &Buffer::icon); | ||
85 | return propertyMapper; | 86 | return propertyMapper; |
86 | } | 87 | } |
87 | 88 | ||
@@ -89,12 +90,16 @@ QSharedPointer<WritePropertyMapper<TypeImplementation<Folder>::BufferBuilder> > | |||
89 | { | 90 | { |
90 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); | 91 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); |
91 | propertyMapper->addMapping("parent", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | 92 | propertyMapper->addMapping("parent", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { |
92 | auto offset = variantToProperty<QString>(value, fbb); | 93 | auto offset = variantToProperty<QByteArray>(value, fbb); |
93 | return [offset](BufferBuilder &builder) { builder.add_parent(offset); }; | 94 | return [offset](BufferBuilder &builder) { builder.add_parent(offset); }; |
94 | }); | 95 | }); |
95 | propertyMapper->addMapping("name", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | 96 | propertyMapper->addMapping("name", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { |
96 | auto offset = variantToProperty<QString>(value, fbb); | 97 | auto offset = variantToProperty<QString>(value, fbb); |
97 | return [offset](BufferBuilder &builder) { builder.add_name(offset); }; | 98 | return [offset](BufferBuilder &builder) { builder.add_name(offset); }; |
98 | }); | 99 | }); |
100 | propertyMapper->addMapping("icon", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | ||
101 | auto offset = variantToProperty<QByteArray>(value, fbb); | ||
102 | return [offset](BufferBuilder &builder) { builder.add_icon(offset); }; | ||
103 | }); | ||
99 | return propertyMapper; | 104 | return propertyMapper; |
100 | } | 105 | } |
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; | |||
3 | table Folder { | 3 | table Folder { |
4 | name:string; | 4 | name:string; |
5 | parent:string; | 5 | parent:string; |
6 | icon:string; | ||
6 | } | 7 | } |
7 | 8 | ||
8 | root_type Folder; | 9 | 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 | |||
@@ -29,6 +29,15 @@ flatbuffers::uoffset_t variantToProperty<QString>(const QVariant &property, flat | |||
29 | } | 29 | } |
30 | 30 | ||
31 | template <> | 31 | template <> |
32 | flatbuffers::uoffset_t variantToProperty<QByteArray>(const QVariant &property, flatbuffers::FlatBufferBuilder &fbb) | ||
33 | { | ||
34 | if (property.isValid()) { | ||
35 | return fbb.CreateString(property.toByteArray().toStdString()).o; | ||
36 | } | ||
37 | return 0; | ||
38 | } | ||
39 | |||
40 | template <> | ||
32 | QVariant propertyToVariant<QString>(const flatbuffers::String *property) | 41 | QVariant propertyToVariant<QString>(const flatbuffers::String *property) |
33 | { | 42 | { |
34 | if (property) { | 43 | if (property) { |
@@ -39,8 +48,17 @@ QVariant propertyToVariant<QString>(const flatbuffers::String *property) | |||
39 | } | 48 | } |
40 | 49 | ||
41 | template <> | 50 | template <> |
51 | QVariant propertyToVariant<QByteArray>(const flatbuffers::String *property) | ||
52 | { | ||
53 | if (property) { | ||
54 | //We have to copy the memory, otherwise it would become eventually invalid | ||
55 | return QString::fromStdString(property->c_str()).toUtf8(); | ||
56 | } | ||
57 | return QVariant(); | ||
58 | } | ||
59 | |||
60 | template <> | ||
42 | QVariant propertyToVariant<bool>(uint8_t property) | 61 | QVariant propertyToVariant<bool>(uint8_t property) |
43 | { | 62 | { |
44 | return static_cast<bool>(property); | 63 | return static_cast<bool>(property); |
45 | } | 64 | } |
46 | |||