}
}
}
+
+ ColumnLayout {
+ Layout.fillWidth: true
+ spacing: 20
+ ToggleButton {
+ onImage: './images/HMI_HVAC_Active.svg'
+ offImage: './images/HMI_HVAC_Inactive.svg'
+ Label {
+ anchors.centerIn: parent
+ color: parent.checked ? '#00ADDC' : '#848286'
+ text: translator.translate(qsTr('Split Right'), translator.language)
+ font.pixelSize: parent.height / 4
+ }
+ onCheckedChanged: {
+ console.debug('Split on the right', checked)
+ homescreenHandler.setOrientation("hvac", 2)
+ }
+ }
+ ToggleButton {
+ onImage: './images/HMI_HVAC_Active.svg'
+ offImage: './images/HMI_HVAC_Inactive.svg'
+ Label {
+ anchors.centerIn: parent
+ color: parent.checked ? '#00ADDC' : '#848286'
+ text: translator.translate(qsTr('Split Top'), translator.language)
+ font.pixelSize: parent.height / 4
+ }
+ onCheckedChanged: {
+ console.debug('Split on top', checked)
+ homescreenHandler.setOrientation("hvac", 3)
+ }
+ }
+ }
}
RowLayout {
TEMPLATE = app
TARGET = hvac
-QT = qml quick
+QT = qml quick dbus
CONFIG += c++11 link_pkgconfig
+DBUS_INTERFACES = $$[QT_SYSROOT]/usr/share/dbus-1/interfaces/org.automotivelinux.AppLaunch.xml
+
PKGCONFIG += qtappfw-hvac qtappfw-vehicle-signals
HEADERS += \
+ homescreenhandler.h \
translator.h
SOURCES = \
main.cpp \
- translator.cpp
+ homescreenhandler.cpp \
+ translator.cpp \
RESOURCES += \
hvac.qrc \
--- /dev/null
+/*
+ * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2018,2019 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <QDBusMessage>
+#include <QDBusConnection>
+#include "homescreenhandler.h"
+
+#define APPLAUNCH_DBUS_IFACE "org.automotivelinux.AppLaunch"
+#define APPLAUNCH_DBUS_OBJECT "/org/automotivelinux/AppLaunch"
+
+HomescreenHandler::HomescreenHandler(QObject *parent) : QObject(parent)
+{
+ applaunch_iface = new org::automotivelinux::AppLaunch(APPLAUNCH_DBUS_IFACE, APPLAUNCH_DBUS_OBJECT, QDBusConnection::sessionBus(), this);
+}
+
+HomescreenHandler::~HomescreenHandler()
+{
+}
+
+void HomescreenHandler::setOrientation(QString application_id, uint32_t orientation)
+{
+ QDBusPendingReply<> reply = applaunch_iface->split(application_id, orientation);
+ reply.waitForFinished();
+ if (reply.isError()) {
+ fprintf(stderr, "HVAC: Unable to split application '%s': %s",
+ application_id.toStdString().c_str(),
+ reply.error().message().toStdString().c_str());
+ }
+
+ fprintf(stderr, "hvac done calling set split for appid %s, orientation %d\n",
+ application_id.toStdString().c_str(), orientation);
+}
--- /dev/null
+/*
+ * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2018,2019 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef HOMESCREENHANDLER_H
+#define HOMESCREENHANDLER_H
+
+#include <QObject>
+#include <QString>
+#include <QStringList>
+#include <string>
+
+#include "applaunch_interface.h"
+
+using namespace std;
+
+class HomescreenHandler : public QObject
+{
+ Q_OBJECT
+public:
+ explicit HomescreenHandler(QObject *parent = 0);
+ ~HomescreenHandler();
+
+ Q_INVOKABLE void setOrientation(QString application_id, uint32_t orientation);
+ void onRep(struct json_object* reply_contents);
+
+private:
+ org::automotivelinux::AppLaunch *applaunch_iface;
+};
+
+#endif // HOMESCREENHANDLER_H
#include <QDebug>
#include <hvac.h>
#include <vehiclesignals.h>
+#include "homescreenhandler.h"
+
#include "translator.h"
{
setenv("QT_QUICK_CONTROLS_STYLE", "AGL", 1);
+ HomescreenHandler* homescreenHandler = new HomescreenHandler();
+ if (argc > 1) {
+ int orientation = strtoul(argv[1], NULL, 10);
+
+ fprintf(stderr, "Starting HVAC in tiled orientation %d\n",
+ orientation);
+ homescreenHandler->setOrientation("hvac", orientation);
+ }
+
QGuiApplication app(argc, argv);
+
QQmlApplicationEngine engine;
VehicleSignalsConfig vsConfig("hvac");
engine.rootContext()->setContextProperty("hvac", new HVAC(new VehicleSignals(vsConfig)));
+ engine.rootContext()->setContextProperty("homescreenHandler", homescreenHandler);
qmlRegisterType<Translator>("Translator", 1, 0, "Translator");
engine.load(QUrl(QStringLiteral("qrc:/HVAC.qml")));