summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2023-02-10 15:14:58 +0100
committerRobert Griebl <robert.griebl@qt.io>2023-02-15 15:08:11 +0100
commit4a14abf206c548b80f2942c4d42e23b0e97ddeb1 (patch)
treeba713599d05f64b478f48446a1f3b3ea112f9f05
parent41bb52b0a2b02628247a4afd2513aa52a6da5cf6 (diff)
downloadqtapplicationmanager-4a14abf206c548b80f2942c4d42e23b0e97ddeb1.tar.gz
Cleanup the D-Bus interfaces
- most of the newer PackageManager signals were not exposed at all - some properties were not exposed consistently or used the wrong type - clarified the D-Bus policy settings in regards to properties Change-Id: I6875c0a0613a0a63af2386d311a1a6c7c0031b7b Pick-to: 6.5 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
-rw-r--r--doc/configuration.qdoc2
-rw-r--r--qmltypes/QtApplicationManager/SystemUI/plugins.qmltypes16
-rw-r--r--src/dbus-lib/CMakeLists.txt3
-rw-r--r--src/dbus-lib/dbuspolicy.cpp8
-rw-r--r--src/dbus-lib/dbuspolicy.h4
-rw-r--r--src/dbus-lib/io.qt.applicationmanager.xml12
-rw-r--r--src/dbus-lib/io.qt.packagemanager.xml66
-rw-r--r--src/dbus-lib/io.qt.windowmanager.xml7
-rw-r--r--src/dbus-lib/packagemanagerdbuscontextadaptor.cpp46
-rw-r--r--src/dbus-lib/windowmanagerdbuscontextadaptor.cpp19
-rw-r--r--src/manager-lib/applicationmanager.h4
-rw-r--r--src/manager-lib/notificationmanager.h4
-rw-r--r--src/manager-lib/packagemanager.h14
-rw-r--r--src/tools/controller/controller.cpp4
-rw-r--r--src/window-lib/windowmanager.h8
15 files changed, 148 insertions, 69 deletions
diff --git a/doc/configuration.qdoc b/doc/configuration.qdoc
index 3a4e1f90..18473bb1 100644
--- a/doc/configuration.qdoc
+++ b/doc/configuration.qdoc
@@ -531,6 +531,8 @@ policies.
policy configuration. The keys into this map are the undecorated D-Bus function names, such
as \c startApplication. When a key is specified, the corresponding function's access policy
is \c deny, until you add \c allow criterias -- all of which are AND-ed together.
+ Due to the way D-Bus properties are implemented, these policy only apply to methods, but
+ not to property getters and setters.
\endtable
The code snippet below shows a simple example, that only allows applications with the \c appstore
diff --git a/qmltypes/QtApplicationManager/SystemUI/plugins.qmltypes b/qmltypes/QtApplicationManager/SystemUI/plugins.qmltypes
index 858fc226..608b8606 100644
--- a/qmltypes/QtApplicationManager/SystemUI/plugins.qmltypes
+++ b/qmltypes/QtApplicationManager/SystemUI/plugins.qmltypes
@@ -307,6 +307,10 @@ Module {
name: "countChanged"
}
Signal {
+ name: "slowAnimationsChanged"
+ Parameter { name: ""; type: "bool"; }
+ }
+ Signal {
name: "raiseApplicationWindow"
Parameter { name: "applicationId"; type: "string"; }
Parameter { name: "applicationAliasId"; type: "string"; }
@@ -336,14 +340,6 @@ Module {
Signal {
name: "shutDownFinished"
}
- Signal {
- name: "slowAnimationsChanged"
- Parameter { name: ""; type: "bool"; }
- }
- Method {
- name: "count"
- type: "int"
- }
Method {
name: "get"
type: "QVariantMap"
@@ -582,10 +578,6 @@ Module {
Parameter { name: "rolesChanged"; type: "QStringList"; }
}
Method {
- name: "count"
- type: "int"
- }
- Method {
name: "get"
type: "QVariantMap"
Parameter { name: "index"; type: "int"; }
diff --git a/src/dbus-lib/CMakeLists.txt b/src/dbus-lib/CMakeLists.txt
index 419c2f6f..08ff81cb 100644
--- a/src/dbus-lib/CMakeLists.txt
+++ b/src/dbus-lib/CMakeLists.txt
@@ -61,16 +61,19 @@ add_custom_target("DBus-Interface-XMLs" SOURCES
qt_generate_dbus_interface(
${CMAKE_CURRENT_SOURCE_DIR}/../manager-lib/applicationmanager.h
${CMAKE_CURRENT_BINARY_DIR}/io.qt.applicationmanager.xml.regen
+ OPTIONS -a -t "QtAM::Am::RunState=u" -t "QtAM::UnixFdMap=a{sh}"
)
qt_generate_dbus_interface(
${CMAKE_CURRENT_SOURCE_DIR}/../manager-lib/packagemanager.h
${CMAKE_CURRENT_BINARY_DIR}/io.qt.packagemanager.xml.regen
+ OPTIONS -a -t "QtAM::AsynchronousTask::TaskState=s"
)
qt_generate_dbus_interface(
${CMAKE_CURRENT_SOURCE_DIR}/../window-lib/windowmanager.h
${CMAKE_CURRENT_BINARY_DIR}/io.qt.windowmanager.xml.regen
+ OPTIONS -a
)
add_custom_target(dbus_xml_regen DEPENDS
diff --git a/src/dbus-lib/dbuspolicy.cpp b/src/dbus-lib/dbuspolicy.cpp
index b4b872ba..2e1b4c63 100644
--- a/src/dbus-lib/dbuspolicy.cpp
+++ b/src/dbus-lib/dbuspolicy.cpp
@@ -26,14 +26,14 @@ struct DBusPolicyEntry
QStringList m_capabilities;
};
-static QHash<QDBusAbstractAdaptor *, QMap<QByteArray, DBusPolicyEntry>> &policies()
+static QHash<const QDBusAbstractAdaptor *, QMap<QByteArray, DBusPolicyEntry>> &policies()
{
- static QHash<QDBusAbstractAdaptor *, QMap<QByteArray, DBusPolicyEntry>> hash;
+ static QHash<const QDBusAbstractAdaptor *, QMap<QByteArray, DBusPolicyEntry>> hash;
return hash;
}
-bool DBusPolicy::add(QDBusAbstractAdaptor *dbusAdaptor, const QVariantMap &yamlFragment)
+bool DBusPolicy::add(const QDBusAbstractAdaptor *dbusAdaptor, const QVariantMap &yamlFragment)
{
QMap<QByteArray, DBusPolicyEntry> result;
const QMetaObject *mo = dbusAdaptor->metaObject();
@@ -75,7 +75,7 @@ bool DBusPolicy::add(QDBusAbstractAdaptor *dbusAdaptor, const QVariantMap &yamlF
}
-bool DBusPolicy::check(QDBusAbstractAdaptor *dbusAdaptor, const QByteArray &function)
+bool DBusPolicy::check(const QDBusAbstractAdaptor *dbusAdaptor, const QByteArray &function)
{
#if !defined(Q_OS_UNIX)
Q_UNUSED(dbusAdaptor)
diff --git a/src/dbus-lib/dbuspolicy.h b/src/dbus-lib/dbuspolicy.h
index 36041093..5c6e631c 100644
--- a/src/dbus-lib/dbuspolicy.h
+++ b/src/dbus-lib/dbuspolicy.h
@@ -16,8 +16,8 @@ QT_BEGIN_NAMESPACE_AM
class DBusPolicy
{
public:
- static bool add(QDBusAbstractAdaptor *dbusAdaptor, const QVariantMap &yamlFragment);
- static bool check(QDBusAbstractAdaptor *dbusAdaptor, const QByteArray &function);
+ static bool add(const QDBusAbstractAdaptor *dbusAdaptor, const QVariantMap &yamlFragment);
+ static bool check(const QDBusAbstractAdaptor *dbusAdaptor, const QByteArray &function);
};
QT_END_NAMESPACE_AM
diff --git a/src/dbus-lib/io.qt.applicationmanager.xml b/src/dbus-lib/io.qt.applicationmanager.xml
index 499500c2..ff933ce9 100644
--- a/src/dbus-lib/io.qt.applicationmanager.xml
+++ b/src/dbus-lib/io.qt.applicationmanager.xml
@@ -5,10 +5,14 @@
<property name="singleProcess" type="b" access="read"/>
<property name="securityChecksEnabled" type="b" access="read"/>
<property name="dummy" type="b" access="read"/>
+ <property name="windowManagerCompositorReady" type="b" access="read"/>
<property name="systemProperties" type="a{sv}" access="read">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QVariantMap"/>
</property>
- <property name="windowManagerCompositorReady" type="b" access="read"/>
+ <signal name="applicationRunStateChanged">
+ <arg name="id" type="s" direction="out"/>
+ <arg name="runState" type="u" direction="out"/>
+ </signal>
<signal name="applicationWasActivated">
<arg name="id" type="s" direction="out"/>
<arg name="aliasId" type="s" direction="out"/>
@@ -25,10 +29,6 @@
<arg name="id" type="s" direction="out"/>
<arg name="changedRoles" type="as" direction="out"/>
</signal>
- <signal name="applicationRunStateChanged">
- <arg name="id" type="s" direction="out"/>
- <arg name="runState" type="u" direction="out"/>
- </signal>
<signal name="windowManagerCompositorReadyChanged">
<arg name="ready" type="b" direction="out"/>
</signal>
@@ -83,9 +83,9 @@
<arg name="id" type="s" direction="in"/>
</method>
<method name="stopAllApplications">
+ <arg name="forceKill" type="b" direction="in"/>
</method>
<method name="stopAllApplications">
- <arg name="forceKill" type="b" direction="in"/>
</method>
<method name="openUrl">
<arg type="b" direction="out"/>
diff --git a/src/dbus-lib/io.qt.packagemanager.xml b/src/dbus-lib/io.qt.packagemanager.xml
index 37e41b9d..336bdd1d 100644
--- a/src/dbus-lib/io.qt.packagemanager.xml
+++ b/src/dbus-lib/io.qt.packagemanager.xml
@@ -1,16 +1,33 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="io.qt.PackageManager">
+ <property name="count" type="i" access="read"/>
<property name="allowInstallationOfUnsignedPackages" type="b" access="read"/>
<property name="developmentMode" type="b" access="read"/>
- <property name="applicationUserIdSeparation" type="b" access="read"/>
- <property name="commonApplicationGroupId" type="u" access="read"/>
- <property name="installationLocation" type="v" access="read">
+ <property name="ready" type="b" access="read"/>
+ <property name="installationLocation" type="a{sv}" access="read">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QVariantMap"/>
</property>
- <property name="documentLocation" type="v" access="read">
+ <property name="documentLocation" type="a{sv}" access="read">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QVariantMap"/>
</property>
+ <property name="applicationUserIdSeparation" type="b" access="read"/>
+ <property name="commonApplicationGroupId" type="u" access="read"/>
+ <signal name="readyChanged">
+ <arg name="b" type="b" direction="out"/>
+ </signal>
+ <signal name="countChanged">
+ </signal>
+ <signal name="packageAdded">
+ <arg name="id" type="s" direction="out"/>
+ </signal>
+ <signal name="packageAboutToBeRemoved">
+ <arg name="id" type="s" direction="out"/>
+ </signal>
+ <signal name="packageChanged">
+ <arg name="id" type="s" direction="out"/>
+ <arg name="changedRoles" type="as" direction="out"/>
+ </signal>
<signal name="taskStarted">
<arg name="taskId" type="s" direction="out"/>
</signal>
@@ -30,6 +47,9 @@
<arg name="taskId" type="s" direction="out"/>
<arg name="newState" type="s" direction="out"/>
</signal>
+ <signal name="taskBlockingUntilInstallationAcknowledge">
+ <arg name="taskId" type="s" direction="out"/>
+ </signal>
<signal name="taskRequestingInstallationAcknowledge">
<arg name="taskId" type="s" direction="out"/>
<arg name="packageAsVariantMap" type="a{sv}" direction="out"/>
@@ -39,16 +59,27 @@
<arg name="packageExtraSignedMetaData" type="a{sv}" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out3" value="QVariantMap"/>
</signal>
- <signal name="taskBlockingUntilInstallationAcknowledge">
- <arg name="taskId" type="s" direction="out"/>
- </signal>
<method name="packageIds">
<arg type="as" direction="out"/>
</method>
<method name="get">
<arg type="a{sv}" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QVariantMap"/>
- <arg name="id" type="s" direction="in"/>
+ <arg name="packageId" type="s" direction="in"/>
+ </method>
+ <method name="installedPackageSize">
+ <arg type="x" direction="out"/>
+ <arg name="packageId" type="s" direction="in"/>
+ </method>
+ <method name="installedPackageExtraMetaData">
+ <arg type="a{sv}" direction="out"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QVariantMap"/>
+ <arg name="packageId" type="s" direction="in"/>
+ </method>
+ <method name="installedPackageExtraSignedMetaData">
+ <arg type="a{sv}" direction="out"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QVariantMap"/>
+ <arg name="packageId" type="s" direction="in"/>
</method>
<method name="startPackageInstallation">
<arg type="s" direction="out"/>
@@ -88,19 +119,14 @@
<arg name="version1" type="s" direction="in"/>
<arg name="version2" type="s" direction="in"/>
</method>
- <method name="installedPackageSize">
- <arg type="x" direction="out"/>
- <arg name="id" type="s" direction="in"/>
- </method>
- <method name="installedPackageExtraMetaData">
- <arg type="a{sv}" direction="out"/>
- <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QVariantMap"/>
- <arg name="id" type="s" direction="in"/>
+ <method name="validateDnsName">
+ <arg type="b" direction="out"/>
+ <arg name="name" type="s" direction="in"/>
+ <arg name="minimumParts" type="i" direction="in"/>
</method>
- <method name="installedPackageExtraSignedMetaData">
- <arg type="a{sv}" direction="out"/>
- <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QVariantMap"/>
- <arg name="id" type="s" direction="in"/>
+ <method name="validateDnsName">
+ <arg type="b" direction="out"/>
+ <arg name="name" type="s" direction="in"/>
</method>
</interface>
</node>
diff --git a/src/dbus-lib/io.qt.windowmanager.xml b/src/dbus-lib/io.qt.windowmanager.xml
index fa35aef5..8f3c5843 100644
--- a/src/dbus-lib/io.qt.windowmanager.xml
+++ b/src/dbus-lib/io.qt.windowmanager.xml
@@ -1,8 +1,15 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="io.qt.WindowManager">
+ <property name="count" type="i" access="read"/>
<property name="runningOnDesktop" type="b" access="read"/>
<property name="slowAnimations" type="b" access="readwrite"/>
+ <property name="allowUnknownUiClients" type="b" access="read"/>
+ <signal name="countChanged">
+ </signal>
+ <signal name="slowAnimationsChanged">
+ <arg type="b" direction="out"/>
+ </signal>
<method name="makeScreenshot">
<arg type="b" direction="out"/>
<arg name="filename" type="s" direction="in"/>
diff --git a/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp b/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp
index 43937292..2f5217a6 100644
--- a/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp
+++ b/src/dbus-lib/packagemanagerdbuscontextadaptor.cpp
@@ -37,6 +37,16 @@ PackageManagerAdaptor::PackageManagerAdaptor(QObject *parent)
{
auto pm = PackageManager::instance();
+ connect(pm, &PackageManager::countChanged,
+ this, &PackageManagerAdaptor::countChanged);
+ connect(pm, &PackageManager::readyChanged,
+ this, &PackageManagerAdaptor::readyChanged);
+ connect(pm, &PackageManager::packageAdded,
+ this, &PackageManagerAdaptor::packageAdded);
+ connect(pm, &PackageManager::packageChanged,
+ this, &PackageManagerAdaptor::packageChanged);
+ connect(pm, &PackageManager::packageAboutToBeRemoved,
+ this, &PackageManagerAdaptor::packageAboutToBeRemoved);
connect(pm, &PackageManager::taskBlockingUntilInstallationAcknowledge,
this, &PackageManagerAdaptor::taskBlockingUntilInstallationAcknowledge);
connect(pm, &PackageManager::taskFailed,
@@ -57,9 +67,9 @@ PackageManagerAdaptor::PackageManagerAdaptor(QObject *parent)
connect(pm, &PackageManager::taskStarted,
this, &PackageManagerAdaptor::taskStarted);
connect(pm, &PackageManager::taskStateChanged,
- [this](const QString &taskId, AsynchronousTask::TaskState newState) {
- emit taskStateChanged(taskId, taskStateToString(newState));
- });
+ this, [this](const QString &taskId, AsynchronousTask::TaskState newState) {
+ emit taskStateChanged(taskId, taskStateToString(newState));
+ });
}
PackageManagerAdaptor::~PackageManagerAdaptor()
@@ -80,19 +90,29 @@ uint PackageManagerAdaptor::commonApplicationGroupId() const
return PackageManager::instance()->commonApplicationGroupId();
}
+int PackageManagerAdaptor::count() const
+{
+ return PackageManager::instance()->count();
+}
+
bool PackageManagerAdaptor::developmentMode() const
{
return PackageManager::instance()->developmentMode();
}
-QDBusVariant PackageManagerAdaptor::installationLocation() const
+QVariantMap PackageManagerAdaptor::installationLocation() const
{
- return QDBusVariant(PackageManager::instance()->installationLocation());
+ return PackageManager::instance()->installationLocation();
}
-QDBusVariant PackageManagerAdaptor::documentLocation() const
+bool PackageManagerAdaptor::ready() const
{
- return QDBusVariant(PackageManager::instance()->documentLocation());
+ return PackageManager::instance()->isReady();
+}
+
+QVariantMap PackageManagerAdaptor::documentLocation() const
+{
+ return PackageManager::instance()->documentLocation();
}
void PackageManagerAdaptor::acknowledgePackageInstallation(const QString &taskId)
@@ -179,3 +199,15 @@ QStringList PackageManagerAdaptor::activeTaskIds()
AM_AUTHENTICATE_DBUS(QStringList)
return PackageManager::instance()->activeTaskIds();
}
+
+bool PackageManagerAdaptor::validateDnsName(const QString &name)
+{
+ AM_AUTHENTICATE_DBUS(bool)
+ return PackageManager::instance()->validateDnsName(name);
+}
+
+bool PackageManagerAdaptor::validateDnsName(const QString &name, int minimumParts)
+{
+ AM_AUTHENTICATE_DBUS(bool)
+ return PackageManager::instance()->validateDnsName(name, minimumParts);
+}
diff --git a/src/dbus-lib/windowmanagerdbuscontextadaptor.cpp b/src/dbus-lib/windowmanagerdbuscontextadaptor.cpp
index e94a1afa..1a32329a 100644
--- a/src/dbus-lib/windowmanagerdbuscontextadaptor.cpp
+++ b/src/dbus-lib/windowmanagerdbuscontextadaptor.cpp
@@ -6,6 +6,7 @@
#include "windowmanagerdbuscontextadaptor.h"
#include "windowmanager.h"
#include "windowmanager_adaptor.h"
+#include "dbuspolicy.h"
QT_BEGIN_NAMESPACE_AM
@@ -23,11 +24,26 @@ QT_USE_NAMESPACE_AM
WindowManagerAdaptor::WindowManagerAdaptor(QObject *parent)
: QDBusAbstractAdaptor(parent)
-{ }
+{
+ connect(WindowManager::instance(), &WindowManager::countChanged,
+ this, &WindowManagerAdaptor::countChanged);
+ connect(WindowManager::instance(), &WindowManager::slowAnimationsChanged,
+ this, &WindowManagerAdaptor::slowAnimationsChanged);
+}
WindowManagerAdaptor::~WindowManagerAdaptor()
{ }
+bool WindowManagerAdaptor::allowUnknownUiClients() const
+{
+ return WindowManager::instance()->allowUnknownUiClients();
+}
+
+int WindowManagerAdaptor::count() const
+{
+ return WindowManager::instance()->count();
+}
+
bool WindowManagerAdaptor::runningOnDesktop() const
{
return WindowManager::instance()->isRunningOnDesktop();
@@ -45,5 +61,6 @@ void WindowManagerAdaptor::setSlowAnimations(bool slow)
bool WindowManagerAdaptor::makeScreenshot(const QString &filename, const QString &selector)
{
+ AM_AUTHENTICATE_DBUS(bool)
return WindowManager::instance()->makeScreenshot(filename, selector);
}
diff --git a/src/manager-lib/applicationmanager.h b/src/manager-lib/applicationmanager.h
index 2c7f20a7..d535acae 100644
--- a/src/manager-lib/applicationmanager.h
+++ b/src/manager-lib/applicationmanager.h
@@ -44,12 +44,12 @@ class ApplicationManager : public QAbstractListModel
Q_PROPERTY(int count READ count NOTIFY countChanged)
Q_PROPERTY(bool singleProcess READ isSingleProcess CONSTANT)
- Q_PROPERTY(bool shuttingDown READ isShuttingDown NOTIFY shuttingDownChanged)
+ Q_PROPERTY(bool shuttingDown READ isShuttingDown NOTIFY shuttingDownChanged SCRIPTABLE false)
Q_PROPERTY(bool securityChecksEnabled READ securityChecksEnabled CONSTANT)
Q_PROPERTY(bool dummy READ isDummy CONSTANT) // set to false here and true in the dummydata imports
Q_PROPERTY(bool windowManagerCompositorReady READ isWindowManagerCompositorReady NOTIFY windowManagerCompositorReadyChanged)
Q_PROPERTY(QVariantMap systemProperties READ systemProperties CONSTANT)
- Q_PROPERTY(QJSValue containerSelectionFunction READ containerSelectionFunction WRITE setContainerSelectionFunction NOTIFY containerSelectionFunctionChanged)
+ Q_PROPERTY(QJSValue containerSelectionFunction READ containerSelectionFunction WRITE setContainerSelectionFunction NOTIFY containerSelectionFunctionChanged SCRIPTABLE false)
public:
~ApplicationManager() override;
diff --git a/src/manager-lib/notificationmanager.h b/src/manager-lib/notificationmanager.h
index d319d72e..a271ab51 100644
--- a/src/manager-lib/notificationmanager.h
+++ b/src/manager-lib/notificationmanager.h
@@ -22,7 +22,7 @@ class NotificationManager : public QAbstractListModel
Q_CLASSINFO("D-Bus Interface", "org.freedesktop.Notifications")
Q_CLASSINFO("AM-QmlType", "QtApplicationManager.SystemUI/NotificationManager 2.0 SINGLETON")
- Q_PROPERTY(int count READ count NOTIFY countChanged)
+ Q_PROPERTY(int count READ count NOTIFY countChanged SCRIPTABLE false)
public:
~NotificationManager() override;
@@ -35,7 +35,7 @@ public:
QVariant data(const QModelIndex &index, int role) const override;
QHash<int, QByteArray> roleNames() const override;
- Q_INVOKABLE int count() const;
+ int count() const;
Q_INVOKABLE QVariantMap get(int index) const;
Q_INVOKABLE QVariantMap notification(uint id) const;
Q_INVOKABLE int indexOfNotification(uint id) const;
diff --git a/src/manager-lib/packagemanager.h b/src/manager-lib/packagemanager.h
index f54e56e5..6598dd97 100644
--- a/src/manager-lib/packagemanager.h
+++ b/src/manager-lib/packagemanager.h
@@ -52,14 +52,14 @@ signals:
class PackageManager : public QAbstractListModel
{
Q_OBJECT
- Q_PROPERTY(int count READ count NOTIFY countChanged)
Q_CLASSINFO("D-Bus Interface", "io.qt.PackageManager")
Q_CLASSINFO("AM-QmlType", "QtApplicationManager.SystemUI/PackageManager 2.0 SINGLETON")
+ Q_PROPERTY(int count READ count NOTIFY countChanged)
// these are const on purpose - these should never change in a running system
Q_PROPERTY(bool allowInstallationOfUnsignedPackages READ allowInstallationOfUnsignedPackages CONSTANT)
Q_PROPERTY(bool developmentMode READ developmentMode CONSTANT)
- Q_PROPERTY(QString hardwareId READ hardwareId CONSTANT)
+ Q_PROPERTY(QString hardwareId READ hardwareId CONSTANT SCRIPTABLE false)
Q_PROPERTY(bool ready READ isReady NOTIFY readyChanged)
Q_PROPERTY(QVariantMap installationLocation READ installationLocation CONSTANT)
@@ -142,7 +142,7 @@ public:
Q_SCRIPTABLE void acknowledgePackageInstallation(const QString &taskId);
Q_SCRIPTABLE QString removePackage(const QString &id, bool keepDocuments, bool force = false);
- Q_SCRIPTABLE AsynchronousTask::TaskState taskState(const QString &taskId) const;
+ Q_SCRIPTABLE QT_PREPEND_NAMESPACE_AM(AsynchronousTask::TaskState) taskState(const QString &taskId) const;
Q_SCRIPTABLE QString taskPackageId(const QString &taskId) const;
Q_SCRIPTABLE QStringList activeTaskIds() const;
Q_SCRIPTABLE bool cancelTask(const QString &taskId);
@@ -169,10 +169,10 @@ signals:
QT_PREPEND_NAMESPACE_AM(AsynchronousTask::TaskState) newState);
// installation only
- Q_SCRIPTABLE void taskRequestingInstallationAcknowledge(const QString &taskId,
- QT_PREPEND_NAMESPACE_AM(Package) *package,
- const QVariantMap &packageExtraMetaData,
- const QVariantMap &packageExtraSignedMetaData);
+ void taskRequestingInstallationAcknowledge(const QString &taskId,
+ QT_PREPEND_NAMESPACE_AM(Package) *package,
+ const QVariantMap &packageExtraMetaData,
+ const QVariantMap &packageExtraSignedMetaData);
Q_SCRIPTABLE void taskBlockingUntilInstallationAcknowledge(const QString &taskId);
protected:
diff --git a/src/tools/controller/controller.cpp b/src/tools/controller/controller.cpp
index f915e5ec..5c2b5d8b 100644
--- a/src/tools/controller/controller.cpp
+++ b/src/tools/controller/controller.cpp
@@ -908,7 +908,7 @@ void listInstallationLocations() Q_DECL_NOEXCEPT_EXPR(false)
{
dbus.connectToPackager();
- auto installationLocation = dbus.packager()->installationLocation().variant().toMap();
+ auto installationLocation = dbus.packager()->installationLocation();
if (!installationLocation.isEmpty())
fputs("internal-0\n", stdout);
qApp->quit();
@@ -918,7 +918,7 @@ void showInstallationLocation(bool asJson) Q_DECL_NOEXCEPT_EXPR(false)
{
dbus.connectToPackager();
- auto installationLocation = dbus.packager()->installationLocation().variant().toMap();
+ auto installationLocation = dbus.packager()->installationLocation();
fprintf(stdout, "%s\n", asJson ? QJsonDocument::fromVariant(installationLocation).toJson().constData()
: QtYaml::yamlFromVariantDocuments({ installationLocation }).constData());
qApp->quit();
diff --git a/src/window-lib/windowmanager.h b/src/window-lib/windowmanager.h
index 6755d3c2..09491baa 100644
--- a/src/window-lib/windowmanager.h
+++ b/src/window-lib/windowmanager.h
@@ -80,7 +80,7 @@ public:
QVariant data(const QModelIndex &index, int role) const override;
QHash<int, QByteArray> roleNames() const override;
- Q_INVOKABLE int count() const;
+ int count() const;
Q_INVOKABLE QVariantMap get(int index) const;
Q_INVOKABLE QT_PREPEND_NAMESPACE_AM(Window) *window(int index) const;
Q_INVOKABLE QList<QObject *> windowsOfApplication(const QString &id) const;
@@ -93,7 +93,9 @@ protected:
bool eventFilter(QObject *watched, QEvent *event) override;
signals:
- void countChanged();
+ Q_SCRIPTABLE void countChanged();
+ Q_SCRIPTABLE void slowAnimationsChanged(bool);
+
void raiseApplicationWindow(const QString &applicationId, const QString &applicationAliasId);
void windowAdded(QT_PREPEND_NAMESPACE_AM(Window) *window);
@@ -106,8 +108,6 @@ signals:
void shutDownFinished();
- void slowAnimationsChanged(bool);
-
private slots:
void inProcessSurfaceItemCreated(QSharedPointer<QT_PREPEND_NAMESPACE_AM(InProcessSurfaceItem)> surfaceItem);
void setupWindow(QT_PREPEND_NAMESPACE_AM(Window) *window);