From 80477423d8468439721092bdef6e277efd3bcce8 Mon Sep 17 00:00:00 2001 From: Arseniy Movshev Date: Sun, 2 Jul 2023 16:31:18 +0100 Subject: Add detail view page for weight --- src/weight/WeightDetailPage.qml | 133 ++++++++++++++++++++++++++++++++++++++++ src/weight/WeightPreview.qml | 46 ++++++++------ 2 files changed, 161 insertions(+), 18 deletions(-) create mode 100644 src/weight/WeightDetailPage.qml (limited to 'src/weight') diff --git a/src/weight/WeightDetailPage.qml b/src/weight/WeightDetailPage.qml new file mode 100644 index 0000000..30852e9 --- /dev/null +++ b/src/weight/WeightDetailPage.qml @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2023 Arseniy Movshev + * 2019 Florent Revest + * 2016 Sylvia van Os + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import QtQuick 2.15 +import org.asteroid.controls 1.0 + +import org.asteroid.sensorlogd 1.0 + +import "../graphs" + +Item { + PageHeader { + id: title + text: "Weight" + z: 5 + } + Flickable { + z: 1 + anchors.fill: parent + contentHeight: contentColumn.implicitHeight + Column { + id: contentColumn + anchors.fill: parent + + Item { width: parent.width; height: parent.width*0.2} + + WeightGraph { + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width*0.9 + height: app.height*2/3 + Component.onCompleted: { + var d = new Date() + endTime = d + d.setDate(d.getDate() - 30) + startTime = d + } + } + + LabeledActionButton { + text: "Add record" + icon: "ios-add-circle-outline" + width: parent.width + height: width*0.2 + onClicked: pageStack.push(newRecordDialog) + } + + Item { width: parent.width; height: parent.width*0.2} + } + } + Component { + id: newRecordDialog + Item { + id: root + WeightDataLoader { + id: weightDataLoader + } + + Row { + id: weightSelector + anchors { + left: parent.left + leftMargin: DeviceInfo.hasRoundScreen ? Dims.w(5) : 0 + right: parent.right + rightMargin: DeviceInfo.hasRoundScreen ? Dims.w(5) : 0 + verticalCenter: parent.verticalCenter + } + height: parent.height*0.6 + + CircularSpinner { + id: tensSelector + height: parent.height + width: parent.width/3 + model: 20 + showSeparator: false + delegate: SpinnerDelegate { text: index } + } + CircularSpinner { + id: onesSelector + height: parent.height + width: parent.width/3 + model: 10 + showSeparator: true + delegate: SpinnerDelegate { text: index } + } + CircularSpinner { + id: tenthsSelector + height: parent.height + width: parent.width/3 + model: 10 + showSeparator: false + delegate: SpinnerDelegate { text: index } + } + } + + Component.onCompleted: { + var currValue = 0; + tensSelector.currentIndex = Math.floor(currValue/10) + onesSelector.currentIndex = Math.floor(currValue%10) + tenthsSelector.currentIndex = Math.floor((currValue*10)%10) + } + + IconButton { + iconName: "ios-checkmark-circle-outline" + anchors { + bottom: parent.bottom + horizontalCenter: parent.horizontalCenter + bottomMargin: Dims.iconButtonMargin + } + + onClicked: { + weightDataLoader.addDataPoint(tensSelector.currentIndex*10+onesSelector.currentIndex+tenthsSelector.currentIndex*0.1) + pageStack.pop(pageStack.currentLayer) + } + } + } + } +} diff --git a/src/weight/WeightPreview.qml b/src/weight/WeightPreview.qml index 7c6d1a8..14bf0e2 100644 --- a/src/weight/WeightPreview.qml +++ b/src/weight/WeightPreview.qml @@ -22,27 +22,37 @@ import org.asteroid.controls 1.0 import org.asteroid.sensorlogd 1.0 import "../graphs" - -Column { - Label { - anchors { - left: parent.left - margins: app.width*0.1 +MouseArea { + height: column.implicitHeight + onClicked: pageStack.push(weightDetailPage) + Column { + id: column + anchors.fill: parent + Label { + anchors { + left: parent.left + margins: app.width*0.1 + } + text: "Weight" } - text: "Weight" - } - Item { width: parent.width; height: parent.width*0.1} + Item { width: parent.width; height: parent.width*0.1} - WeightGraph { - anchors.horizontalCenter: parent.horizontalCenter - width: parent.width*0.9 - height: app.height*2/3 - Component.onCompleted: { - var d = new Date() - endTime = d - d.setDate(d.getDate() - 30) - startTime = d + WeightGraph { + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width*0.9 + height: app.height*2/3 + Component.onCompleted: { + var d = new Date() + endTime = d + d.setDate(d.getDate() - 30) + startTime = d + } } } + + Component { + id: weightDetailPage + WeightDetailPage {} + } } -- cgit v1.2.3-54-g00ecf