telldus/telldus-gui/Plugins/Sensors/SensorView.qml
2012-01-30 12:53:07 +01:00

140 lines
3.2 KiB
QML

import Qt 4.7
import QtDesktop 0.1
Item{
id: sensorViewItem
visible: state == "EDIT" || modelData.showInList
height: childrenRect.height
width: parent ? parent.width : 0
states:[
State {
name: "EDIT"
}
]
BorderImage {
source: "row_bg.png"
border.left: 5; border.top: 5
border.right: 5; border.bottom: 5
height: sensorInfo.height
width: parent.width
Text {
visible: sensorViewItem.state != "EDIT"
anchors.left: parent.left
anchors.leftMargin: 15
height: 40
verticalAlignment: Text.AlignVCenter
text: modelData.name == '' ? '<unnamed>' : modelData.name;
color: "#004275"
}
TextField {
id: nameEdit
visible: sensorViewItem.state == "EDIT"
anchors.left: parent.left
anchors.leftMargin: 15
anchors.top: parent.top
anchors.topMargin: (40-nameEdit.height)/2
text: modelData.name;
placeholderText: 'Enter a name'
onTextChanged: modelData.name = text
}
Item {
height: 40
width: deleteImg.width
anchors.right: sensorid.left
anchors.rightMargin: 15
visible: sensorViewItem.state == "EDIT"
Image {
id: deleteImg
anchors.centerIn: parent
source: "btn_action_remove.png"
MouseArea{
anchors.fill: parent
onClicked: {
main.focus = true
confirmDeletion.visible = true;
}
}
}
}
Text{
id: sensorid
anchors.right: model.left
visible: sensorViewItem.state == "EDIT"
height: 40
verticalAlignment: Text.AlignVCenter
text: modelData.id
color: "#004275"
width: 50
}
Text{
id: model
anchors.right: visibleinlistcheckbox.left
visible: sensorViewItem.state == "EDIT"
height: 40
verticalAlignment: Text.AlignVCenter
text: modelData.model
color: "#004275"
width: 100
}
Item {
id: visibleinlistcheckbox
height: 40
width: 100
anchors.right: sensorInfo.left
CheckBox {
id: checkBox
anchors.centerIn: parent
width: checkBox.height
visible: sensorViewItem.state == "EDIT"
checked: modelData.showInList
onClicked: modelData.setShowInList(!modelData.showInList)
}
}
Column {
id: sensorInfo
anchors.right: parent.right
width: 250
SensorValue {
visible: modelData.hasTemperature
text: visible ? modelData.sensorValue(1).value + '°C' : ''
icon: "icon_temp.png"
lastUpdated: visible ? modelData.sensorValue(1).lastUpdated : new Date()
}
SensorValue {
visible: modelData.hasHumidity
text: visible ? modelData.sensorValue(2).value + '%' : ''
icon: "icon_humidity.png"
lastUpdated: visible ? modelData.sensorValue(2).lastUpdated : new Date()
}
}
}
Dialog{
id: confirmDeletion
modal: true
title: "Confirm deletion"
Text{
id: descriptionHeadline
text:"Delete this sensor?"
font.bold: true
}
Text{
id: descriptionText
anchors.top: descriptionHeadline.bottom
anchors.topMargin: 10
width: parent.width - 20
anchors.left: parent.left
anchors.leftMargin: 10
text: "Please note that a sensor that is still transmitting will reappear here again, but it will be hidden in the list by default."
wrapMode: Text.Wrap
}
onAccepted: {
deleteSensor.callWith(modelData.protocol, modelData.model, modelData.id);
}
}
}