summaryrefslogtreecommitdiff
path: root/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbus-lib/packagemanagerdbuscontextadaptor.cpp')
-rw-r--r--src/dbus-lib/packagemanagerdbuscontextadaptor.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp b/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp
index 2f5217a6..c6d78fff 100644
--- a/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp
+++ b/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp
@@ -7,6 +7,7 @@
#include "package.h"
#include "packagemanager.h"
#include "packagemanager_adaptor.h"
+#include "applicationmanager.h"
#include "dbuspolicy.h"
#include "exception.h"
#include "logging.h"
@@ -61,6 +62,17 @@ PackageManagerAdaptor::PackageManagerAdaptor(QObject *parent)
const QVariantMap &packageExtraSignedMetaData) {
auto map = PackageManager::instance()->get(package);
map.remove(qSL("package")); // cannot marshall QObject *
+
+ const auto apps = package->applications(); // these are QObject * (legacy API)
+ QVariantList appList;
+ appList.reserve(apps.size());
+ for (const auto *obj : apps) {
+ QVariantMap app = ApplicationManager::instance()->get(obj->property("id").toString());
+ app.remove(qSL("application")); // cannot marshall QObject *
+ appList.append(app);
+ }
+ map.insert(qSL("applications"), appList);
+
emit taskRequestingInstallationAcknowledge(taskId, map, packageExtraMetaData,
packageExtraSignedMetaData);
});