This repository has been archived on 2022-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
fanny-app/qml/HomeForm.qml
2018-06-25 00:15:18 +02:00

163 lines
4.4 KiB
QML

import QtQuick 2.9
import QtQuick.Controls 2.2
Page {
anchors.fill: parent
title: qsTr("Vertretungsplan")
Label {
id: laWelcome
text: "Hier kannst du dir den Vertretungsplan des Fannys anschauen"
font.pixelSize: 20
wrapMode: Label.Wrap
width: window.width / 1.2
anchors {
top: parent.top
topMargin: window.height / 8 - laWelcome.height / 2
horizontalCenter: parent.horizontalCenter
}
}
Button {
id:buttToday
enabled: window.is_error === false
anchors {
left: parent.left
leftMargin: (window.width / 4) - (buttToday.width / 2)
verticalCenter: parent.verticalCenter
}
onClicked: {
verificationDialog.day = "sheute"
verificationDialog.open()
}
background: Image {
id: sheuteImage
source: "qrc:/graphics/sheute.png"
}
}
Button {
id: buttTomorrow
enabled: window.is_error === false
anchors {
right: parent.right
rightMargin: (window.width / 4) - (buttTomorrow.width / 2)
verticalCenter: parent.verticalCenter
}
onClicked: {
verificationDialog.day = "smorgen"
verificationDialog.open()
}
background: Image {
id: smorgenImage
source: "qrc:/graphics/smorgen.png"
}
}
Rectangle {
id: buttonsDisabled
anchors.left: buttToday.left
anchors.right: buttTomorrow.right
anchors.top: buttToday.top
anchors.bottom: buttToday.bottom
color: "white"
opacity: 0.7
visible: window.is_error
}
Dialog {
property string day
id: verificationDialog
modal: true
focus: true
title: "Bedingung"
x: (window.width - width) / 2
y: window.height / 6
width: Math.min(window.width, window.height) / 3 * 2
contentHeight: aboutColumn.height
standardButtons: Dialog.Ok | Dialog.Cancel
onAccepted: {
busyDialog.open()
text.visible = false
console.log("getting file of ", day)
var ret = _cppServerConn.getDay(day)
console.log(ret)
busyDialog.close()
text.visible = true
if(ret === "OK"){
return
}
else if(ret === "Ungültige Benutzerdaten."){
root.StackView.view.pop()
}
else {
error.text = ret
window.is_error = true
window.error = ret
error.visible = true
}
}
Column {
id: aboutColumn
spacing: 20
Label {
id: text
visible: true
width: verificationDialog.availableWidth
wrapMode: Label.Wrap
text: "Vertretungsplan, vertraulich, nur zum persönlichen Gebrauch, keine Speicherung!"
}
}
}
Dialog {
id: busyDialog
modal: true
closePolicy: "NoAutoClose"
focus: true
//title: "Please wait..."
x: (window.width - width) / 2
y: window.height / 6
//width: Math.min(window.width, window.height) / 3 * 2
height: contentHeight * 1.5
width: contentWidth * 1.5
contentHeight: busyIndicator.height
contentWidth: busyIndicator.width
BusyIndicator {
id: busyIndicator
visible: true
anchors.centerIn: parent
Label {
id: progress
anchors.centerIn: parent
text: _cppServerConn.getProgress()
}
Timer {
id: refreshTimer
interval: 1;
running: busyDialog.visible
repeat: true
onTriggered: {
var ret = _cppServerConn.getProgress()
progress.text = Math.round( ret * 100 ) + "%"
progressBar.value = ret
}
}
}
ProgressBar {
id: progressBar
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.topMargin: busyDialog.height / 1.5
}
}
}