diff options
author | Robert Griebl <robert.griebl@pelagicore.com> | 2018-10-08 17:41:25 +0200 |
---|---|---|
committer | Robert Griebl <robert.griebl@pelagicore.com> | 2018-10-09 12:42:21 +0000 |
commit | be9cf08b1bb59ebae7cecb196494f6b6c807b621 (patch) | |
tree | 01345a63d5e4aa92aed0bc19899565f039139fed /src/common-lib/dbus-utilities.cpp | |
parent | 9eb2987cebe597c92d140405bc22d4cc518c7823 (diff) |
Fix the QDBusArgument to plain QVariantMap conversion
This was missing the recursion into arrays and maps need for complex
variants.
Change-Id: I9c911bcb6aef7ae7f90e5971dd45c8ec7e3a20ee
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
Diffstat (limited to 'src/common-lib/dbus-utilities.cpp')
-rw-r--r-- | src/common-lib/dbus-utilities.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/common-lib/dbus-utilities.cpp b/src/common-lib/dbus-utilities.cpp index e743cbbc..d90f433b 100644 --- a/src/common-lib/dbus-utilities.cpp +++ b/src/common-lib/dbus-utilities.cpp @@ -137,6 +137,18 @@ QVariant convertFromDBusVariant(const QVariant &variant) default: return QVariant(); } + } else if (type == QMetaType::QVariantList) { + QVariantList outList; + QVariantList inList = variant.toList(); + for (auto it = inList.cbegin(); it != inList.cend(); ++it) + outList.append(convertFromDBusVariant(*it)); + return outList; + } else if (type == QMetaType::QVariantMap) { + QVariantMap outMap; + QVariantMap inMap = variant.toMap(); + for (auto it = inMap.cbegin(); it != inMap.cend(); ++it) + outMap.insert(it.key(), convertFromDBusVariant(it.value())); + return outMap; } else { return variant; } |