diff options
author | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2016-12-20 20:17:10 +0900 |
---|---|---|
committer | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2016-12-20 20:17:10 +0900 |
commit | c4242e92275d4309d3947ff28a7cd3b9f008d8c6 (patch) | |
tree | d75a24b47ec37647a54789f3bdaed58185eb3c1d | |
parent | 1ec9bfac42b0ddd9fb61449a1a8ecdd43b218185 (diff) |
Fix highlight on Shortcut area
Change-Id: I426bcc55842711c1cd00d11163c12899c00a9e42
Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
-rw-r--r-- | HomeScreen/qml/ShortcutArea.qml | 7 | ||||
-rw-r--r-- | HomeScreen/src2/applicationlauncher.cpp | 15 | ||||
-rw-r--r-- | HomeScreen/src2/applicationlauncher.h | 6 |
3 files changed, 24 insertions, 4 deletions
diff --git a/HomeScreen/qml/ShortcutArea.qml b/HomeScreen/qml/ShortcutArea.qml index 9e71a94..1d7dd92 100644 --- a/HomeScreen/qml/ShortcutArea.qml +++ b/HomeScreen/qml/ShortcutArea.qml @@ -28,7 +28,7 @@ Item { id: applicationModel ListElement { name: 'Home' - application: 'home@0.1' + application: '' } ListElement { name: 'Multimedia' @@ -44,7 +44,6 @@ Item { } } - property int currentIndex: -1 // TODO: to be moved to whereever right property int pid: -1 RowLayout { @@ -56,13 +55,13 @@ Item { Layout.fillWidth: true Layout.fillHeight: true name: model.name - active: model.index === root.currentIndex + active: model.application === launcher.current onClicked: { - root.currentIndex = active ? -1 : model.index if (0 === model.index) { appLauncherAreaLauncher.visible = true applicationArea.visible = false layoutHandler.hideAppLayer() + launcher.current = '' } else { pid = launcher.launch(model.application) diff --git a/HomeScreen/src2/applicationlauncher.cpp b/HomeScreen/src2/applicationlauncher.cpp index 0ebc9b9..7011ebf 100644 --- a/HomeScreen/src2/applicationlauncher.cpp +++ b/HomeScreen/src2/applicationlauncher.cpp @@ -43,5 +43,20 @@ int ApplicationLauncher::launch(const QString &application) result = mp_dBusAppFrameworkProxy->launchApp(application); qDebug() << "pid:" << result; + if (result > 1) { + setCurrent(application); + } return result; } + +QString ApplicationLauncher::current() const +{ + return m_current; +} + +void ApplicationLauncher::setCurrent(const QString ¤t) +{ + if (m_current == current) return; + m_current = current; + emit currentChanged(current); +} diff --git a/HomeScreen/src2/applicationlauncher.h b/HomeScreen/src2/applicationlauncher.h index 14acae8..00fbbe8 100644 --- a/HomeScreen/src2/applicationlauncher.h +++ b/HomeScreen/src2/applicationlauncher.h @@ -25,18 +25,24 @@ class ApplicationLauncher : public QObject { Q_OBJECT + Q_PROPERTY(QString current READ current WRITE setCurrent NOTIFY currentChanged) public: explicit ApplicationLauncher(QObject *parent = NULL); ~ApplicationLauncher(); + QString current() const; + signals: void newAppRequestsToBeVisible(int pid); + void currentChanged(const QString ¤t); public slots: int launch(const QString &application); + void setCurrent(const QString ¤t); private: org::agl::appframework *mp_dBusAppFrameworkProxy; + QString m_current; }; #endif // APPLICATIONLAUNCHER_H |