summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDaniel d'Andrada <daniel.dandrada@luxoft.com>2017-10-10 15:48:43 +0200
committerRobert Griebl <robert.griebl@pelagicore.com>2017-10-12 12:15:45 +0000
commit9295baad5f20cf7b3e12aad37e7255a143b0c89b (patch)
treea913cb397b0a2269e010ab7862546ce4959dc4bd /src
parent87aadf81d7a7d5d8e2de1ca06509653511cd6fbb (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.cpp6
-rw-r--r--src/application-lib/application.h1
-rw-r--r--src/manager-lib/applicationmanager.cpp10
-rw-r--r--src/manager-lib/applicationmanager.h1
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);