diff options
author | Arseniy Movshev <dodoradio@outlook.com> | 2023-07-02 11:01:50 +0100 |
---|---|---|
committer | Arseniy Movshev <dodoradio@outlook.com> | 2023-07-02 11:20:42 +0100 |
commit | 67d83fe28cd71686cbfa2a6561c51c053b16d06d (patch) | |
tree | adede938d9308ee27492c094e1abeb2c121828bc /src/settings | |
parent | deb5c14eed66b5e0d819136959345f43f7f925d0 (diff) |
Split settings into separate pages in preparation for further customisation settings
UI page is currently empty
Diffstat (limited to 'src/settings')
-rw-r--r-- | src/settings/LoggerSettingsPage.qml | 107 | ||||
-rw-r--r-- | src/settings/RootSettingsPage.qml | 62 | ||||
-rw-r--r-- | src/settings/UiSettingsPage.qml | 39 |
3 files changed, 208 insertions, 0 deletions
diff --git a/src/settings/LoggerSettingsPage.qml b/src/settings/LoggerSettingsPage.qml new file mode 100644 index 0000000..6d5cb36 --- /dev/null +++ b/src/settings/LoggerSettingsPage.qml @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2023 Arseniy Movshev <dodoradio@outlook.com> + * 2019 Florent Revest <revestflo@gmail.com> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +import QtQuick 2.15 +import org.asteroid.controls 1.0 + +import org.asteroid.sensorlogd 1.0 + +Item { + PageHeader { + text: "Logger Settings" + z: 5 + } + Flickable { + anchors.fill: parent + contentHeight: contentColumn.implicitHeight + Column { + id: contentColumn + anchors.fill: parent + + Item { width: parent.width; height: parent.width*0.2} + + LabeledSwitch { + id: stepsEnableSwitch + width: parent.width + height: width*0.25 + text: "Log step count" + Component.onCompleted: checked = loggerSettings.stepCounterEnabled + } + IntSelector { + id: stepsIntervalSelector + width: parent.width + height: width*0.25 + value: loggerSettings.stepCounterInterval/60000 + min: 5 + max: 60 + stepSize: 1 + unitMarker: "m" + } + LabeledSwitch { + id: stepsGoalEnableSwitch + width: parent.width + height: width*0.25 + text: "Enable steps goal" + Component.onCompleted: checked = loggerSettings.stepGoalEnabled + } + IntSelector { + id: stepsGoalSelector + width: parent.width + height: width*0.25 + value: loggerSettings.stepGoalTarget + min: 500 + max: 50000 + stepSize: 500 + unitMarker: " steps" + } + LabeledSwitch { + id: hrEnableSwitch + width: parent.width + height: width*0.25 + text: "Log heart rate" + Component.onCompleted: checked = loggerSettings.heartrateSensorEnabled + } + IntSelector { + id: hrIntervalSelector + width: parent.width + height: width*0.25 + value: loggerSettings.heartrateSensorInterval/60000 + min: 5 + max: 60 + stepSize: 1 + unitMarker: "m" + } + IconButton { + iconName: "ios-checkmark-circle-outline" + height: parent.width*0.2 + width: height + anchors.horizontalCenter: parent.horizontalCenter + onClicked: { + loggerSettings.stepCounterEnabled = stepsEnableSwitch.checked + loggerSettings.stepCounterInterval = stepsIntervalSelector.value*60000 + loggerSettings.stepGoalEnabled = stepsGoalEnableSwitch.checked + loggerSettings.stepGoalTarget = stepsGoalSelector.value + loggerSettings.heartrateSensorEnabled = hrEnableSwitch.checked + loggerSettings.heartrateSensorInterval = hrIntervalSelector.value*60000 + loggerSettings.reInitLogger() + pageStack.pop(pageStack.currentLayer) + } + } + } + } +} diff --git a/src/settings/RootSettingsPage.qml b/src/settings/RootSettingsPage.qml new file mode 100644 index 0000000..8e0504d --- /dev/null +++ b/src/settings/RootSettingsPage.qml @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2023 Arseniy Movshev <dodoradio@outlook.com> + * 2019 Florent Revest <revestflo@gmail.com> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +import QtQuick 2.15 +import org.asteroid.controls 1.0 + +import org.asteroid.sensorlogd 1.0 + +Item { + PageHeader { + text: "Settings" + z: 5 + } + Flickable { + anchors.fill: parent + contentHeight: contentColumn.implicitHeight + Column { + id: contentColumn + anchors.fill: parent + + Item { width: parent.width; height: parent.width*0.2} + + ListItem { + title: "UI settings" + iconName: "ios-settings-outline" + onClicked: pageStack.push(uiSettingsPage) + } + ListItem { + title: "Logger settings" + iconName: "ios-settings-outline" + onClicked: pageStack.push(loggerSettingsPage) + } + + Item { width: parent.width; height: parent.width*0.2} + } + } + Component { + id: uiSettingsPage + UiSettingsPage { + } + } + Component { + id: loggerSettingsPage + LoggerSettingsPage { + } + } +} diff --git a/src/settings/UiSettingsPage.qml b/src/settings/UiSettingsPage.qml new file mode 100644 index 0000000..8abea6c --- /dev/null +++ b/src/settings/UiSettingsPage.qml @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 Arseniy Movshev <dodoradio@outlook.com> + * 2019 Florent Revest <revestflo@gmail.com> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +import QtQuick 2.15 +import org.asteroid.controls 1.0 + +import org.asteroid.sensorlogd 1.0 + +Item { + PageHeader { + text: "UI Settings" + z: 5 + } + Flickable { + anchors.fill: parent + contentHeight: contentColumn.implicitHeight + Column { + id: contentColumn + anchors.fill: parent + + Item { width: parent.width; height: parent.width*0.2} + } + } +} |