diff options
author | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2017-12-23 22:13:19 +0900 |
---|---|---|
committer | Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com> | 2017-12-25 07:05:46 +0000 |
commit | db9f41d75fb4460f668117c69be05c4d4d4c7c7c (patch) | |
tree | 8d75ec2d5b291c8e4aa3a2a2a827f93b36564a40 /homescreen/src/applicationlauncher.cpp | |
parent | df2f2f4fde4b867d651787aa8f4b8941aa766e06 (diff) |
Block launching app when an app is launching
Bug-AGL: SPEC-1214
Change-Id: I747d20ca7a6219535668fc3951a4ff9f55bcaaaf
Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
Diffstat (limited to 'homescreen/src/applicationlauncher.cpp')
-rw-r--r-- | homescreen/src/applicationlauncher.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/homescreen/src/applicationlauncher.cpp b/homescreen/src/applicationlauncher.cpp index 7e1cda1..5a1e2d6 100644 --- a/homescreen/src/applicationlauncher.cpp +++ b/homescreen/src/applicationlauncher.cpp @@ -26,7 +26,23 @@ extern org::AGL::afm::user *afm_user_daemon_proxy; ApplicationLauncher::ApplicationLauncher(QObject *parent) : QObject(parent) + , m_launching(false) + , m_timeout(new QTimer(this)) { + m_timeout->setInterval(3000); + m_timeout->setSingleShot(true); + connect(m_timeout, &QTimer::timeout, [&]() { + setLaunching(false); + }); + connect(this, &ApplicationLauncher::launchingChanged, [&](bool launching) { + if (launching) + m_timeout->start(); + else + m_timeout->stop(); + }); + connect(this, &ApplicationLauncher::currentChanged, [&]() { + setLaunching(false); + }); } int ApplicationLauncher::launch(const QString &application) @@ -38,12 +54,24 @@ int ApplicationLauncher::launch(const QString &application) HMI_DEBUG("HomeScreen","ApplicationLauncher pid: %d.", result); if (result > 1) { - setCurrent(application); + setLaunching(true); } return result; } +bool ApplicationLauncher::isLaunching() const +{ + return m_launching; +} + +void ApplicationLauncher::setLaunching(bool launching) +{ + if (m_launching == launching) return; + m_launching = launching; + launchingChanged(launching); +} + QString ApplicationLauncher::current() const { return m_current; |