131 lines
4.0 KiB
QML
131 lines
4.0 KiB
QML
import QtQuick 2.3
|
|
import QtQuick.Controls 2.3
|
|
import QtQuick.Layouts 1.1
|
|
import "qrc:/ui/components"
|
|
import "qrc:/ui/customviews"
|
|
import "qrc:/ui/delegates"
|
|
import Nymea 1.0
|
|
import NymeaApp.Utils 1.0
|
|
import Nymea.AirConditioning 1.0
|
|
|
|
NymeaDialog {
|
|
id: root
|
|
standardButtons: Dialog.NoButton
|
|
|
|
title: qsTr("Manual mode")
|
|
text: qsTr("Select how long the manual temperature setpoint should be kept.")
|
|
|
|
property AirConditioningManager acManager: null
|
|
property ZoneInfo zone: null
|
|
|
|
RadioButton {
|
|
id: eventualButton
|
|
Layout.fillWidth: true
|
|
text: qsTr("Eventual")
|
|
checked: root.zone.setpointOverrideMode == ZoneInfo.SetpointOverrideModeEventual
|
|
contentItem: ColumnLayout {
|
|
width: root.width
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: eventualButton.indicator.width + eventualButton.spacing
|
|
text: eventualButton.text
|
|
}
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: eventualButton.indicator.width + eventualButton.spacing
|
|
wrapMode: Text.WordWrap
|
|
text: qsTr("Until the temperature is changed by some other event.")
|
|
font: Style.smallFont
|
|
}
|
|
}
|
|
}
|
|
|
|
RadioButton {
|
|
id: foreverButton
|
|
Layout.fillWidth: true
|
|
text: qsTr("Forever")
|
|
checked: root.zone.setpointOverrideMode == ZoneInfo.SetpointOverrideModeUnlimited
|
|
contentItem: ColumnLayout {
|
|
width: root.width
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: foreverButton.indicator.width + foreverButton.spacing
|
|
text: foreverButton.text
|
|
}
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: foreverButton.indicator.width + foreverButton.spacing
|
|
wrapMode: Text.WordWrap
|
|
text: qsTr("Until manually removed or changed.")
|
|
font: Style.smallFont
|
|
}
|
|
}
|
|
}
|
|
RadioButton {
|
|
id: timeButton
|
|
text: qsTr("Time")
|
|
checked: root.zone.setpointOverrideMode == ZoneInfo.SetpointOverrideModeTimed
|
|
contentItem: ColumnLayout {
|
|
width: root.width
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: timeButton.indicator.width + timeButton.spacing
|
|
text: timeButton.text
|
|
}
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: timeButton.indicator.width + timeButton.spacing
|
|
wrapMode: Text.WordWrap
|
|
text: qsTr("For a specified amount of time.")
|
|
font: Style.smallFont
|
|
}
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
Layout.leftMargin: timeButton.indicator.width + timeButton.spacing
|
|
enabled: timeButton.checked
|
|
SpinBox {
|
|
from: 30
|
|
to: 30 * 2 * 12
|
|
stepSize: 30
|
|
value: 120
|
|
textFromValue: function(value) {
|
|
return Math.floor(value / 60) + ":" + NymeaUtils.pad(value % 60, 2)
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
Button {
|
|
text: qsTr("Remove")
|
|
onClicked: {
|
|
acManager.setZoneSetpointOverride(root.zone.id, root.zone.setpointOverride, ZoneInfo.SetpointOverrideModeNone, 0)
|
|
root.close();
|
|
}
|
|
}
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
Button {
|
|
text: qsTr("OK")
|
|
onClicked: {
|
|
var mode = ZoneInfo.SetpointOverrideModeEventual
|
|
if (foreverButton.checked) {
|
|
mode = ZoneInfo.SetpointOverrideModeUnlimited
|
|
} else if (timeButton.checked) {
|
|
mode = ZoneInfo.SetpointOverrideModeTimed
|
|
}
|
|
acManager.setZoneSetpointOverride(root.zone.id, root.zone.setpointOverride, mode, 120)
|
|
|
|
root.close();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|