summaryrefslogtreecommitdiffstats
path: root/src/common-lib/dbus-utilities.cpp
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@pelagicore.com>2018-10-08 17:41:25 +0200
committerRobert Griebl <robert.griebl@pelagicore.com>2018-10-09 12:42:21 +0000
commitbe9cf08b1bb59ebae7cecb196494f6b6c807b621 (patch)
tree01345a63d5e4aa92aed0bc19899565f039139fed /src/common-lib/dbus-utilities.cpp
parent9eb2987cebe597c92d140405bc22d4cc518c7823 (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.cpp12
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;
}