diff options
Diffstat (limited to 'common/propertymapper.cpp')
-rw-r--r-- | common/propertymapper.cpp | 30 |
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 | ||
26 | template <> | 27 | template <> |
27 | flatbuffers::uoffset_t variantToProperty<QString>(const QVariant &property, flatbuffers::FlatBufferBuilder &fbb) | 28 | flatbuffers::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 | ||
114 | template <> | ||
115 | flatbuffers::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 | ||
114 | QString propertyToString(const flatbuffers::String *property) | 130 | QString propertyToString(const flatbuffers::String *property) |
115 | { | 131 | { |
@@ -217,6 +233,20 @@ QVariant propertyToVariant<QList<Sink::ApplicationDomain::Mail::Contact>>(const | |||
217 | } | 233 | } |
218 | 234 | ||
219 | template <> | 235 | template <> |
236 | QVariant 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 | |||
249 | template <> | ||
220 | QVariant propertyToVariant<bool>(uint8_t property) | 250 | QVariant propertyToVariant<bool>(uint8_t property) |
221 | { | 251 | { |
222 | return static_cast<bool>(property); | 252 | return static_cast<bool>(property); |