diff options
Diffstat (limited to 'tests/manual/sensor_explorer_qml/sensor_explorer.qml')
-rw-r--r-- | tests/manual/sensor_explorer_qml/sensor_explorer.qml | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/manual/sensor_explorer_qml/sensor_explorer.qml b/tests/manual/sensor_explorer_qml/sensor_explorer.qml new file mode 100644 index 00000000..e80fb0a4 --- /dev/null +++ b/tests/manual/sensor_explorer_qml/sensor_explorer.qml @@ -0,0 +1,119 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +import QtQuick +import QtQuick.Window +import QtQuick.Controls +import QtQuick.Layouts + +import SensorModels + +Window { + id: window + width: 400 + height: 600 + + AvailableSensorsModel { + id: availableSensorsModel + } + + ColumnLayout { + + GroupBox { + id: availableSensorsModelGroup + title: qsTr("Available Sensors") + Layout.preferredWidth: window.width - 4 // 4 = 2x2 margins + Layout.preferredHeight: window.height * 0.4 + Layout.margins: 2 + + ListView { + id: sensorsView + anchors.fill: parent + currentIndex: -1 // no initial selection + spacing: 1 + clip: true + model: availableSensorsModel + delegate: Item { + id: sensorRow + width: sensorsView.width + height: 30 + property color rowColor: { + if (sensorsView.currentIndex == index) + return "lightsteelblue" // highlight + return (index % 2 == 0) ? "#CCCCCC" : "#AAAAAA" + } + RowLayout { + spacing: 1 + anchors.fill: parent + Rectangle { + color: sensorRow.rowColor + Layout.preferredWidth: sensorRow.width * 0.8 + Layout.preferredHeight: sensorRow.height + Text { + anchors.centerIn: parent + text: display.type + "::" + display.identifier + } + } + Rectangle { + color: sensorRow.rowColor + Layout.preferredWidth: sensorRow.width * 0.2 + Layout.preferredHeight: sensorRow.height + Text { + anchors.centerIn: parent + text: display.active ? qsTr("Active") : qsTr("Inactive") + } + } + } + MouseArea { + anchors.fill: parent + onClicked: sensorsView.currentIndex = index + } + } + } + } + + SensorPropertyModel { + id: propertyModel + sensor: availableSensorsModel.get(sensorsView.currentIndex) + } + + Button { + id: activateButton + Layout.preferredHeight: 30 + Layout.alignment: Qt.AlignCenter + enabled: propertyModel.sensor + text: !propertyModel.sensor ? qsTr("Select sensor") + : (propertyModel.sensor.active ? qsTr("Deactivate sensor") + : qsTr("Activate sensor")) + onClicked: propertyModel.sensor.active = !propertyModel.sensor.active + } + + GroupBox { + title: qsTr("Selected sensor's properties") + Layout.preferredWidth: window.width - 4 // 4 = 2x2 margins + Layout.preferredHeight: window.height * 0.55 - activateButton.height + Layout.margins: 2 + enabled: sensorsView.currentIndex != -1 + + TableView { + id: propertyView + anchors.fill: parent + model: propertyModel + columnSpacing: 1 + rowSpacing: 1 + boundsMovement: Flickable.StopAtBounds + clip: true + + delegate: Rectangle { + implicitHeight: 30 + implicitWidth: propertyView.width * 0.5 + color: (model.row % 2 == 0) ? "#CCCCCC" : "#AAAAAA" + Text { + anchors.centerIn: parent + text: display + } + } + } + } + } +} |