From 21e639525499b1653f6f021afd1f9914b14b94b3 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Tue, 2 Jun 2020 15:47:00 -0400 Subject: [PATCH] Add missing resources. --- src/contents/ui/main.qml | 257 +++++++++++++++++++++++++++++++++++++++ src/resources.qrc | 5 + 2 files changed, 262 insertions(+) create mode 100644 src/contents/ui/main.qml create mode 100644 src/resources.qrc diff --git a/src/contents/ui/main.qml b/src/contents/ui/main.qml new file mode 100644 index 0000000..06a5cb7 --- /dev/null +++ b/src/contents/ui/main.qml @@ -0,0 +1,257 @@ +import QtQuick 2.6 +import org.kde.kirigami 2.6 as Kirigami +import QtQuick.Controls 2.0 as Controls +import QtQuick.Layouts 1.12 as Layouts + +Kirigami.ApplicationWindow { + id: root + + title: "Vehicle Voyage" + + + pageStack.initialPage: mainPageComponent + contextDrawer: Kirigami.ContextDrawer {} + /* + + Component { + id: mainPageComponent + + Kirigami.Page { + id: mainPage + mainAction: Kirigami.Action { + iconName: "view-refresh" + text: qsTr("Query Device") + onTriggered: { + deviceSelect.open(); + } + } + contextualActions: [ + Kirigami.Action { + iconName: "help-about" + text: qsTr("About") + onTriggered: { + pageStack.replace(aboutPageComponent); + } + } + ] + title: "Monitor" + leftPadding: 0 + rightPadding: 0 + + Layouts.ColumnLayout { + anchors.fill: parent + Kirigami.InlineMessage { + Layouts.Layout.fillWidth: true + Layouts.Layout.leftMargin: 10 + Layouts.Layout.rightMargin: 10 + z: 9997 + type: Kirigami.MessageType.Error + id: errorMessage + showCloseButton: true + Connections { + target: qiflora + onErrorHappened: { + errorMessage.text = description; + errorMessage.visible = true; + } + } + } + + Kirigami.CardsListView { + Layouts.Layout.fillWidth: true + Layouts.Layout.fillHeight: true + id: monitorView + model: ListModel { + id: monitorTypes + ListElement{ + chartType: "temperature" + title: "Temperature" + icon: "filename-bpm-amarok" + lineColor: "red" + units: "°C" + yMin: -20 + yMax: 40 + modelCol: 1 + } + ListElement{ + chartType: "moisture" + title: "Moisture" + icon: "colors-chromablue" + lineColor: "cyan" + units: "%" + yMin: 0 + yMax: 75 + modelCol: 3 + } + ListElement{ + chartType: "conductivity" + title: "Conductivity" + icon: "quickopen" + lineColor: "gold" + units: "µS/cm" + yMin: 0 + yMax: 6000 + modelCol: 4 + } + ListElement{ + chartType: "brightness" + title: "Brightness" + icon: "contrast" + lineColor: "orange" + units: "lux" + yMin: 0 + yMax: 30000 + modelCol: 2 + } + } + + delegate: Kirigami.Card { + id: card + banner { + title: qsTr(model.title) + titleIcon: model.icon + titleLevel: 2 + } + header: Row { + layoutDirection: Qt.RightToLeft + topPadding: 10.0 + rightPadding: 10.0 + Layouts.ColumnLayout { + Kirigami.Heading { + Layouts.Layout.alignment: Qt.AlignCenter + level: 4 + text: qsTr("Last Measured") + } + Kirigami.Heading { + Layouts.Layout.alignment: Qt.AlignCenter + level: 3 + text: { + if(model.chartType == "temperature") Math.round(qiflora.temperature*10)/10 + "°C\n" + (Math.round((qiflora.temperature*1.8+32)*10)/10) + "°F" + else if(model.chartType == "moisture") qiflora.moisture + "%" + else if(model.chartType == "conductivity") qiflora.conduction + " µS/cm" + else if(model.chartType == "brightness") qiflora.brightness + " lux" + } + } + } + } + contentItem: Item { + implicitWidth: 300 + implicitHeight: 200 + Charts.ChartView { + id: chart + antialiasing: true + backgroundColor: Kirigami.Theme.buttonBackgroundColor + titleColor: Kirigami.Theme.textColor + legend.visible: false + anchors.fill: parent + + Charts.LineSeries { + id: series + axisX: Charts.DateTimeAxis { + id: dateAx + labelsColor: Kirigami.Theme.textColor + format: "MMM d yyyy ha" + + Component.onCompleted: { + //On load, change date span to last 24 to remove awkward 1969 empty dates. + var yesterday = new Date(); + yesterday.setDate(yesterday.getDate() -1); + dateAx.min = yesterday; + dateAx.max = new Date(); + } + } + axisY: Charts.ValueAxis { + id: valueAx + labelFormat: "%d "+units + labelsColor: Kirigami.Theme.textColor + min: yMin + max: yMax + } + color: model.lineColor + name: model.title + + Charts.VXYModelMapper { + model: qiflora.model + xColumn: 0 + yColumn: modelCol + + } + } + Connections { + target: qiflora.model + onRowsInserted: { + //Readjust graphs to show date range from earliest item. + dateAx.max = new Date(); + dateAx.min = qiflora.model.data(qiflora.model.index(0,0)); + } + } + } + } + } + Controls.ScrollBar.vertical: Controls.ScrollBar {} + } + } + + Kirigami.OverlaySheet { + id: deviceSelect + showCloseButton: false + contentItem: ListView { + header: Column { + Rectangle { + height: 10 + color: "transparent" + } + Kirigami.Heading { + text: qsTr("Select Device to Query") + } + Rectangle { + height: 10 + color: "transparent" + } + } + id: deviceList + model: qiflora.devices + delegate: Kirigami.AbstractListItem { + Layouts.ColumnLayout { + Kirigami.Heading { + text:model.modelData.name + level: 2 + } + Kirigami.Heading { + text:model.modelData.address + level: 5 + } + } + onClicked: { + qiflora.updateDataFromDevice(model.modelData.address); + deviceSelect.close(); + } + } + } + onSheetOpenChanged: { + if(!sheetOpen) { + qiflora.stopSearch(); + } else { + qiflora.startSearch(); + } + } + } + } + } + + Component { + id:aboutPageComponent + Kirigami.AboutPage { + id: aboutPage + actions.main: Kirigami.Action { + iconName: "window-close" + text: qsTr("Close") + onTriggered: { + pageStack.clear(); + pageStack.push(mainPageComponent); + } + } + aboutData: appAboutData + } + }*/ +} diff --git a/src/resources.qrc b/src/resources.qrc new file mode 100644 index 0000000..b2b45f8 --- /dev/null +++ b/src/resources.qrc @@ -0,0 +1,5 @@ + + + contents/ui/main.qml + +