From 7150b8e864f0a2b9ba602bb56384f7f521f4098d Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Tue, 6 Jun 2017 20:15:18 +0900 Subject: BaseJob::* facility classes: better construction Use std::initializer_list instead of QList<> because we actually want to construct from initializer lists; and only enable Data(std::initializer_list) for older Qt's that don't have the same on the level of QJsonObject. --- jobs/basejob.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/jobs/basejob.h b/jobs/basejob.h index 2be4577f..0ec40a7a 100644 --- a/jobs/basejob.h +++ b/jobs/basejob.h @@ -63,7 +63,7 @@ namespace QMatrixClient public: using QUrlQuery::QUrlQuery; Query() = default; - explicit Query(const QList< QPair >& l) + explicit Query(const std::initializer_list< QPair >& l) { setQueryItems(l); } @@ -78,11 +78,16 @@ namespace QMatrixClient { public: Data() = default; - explicit Data(const QList< QPair >& l) + Data(const QJsonObject& o) : QJsonObject(o) { } + Data(QJsonObject&& o) : QJsonObject(std::move(o)) { } +#if (QT_VERSION < QT_VERSION_CHECK(5, 4, 0)) + // This method exists in QJsonObject of newer Qt versions + explicit Data(const std::initializer_list< QPair >& l) { for (auto i: l) insert(i.first, i.second); } +#endif QByteArray serialize() const { return QJsonDocument(*this).toJson(); -- cgit v1.2.3