diff options
author | Daniel d'Andrada <daniel.dandrada@luxoft.com> | 2017-10-10 15:48:43 +0200 |
---|---|---|
committer | Robert Griebl <robert.griebl@pelagicore.com> | 2017-10-12 12:15:45 +0000 |
commit | 9295baad5f20cf7b3e12aad37e7255a143b0c89b (patch) | |
tree | a913cb397b0a2269e010ab7862546ce4959dc4bd /src | |
parent | 87aadf81d7a7d5d8e2de1ca06509653511cd6fbb (diff) |
Add Application::activated() signal
Saves AppMan users from writing a demux for applicationWasActivated themselves
when they have code that is interested in the activation of an specific application
(eg. a delegate instance in a *View whose model is ApplicationManager).
And, in any case, this is a more object-oriented approach.
Change-Id: Id2b7f30fadd9c0b3ced8653d883da9e4aad1ac1e
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/application-lib/application.cpp | 6 | ||||
-rw-r--r-- | src/application-lib/application.h | 1 | ||||
-rw-r--r-- | src/manager-lib/applicationmanager.cpp | 10 | ||||
-rw-r--r-- | src/manager-lib/applicationmanager.h | 1 |
4 files changed, 16 insertions, 2 deletions
diff --git a/src/application-lib/application.cpp b/src/application-lib/application.cpp index 383c5cb7..860acee0 100644 --- a/src/application-lib/application.cpp +++ b/src/application-lib/application.cpp @@ -230,6 +230,12 @@ \sa {Installation Locations} */ +/*! + \qmlsignal Application::activated() + + This signal is emitted when the application is started or when it's already running but has + been requested to be brought to foreground or raised. +*/ QT_BEGIN_NAMESPACE_AM diff --git a/src/application-lib/application.h b/src/application-lib/application.h index d60503ea..8b7753d3 100644 --- a/src/application-lib/application.h +++ b/src/application-lib/application.h @@ -172,6 +172,7 @@ signals: void runtimeChanged() const; void lastExitCodeChanged() const; void lastExitStatusChanged() const; + void activated() const; private: Application(); diff --git a/src/manager-lib/applicationmanager.cpp b/src/manager-lib/applicationmanager.cpp index 9737f630..2924dc15 100644 --- a/src/manager-lib/applicationmanager.cpp +++ b/src/manager-lib/applicationmanager.cpp @@ -672,7 +672,7 @@ bool ApplicationManager::startApplication(const Application *app, const QString else if (!app->documentUrl().isNull()) runtime->openDocument(app->documentUrl(), documentMimeType); - emit applicationWasActivated(app->isAlias() ? app->nonAliased()->id() : app->id(), app->id()); + emitActivated(app); return true; case AbstractRuntime::Shutdown: @@ -821,7 +821,7 @@ bool ApplicationManager::startApplication(const Application *app, const QString else if (!app->documentUrl().isNull()) runtime->openDocument(app->documentUrl(), documentMimeType); - emit applicationWasActivated(app->isAlias() ? app->nonAliased()->id() : app->id(), app->id()); + emitActivated(app); qCDebug(LogSystem) << "Starting application" << app->id() << "in container" << containerId << "using runtime" << runtimeManager->identifier(); @@ -1384,6 +1384,12 @@ void ApplicationManager::emitDataChanged(const Application *app, const QVector<i } } +void ApplicationManager::emitActivated(const Application *app) +{ + emit applicationWasActivated(app->isAlias() ? app->nonAliased()->id() : app->id(), app->id()); + emit app->activated(); +} + // item model part int ApplicationManager::rowCount(const QModelIndex &parent) const diff --git a/src/manager-lib/applicationmanager.h b/src/manager-lib/applicationmanager.h index 1c006e8f..2555eafd 100644 --- a/src/manager-lib/applicationmanager.h +++ b/src/manager-lib/applicationmanager.h @@ -189,6 +189,7 @@ private slots: private: void emitDataChanged(const Application *app, const QVector<int> &roles = QVector<int>()); + void emitActivated(const Application *app); void registerMimeTypes(); ApplicationManager(ApplicationDatabase *adb, bool singleProcess, QObject *parent = nullptr); |