summaryrefslogtreecommitdiffstats
path: root/common/propertymapper.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-03-23 14:02:15 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-03-23 14:02:15 +0100
commite1430017eb60976610f4963cd770116a4a486c2e (patch)
tree56d7551e39c6d83ac25aa6ea49f9e11ffcdcc07f /common/propertymapper.cpp
parent86045e308c10c60cd7c4339d305cee1acb084760 (diff)
downloadsink-e1430017eb60976610f4963cd770116a4a486c2e.tar.gz
sink-e1430017eb60976610f4963cd770116a4a486c2e.zip
New properties
Diffstat (limited to 'common/propertymapper.cpp')
-rw-r--r--common/propertymapper.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/common/propertymapper.cpp b/common/propertymapper.cpp
index 4d45644..c72cf31 100644
--- a/common/propertymapper.cpp
+++ b/common/propertymapper.cpp
@@ -22,6 +22,7 @@
22#include "applicationdomaintype.h" 22#include "applicationdomaintype.h"
23#include <QDateTime> 23#include <QDateTime>
24#include "mail_generated.h" 24#include "mail_generated.h"
25#include "contact_generated.h"
25 26
26template <> 27template <>
27flatbuffers::uoffset_t variantToProperty<QString>(const QVariant &property, flatbuffers::FlatBufferBuilder &fbb) 28flatbuffers::uoffset_t variantToProperty<QString>(const QVariant &property, flatbuffers::FlatBufferBuilder &fbb)
@@ -110,6 +111,21 @@ flatbuffers::uoffset_t variantToProperty<QList<Sink::ApplicationDomain::Mail::Co
110 return 0; 111 return 0;
111} 112}
112 113
114template <>
115flatbuffers::uoffset_t variantToProperty<QList<Sink::ApplicationDomain::Contact::Email>>(const QVariant &property, flatbuffers::FlatBufferBuilder &fbb)
116{
117 if (property.isValid()) {
118 const auto list = property.value<QList<Sink::ApplicationDomain::Contact::Email>>();
119 std::vector<flatbuffers::Offset<Sink::ApplicationDomain::Buffer::ContactEmail>> vector;
120 for (const auto &value : list) {
121 auto offset = Sink::ApplicationDomain::Buffer::CreateContactEmailDirect(fbb, value.type, value.email.toUtf8().constData()).o;
122 vector.push_back(offset);
123 }
124 return fbb.CreateVector(vector).o;
125 }
126 return 0;
127}
128
113 129
114QString propertyToString(const flatbuffers::String *property) 130QString propertyToString(const flatbuffers::String *property)
115{ 131{
@@ -217,6 +233,20 @@ QVariant propertyToVariant<QList<Sink::ApplicationDomain::Mail::Contact>>(const
217} 233}
218 234
219template <> 235template <>
236QVariant propertyToVariant<QList<Sink::ApplicationDomain::Contact::Email>>(const flatbuffers::Vector<flatbuffers::Offset<Sink::ApplicationDomain::Buffer::ContactEmail>> *property)
237{
238 if (property) {
239 QList<Sink::ApplicationDomain::Contact::Email> list;
240 for (auto it = property->begin(); it != property->end();) {
241 list << Sink::ApplicationDomain::Contact::Email{static_cast<Sink::ApplicationDomain::Contact::Email::Type>(it->type()), propertyToString(it->email())};
242 it.operator++();
243 }
244 return QVariant::fromValue(list);
245 }
246 return QVariant();
247}
248
249template <>
220QVariant propertyToVariant<bool>(uint8_t property) 250QVariant propertyToVariant<bool>(uint8_t property)
221{ 251{
222 return static_cast<bool>(property); 252 return static_cast<bool>(property);