diff options
author | Robert Griebl <robert.griebl@qt.io> | 2023-07-18 22:17:14 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-07-20 12:40:07 +0000 |
commit | 4f77d9d2b63b81efeb7dc77379a5092058c7c9ef (patch) | |
tree | b7c919e02776db23ce13254651e9dce1d369c70b | |
parent | 018decbf7be57c7310bf6674347add0e729e85d7 (diff) |
Make variant maps D-Bus compatible before sending them out
...and convert them back after receiving
Also removed the unneeded explicit QVariant() around all invocations
of the converter functions.
Change-Id: Ie1a03d0c0cfebd3377c776b033235797d339efd2
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
(cherry picked from commit bd4c07943ca96b8e18ab1263b6d77fd59d3d47f6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/dbus-lib/applicationmanagerdbuscontextadaptor.cpp | 2 | ||||
-rw-r--r-- | src/dbus-lib/packagemanagerdbuscontextadaptor.cpp | 9 | ||||
-rw-r--r-- | src/manager-lib/nativeruntime.cpp | 4 | ||||
-rw-r--r-- | src/tools/controller/controller.cpp | 4 |
4 files changed, 11 insertions, 8 deletions
diff --git a/src/dbus-lib/applicationmanagerdbuscontextadaptor.cpp b/src/dbus-lib/applicationmanagerdbuscontextadaptor.cpp index 3ba9f76e..e0f62e3d 100644 --- a/src/dbus-lib/applicationmanagerdbuscontextadaptor.cpp +++ b/src/dbus-lib/applicationmanagerdbuscontextadaptor.cpp @@ -157,7 +157,7 @@ QVariantMap ApplicationManagerAdaptor::get(const QString &id) AM_AUTHENTICATE_DBUS(QVariantMap) auto map = ApplicationManager::instance()->get(id); map.remove(qSL("application")); // cannot marshall QObject * - return map; + return convertFromJSVariant(map).toMap(); } QString ApplicationManagerAdaptor::identifyApplication(qlonglong pid) diff --git a/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp b/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp index c6d78fff..06bdef1b 100644 --- a/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp +++ b/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp @@ -72,6 +72,7 @@ PackageManagerAdaptor::PackageManagerAdaptor(QObject *parent) appList.append(app); } map.insert(qSL("applications"), appList); + map = convertFromJSVariant(map).toMap(); emit taskRequestingInstallationAcknowledge(taskId, map, packageExtraMetaData, packageExtraSignedMetaData); @@ -156,7 +157,7 @@ QVariantMap PackageManagerAdaptor::get(const QString &id) AM_AUTHENTICATE_DBUS(QVariantMap) auto map = PackageManager::instance()->get(id); map.remove(qSL("package")); // cannot marshall QObject * - return map; + return convertFromJSVariant(map).toMap(); } qlonglong PackageManagerAdaptor::installedPackageSize(const QString &packageId) @@ -168,13 +169,15 @@ qlonglong PackageManagerAdaptor::installedPackageSize(const QString &packageId) QVariantMap PackageManagerAdaptor::installedPackageExtraMetaData(const QString &packageId) { AM_AUTHENTICATE_DBUS(QVariantMap) - return PackageManager::instance()->installedPackageExtraMetaData(packageId); + const auto map = PackageManager::instance()->installedPackageExtraMetaData(packageId); + return convertFromJSVariant(map).toMap(); } QVariantMap PackageManagerAdaptor::installedPackageExtraSignedMetaData(const QString &packageId) { AM_AUTHENTICATE_DBUS(QVariantMap) - return PackageManager::instance()->installedPackageExtraSignedMetaData(packageId); + const auto map = PackageManager::instance()->installedPackageExtraSignedMetaData(packageId); + return convertFromJSVariant(map).toMap(); } QString PackageManagerAdaptor::removePackage(const QString &packageId, bool keepDocuments) diff --git a/src/manager-lib/nativeruntime.cpp b/src/manager-lib/nativeruntime.cpp index d583856a..326b9c9c 100644 --- a/src/manager-lib/nativeruntime.cpp +++ b/src/manager-lib/nativeruntime.cpp @@ -456,8 +456,8 @@ bool NativeRuntime::startApplicationViaLauncher() QString pathInContainer = m_container->mapHostPathToContainer(m_app->info()->absoluteCodeFilePath()); emit m_runtimeInterface->startApplication(baseDir, pathInContainer, m_document, m_mimeType, - convertFromJSVariant(QVariant(m_app->info()->toVariantMap())).toMap(), - convertFromJSVariant(QVariant(systemProperties())).toMap()); + convertFromJSVariant(m_app->info()->toVariantMap()).toMap(), + convertFromJSVariant(systemProperties()).toMap()); return true; } diff --git a/src/tools/controller/controller.cpp b/src/tools/controller/controller.cpp index 35123386..d079106e 100644 --- a/src/tools/controller/controller.cpp +++ b/src/tools/controller/controller.cpp @@ -704,7 +704,7 @@ void showApplication(const QString &appId, bool asJson) Q_DECL_NOEXCEPT_EXPR(fal if (reply.isError()) throw Exception(Error::IO, "failed to get application via DBus: %1").arg(reply.error().message()); - QVariant app = reply.value(); + QVariant app = convertFromDBusVariant(reply.value()); fprintf(stdout, "%s\n", asJson ? QJsonDocument::fromVariant(app).toJson().constData() : QtYaml::yamlFromVariantDocuments({ app }).constData()); qApp->quit(); @@ -734,7 +734,7 @@ void showPackage(const QString &packageId, bool asJson) Q_DECL_NOEXCEPT_EXPR(fal if (reply.isError()) throw Exception(Error::IO, "failed to get package via DBus: %1").arg(reply.error().message()); - QVariant package = reply.value(); + QVariant package = convertFromDBusVariant(reply.value()); fprintf(stdout, "%s\n", asJson ? QJsonDocument::fromVariant(package).toJson().constData() : QtYaml::yamlFromVariantDocuments({ package }).constData()); qApp->quit(); |