127 lines
2.5 KiB
QML
127 lines
2.5 KiB
QML
import QtQuick 2.9
|
|
import QtQuick.Controls 2.2
|
|
import Qt.labs.settings 1.0
|
|
|
|
ApplicationWindow {
|
|
id: window
|
|
|
|
visible: true
|
|
width: 640
|
|
height: 480
|
|
title: qsTr("Stack")
|
|
|
|
Settings {
|
|
id: settings
|
|
|
|
property string serviceUrl: ""
|
|
}
|
|
|
|
LightsModel {
|
|
id: lightsModel
|
|
|
|
serviceUrl: settings.serviceUrl
|
|
|
|
onError: stackView.showError(text)
|
|
}
|
|
|
|
header: ToolBar {
|
|
contentHeight: 36
|
|
|
|
MenuBackButton {
|
|
id: menuButton
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 8
|
|
|
|
width: 24
|
|
height: 24
|
|
|
|
state: stackView.depth > 1 ? "back" : "menu"
|
|
|
|
onClicked: {
|
|
drawer.open()
|
|
}
|
|
|
|
onBack: {
|
|
stackView.pop()
|
|
}
|
|
}
|
|
|
|
Label {
|
|
text: stackView.currentItem.title
|
|
anchors.centerIn: parent
|
|
}
|
|
}
|
|
|
|
Drawer {
|
|
id: drawer
|
|
width: window.width * 0.66
|
|
height: window.height
|
|
|
|
Column {
|
|
anchors.fill: parent
|
|
|
|
Row {
|
|
width: parent.width
|
|
height: 100
|
|
|
|
Image {
|
|
anchors.top: parent.top
|
|
anchors.bottom: parent.bottom
|
|
anchors.margins: 10
|
|
source: "lamp.png"
|
|
}
|
|
|
|
Label {
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
font.pointSize: 20
|
|
text: qsTr("nooLight v0.1")
|
|
}
|
|
}
|
|
|
|
ItemDelegate {
|
|
text: qsTr("Service")
|
|
width: parent.width
|
|
onClicked: {
|
|
stackView.openPage("ServiceForm.qml")
|
|
}
|
|
}
|
|
|
|
ItemDelegate {
|
|
text: qsTr("Settings")
|
|
width: parent.width
|
|
onClicked: {
|
|
stackView.openPage("SettingsForm.qml")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
StackView {
|
|
id: stackView
|
|
initialItem: "HomeForm.qml"
|
|
anchors.fill: parent
|
|
|
|
function openPage(page) {
|
|
if (depth > 1) {
|
|
pop()
|
|
}
|
|
|
|
push(page)
|
|
drawer.close()
|
|
}
|
|
|
|
function showError(text) {
|
|
ToolTip.show(text, 1000)
|
|
}
|
|
}
|
|
|
|
onClosing: {
|
|
if (stackView.depth > 1) {
|
|
close.accepted = false
|
|
stackView.pop()
|
|
}
|
|
}
|
|
}
|