summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2023-07-18 22:17:14 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-07-20 12:40:07 +0000
commit4f77d9d2b63b81efeb7dc77379a5092058c7c9ef (patch)
treeb7c919e02776db23ce13254651e9dce1d369c70b
parent018decbf7be57c7310bf6674347add0e729e85d7 (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.cpp2
-rw-r--r--src/dbus-lib/packagemanagerdbuscontextadaptor.cpp9
-rw-r--r--src/manager-lib/nativeruntime.cpp4
-rw-r--r--src/tools/controller/controller.cpp4
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();