From c1e254e894144d08ad2dc560f9c1e3c719eea1f1 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 9 Sep 2015 00:36:25 +0200 Subject: Conciser PropertyMapper::addMapping notation --- common/domain/event.cpp | 8 ++------ common/domain/mail.cpp | 32 ++++++++------------------------ common/propertymapper.h | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 30 deletions(-) (limited to 'common') diff --git a/common/domain/event.cpp b/common/domain/event.cpp index e107441..38872f9 100644 --- a/common/domain/event.cpp +++ b/common/domain/event.cpp @@ -62,12 +62,8 @@ void TypeImplementation::index(const Event &type, Akonadi2::Storage::Tran QSharedPointer::Buffer> > TypeImplementation::initializeReadPropertyMapper() { auto propertyMapper = QSharedPointer >::create(); - propertyMapper->addMapping("summary", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->summary()); - }); - propertyMapper->addMapping("uid", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->uid()); - }); + propertyMapper->addMapping("summary", &Buffer::summary); + propertyMapper->addMapping("uid", &Buffer::uid); return propertyMapper; } diff --git a/common/domain/mail.cpp b/common/domain/mail.cpp index 230ef31..d40dde9 100644 --- a/common/domain/mail.cpp +++ b/common/domain/mail.cpp @@ -62,30 +62,14 @@ void TypeImplementation::index(const Mail &type, Akonadi2::Storage::Transa QSharedPointer::Buffer> > TypeImplementation::initializeReadPropertyMapper() { auto propertyMapper = QSharedPointer >::create(); - propertyMapper->addMapping("uid", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->uid()); - }); - propertyMapper->addMapping("sender", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->sender()); - }); - propertyMapper->addMapping("senderName", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->senderName()); - }); - propertyMapper->addMapping("subject", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->subject()); - }); - propertyMapper->addMapping("date", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->date()); - }); - propertyMapper->addMapping("unread", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->unread()); - }); - propertyMapper->addMapping("important", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->important()); - }); - propertyMapper->addMapping("folder", [](Buffer const *buffer) -> QVariant { - return propertyToVariant(buffer->folder()); - }); + propertyMapper->addMapping("uid", &Buffer::uid); + propertyMapper->addMapping("sender", &Buffer::sender); + propertyMapper->addMapping("senderName", &Buffer::senderName); + propertyMapper->addMapping("subject", &Buffer::subject); + propertyMapper->addMapping("date", &Buffer::date); + propertyMapper->addMapping("unread", &Buffer::unread); + propertyMapper->addMapping("important", &Buffer::important); + propertyMapper->addMapping("folder", &Buffer::folder); return propertyMapper; } diff --git a/common/propertymapper.h b/common/propertymapper.h index 72468e2..87c7485 100644 --- a/common/propertymapper.h +++ b/common/propertymapper.h @@ -63,6 +63,22 @@ public: void addMapping(const QByteArray &property, const std::function &mapping) { mReadAccessors.insert(property, mapping); } + + template + void addMapping(const QByteArray &name, const flatbuffers::String *(Buffer::*f)() const) + { + addMapping(name, [f](Buffer const *buffer) -> QVariant { + return propertyToVariant((buffer->*f)()); + }); + } + + template + void addMapping(const QByteArray &name, uint8_t (Buffer::*f)() const) + { + addMapping(name, [f](Buffer const *buffer) -> QVariant { + return propertyToVariant((buffer->*f)()); + }); + } private: QHash > mReadAccessors; }; -- cgit v1.2.3