summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTasuku Suzuki <tasuku.suzuki@qt.io>2016-12-20 20:17:10 +0900
committerTasuku Suzuki <tasuku.suzuki@qt.io>2016-12-20 20:17:10 +0900
commitc4242e92275d4309d3947ff28a7cd3b9f008d8c6 (patch)
treed75a24b47ec37647a54789f3bdaed58185eb3c1d
parent1ec9bfac42b0ddd9fb61449a1a8ecdd43b218185 (diff)
Fix highlight on Shortcut area
Change-Id: I426bcc55842711c1cd00d11163c12899c00a9e42 Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
-rw-r--r--HomeScreen/qml/ShortcutArea.qml7
-rw-r--r--HomeScreen/src2/applicationlauncher.cpp15
-rw-r--r--HomeScreen/src2/applicationlauncher.h6
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 &current)
+{
+ 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 &current);
public slots:
int launch(const QString &application);
+ void setCurrent(const QString &current);
private:
org::agl::appframework *mp_dBusAppFrameworkProxy;
+ QString m_current;
};
#endif // APPLICATIONLAUNCHER_H