diff options
author | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2016-12-20 19:18:49 +0900 |
---|---|---|
committer | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2016-12-20 19:22:58 +0900 |
commit | c70f97efea9b58490362692833104a6a5f23da89 (patch) | |
tree | ca43bb1d61fb2fdf16e6e814dd32870cb1f5bf7c /app | |
parent | 2f77037147a7609418c570c28ed02f0c1d31733f (diff) |
Add changing status icon in example
to test this, you need to add a conf file under /etc/dbus-1/session.d/
<?xml version="1.0"?>
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration
1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy context="default">
<allow send_destination="org.agl.homescreen"/>
</policy>
</busconfig>
Change-Id: I82c4b01db86ee54de87fad1db2ebf3f743b7c020
Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
Diffstat (limited to 'app')
-rw-r--r-- | app/SettingPage.qml | 4 | ||||
-rw-r--r-- | app/app.pro | 2 | ||||
-rw-r--r-- | app/example/Example.qml | 24 | ||||
-rw-r--r-- | app/main.cpp | 23 |
4 files changed, 49 insertions, 4 deletions
diff --git a/app/SettingPage.qml b/app/SettingPage.qml index 10aea21..ceed9f5 100644 --- a/app/SettingPage.qml +++ b/app/SettingPage.qml @@ -29,6 +29,10 @@ Page { parent.pop() } + function setStatusIcon(index, icon) { + dbus.setStatusIcon(index, icon) + } + Connections { target: root onCheckedChanged: { diff --git a/app/app.pro b/app/app.pro index b35e40e..fcfa050 100644 --- a/app/app.pro +++ b/app/app.pro @@ -1,5 +1,5 @@ TARGET = settings -QT = quickcontrols2 +QT = quickcontrols2 dbus SOURCES = main.cpp diff --git a/app/example/Example.qml b/app/example/Example.qml index 18e3efc..283b76b 100644 --- a/app/example/Example.qml +++ b/app/example/Example.qml @@ -32,14 +32,32 @@ SettingPage { RowLayout { spacing: 20 Button { - text: 'Sushi' + text: 'Wifi' highlighted: true + property int index: 0 + property var icons: ['HMI_Status_Wifi_NoBars-01', 'HMI_Status_Wifi_1Bar-01', 'HMI_Status_Wifi_2Bars-01', 'HMI_Status_Wifi_3Bars-01', 'HMI_Status_Wifi_Full-01'] + onClicked: { + index = (index + 1) % icons.length + setStatusIcon(0, 'qrc:/images/Status/%1.png'.arg(icons[index])) + } } Button { - text: 'Sashimi' + text: 'Bluetooth' + property int index: 0 + property var icons: ['HMI_Status_Bluetooth_Inactive-01', 'HMI_Status_Bluetooth_On-01'] + onClicked: { + index = (index + 1) % icons.length + setStatusIcon(1, 'qrc:/images/Status/%1.png'.arg(icons[index])) + } } Button { - text: 'Ramen' + text: 'Signal' + property int index: 0 + property var icons: ['HMI_Status_Signal_NoBars-01', 'HMI_Status_Signal_1Bars-01', 'HMI_Status_Signal_2Bars-01', 'HMI_Status_Signal_3Bars-01', 'HMI_Status_Signal_4Bars-01', 'HMI_Status_Signal_Full-01'] + onClicked: { + index = (index + 1) % icons.length + setStatusIcon(2, 'qrc:/images/Status/%1.png'.arg(icons[index])) + } } } diff --git a/app/main.cpp b/app/main.cpp index ff3ca1e..9c01cac 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -17,6 +17,8 @@ #include <QtCore/QDebug> #include <QtCore/QCommandLineParser> #include <QtCore/QUrlQuery> +#include <QtDBus/QDBusInterface> +#include <QtDBus/QDBusReply> #include <QtGui/QGuiApplication> #include <QtQml/QQmlApplicationEngine> #include <QtQml/QQmlContext> @@ -26,6 +28,23 @@ #include <libhomescreen.hpp> #endif +class DBus : public QObject +{ + Q_OBJECT +public: + DBus(QObject *parent = nullptr) + : QObject(parent) + , interface("org.agl.homescreen", "/StatusBar", "org.agl.statusbar", QDBusConnection::sessionBus()) + {} + + Q_INVOKABLE void setStatusIcon(int index, const QString &url) { + interface.call("setStatusIcon", index, url); + } + +private: + QDBusInterface interface; +}; + int main(int argc, char *argv[]) { #ifdef HAVE_LIBHOMESCREEN @@ -69,8 +88,12 @@ int main(int argc, char *argv[]) QQmlContext *context = engine.rootContext(); context->setContextProperty(QStringLiteral("bindingAddress"), bindingAddress); } + + DBus dbus; + engine.rootContext()->setContextProperty("dbus", &dbus); engine.load(QUrl(QStringLiteral("qrc:/Settings.qml"))); return app.exec(); } +#include "main.moc" |