summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/manager-lib/abstractruntime.cpp6
-rw-r--r--src/manager-lib/abstractruntime.h8
-rw-r--r--src/manager-lib/intentaminterface.cpp4
-rw-r--r--src/manager-lib/nativeruntime.cpp3
-rw-r--r--src/manager-lib/qmlinprocessruntime.cpp2
5 files changed, 21 insertions, 2 deletions
diff --git a/src/manager-lib/abstractruntime.cpp b/src/manager-lib/abstractruntime.cpp
index 7bb270aa..6b8fe54c 100644
--- a/src/manager-lib/abstractruntime.cpp
+++ b/src/manager-lib/abstractruntime.cpp
@@ -95,6 +95,12 @@ QVariantMap AbstractRuntime::systemProperties() const
return QVariantMap();
}
+RuntimeSignaler *AbstractRuntime::signaler()
+{
+ static RuntimeSignaler rs;
+ return &rs;
+}
+
QByteArray AbstractRuntime::securityToken() const
{
return m_securityToken;
diff --git a/src/manager-lib/abstractruntime.h b/src/manager-lib/abstractruntime.h
index ef70120b..1d23fffd 100644
--- a/src/manager-lib/abstractruntime.h
+++ b/src/manager-lib/abstractruntime.h
@@ -101,6 +101,12 @@ private:
QStringList m_iconThemeSearchPaths;
};
+class RuntimeSignaler : public QObject
+{
+ Q_OBJECT
+signals:
+ void aboutToStart(QT_PREPEND_NAMESPACE_AM(AbstractRuntime) *runtime);
+};
class AbstractRuntime : public QObject
{
@@ -139,6 +145,8 @@ public:
virtual bool start() = 0;
virtual void stop(bool forceKill = false) = 0;
+ static RuntimeSignaler* signaler();
+
signals:
void stateChanged(QT_PREPEND_NAMESPACE_AM(Am::RunState) newState);
void finished(int exitCode, Am::ExitStatus status);
diff --git a/src/manager-lib/intentaminterface.cpp b/src/manager-lib/intentaminterface.cpp
index afa3dfaa..66b97546 100644
--- a/src/manager-lib/intentaminterface.cpp
+++ b/src/manager-lib/intentaminterface.cpp
@@ -183,7 +183,7 @@ void IntentServerAMImplementation::initialize(IntentServer *server)
// The IntentServer itself doesn't know about the p2p D-Bus or the AM itself, so we need to
// wire it up to both interfaces from the outside
- connect(&ApplicationManager::instance()->internalSignals, &ApplicationManagerInternalSignals::newRuntimeCreated,
+ connect(AbstractRuntime::signaler(), &RuntimeSignaler::aboutToStart,
intentServer(), [this](AbstractRuntime *runtime) {
#if defined(AM_MULTI_PROCESS)
if (NativeRuntime *nativeRuntime = qobject_cast<NativeRuntime *>(runtime)) {
@@ -519,7 +519,7 @@ QString IntentServerDBusIpcConnection::requestToSystem(const QString &intentId,
sendErrorReply(QDBusError::NotSupported, qL1S("No matching intent handler registered."));
return QString();
} else {
- return irs->requestId().toString();
+ return irs->requestId().toString();
}
}
diff --git a/src/manager-lib/nativeruntime.cpp b/src/manager-lib/nativeruntime.cpp
index 7edb5c49..2e232989 100644
--- a/src/manager-lib/nativeruntime.cpp
+++ b/src/manager-lib/nativeruntime.cpp
@@ -176,6 +176,7 @@ bool NativeRuntime::attachApplicationToQuickLauncher(Application *app)
} else {
QDBusConnection connection(m_dbusConnectionName);
ApplicationIPCManager::instance()->registerInterfaces(this, connection, app);
+ emit applicationReadyOnPeerDBus(connection, app);
ret = startApplicationViaLauncher();
}
@@ -359,6 +360,8 @@ bool NativeRuntime::start()
args << QString::fromLocal8Bit(ProcessTitle::placeholderArgument); // must be last argument
}
+ emit signaler()->aboutToStart(this);
+
m_process = m_container->start(args, env, config);
if (!m_process)
diff --git a/src/manager-lib/qmlinprocessruntime.cpp b/src/manager-lib/qmlinprocessruntime.cpp
index 010e37c6..1138b8cb 100644
--- a/src/manager-lib/qmlinprocessruntime.cpp
+++ b/src/manager-lib/qmlinprocessruntime.cpp
@@ -154,6 +154,8 @@ bool QmlInProcessRuntime::start()
return false;
}
+ emit signaler()->aboutToStart(this);
+
// We are running each application in it's own, separate Qml context.
// This way, we can export an unique ApplicationInterface object for each app
QQmlContext *appContext = new QQmlContext(m_inProcessQmlEngine->rootContext(), this);