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/Forms/HomeForm.qml

211 lines
5.7 KiB
QML
Raw Normal View History

2018-06-21 08:47:09 +02:00
import QtQuick 2.9
import QtQuick.Controls 2.2
2018-06-25 10:04:11 +02:00
import QtGraphicalEffects 1.0
2018-06-21 08:47:09 +02:00
import "../Components"
2018-06-21 08:47:09 +02:00
Page {
2018-07-06 13:29:16 +02:00
//anchors.fill: parent
2018-06-21 08:47:09 +02:00
2018-06-21 16:41:02 +02:00
title: qsTr("Vertretungsplan")
2018-07-19 20:08:46 +02:00
property string icon: "qrc:/graphics/FannyLogo_small.png"
property string link: "http://www.fanny-leicht.de/j34"
2018-06-21 08:47:09 +02:00
2018-06-25 10:04:11 +02:00
// Image{
// source: "qrc:/graphics/chat_background.jpg";
// height: parent.height
// width: parent.width
// fillMode: Image.Tile
// horizontalAlignment: Image.AlignLeft
// verticalAlignment: Image.AlignTop
// }
// LinearGradient {
// anchors.fill: parent
// start: Qt.point(0, 0)
// end: Qt.point(0, parent.height)
// gradient: Gradient {
// GradientStop { position: 0.0; color: "#4db2b3" }
// GradientStop { position: 1.0; color: "#8f4dae" }
// }
// }
2018-06-25 10:04:11 +02:00
2018-06-21 08:47:09 +02:00
Label {
2018-06-21 16:41:02 +02:00
id: laWelcome
2018-06-21 22:42:16 +02:00
text: "Hier kannst du dir den Vertretungsplan des Fannys anschauen"
2018-06-21 16:41:02 +02:00
font.pixelSize: 20
wrapMode: Label.Wrap
width: window.width / 1.2
color: app.text_color
2018-06-21 16:41:02 +02:00
anchors {
top: parent.top
topMargin: window.height / 8 - laWelcome.height / 2
horizontalCenter: parent.horizontalCenter
}
}
Button {
id:buttToday
2018-06-25 00:15:18 +02:00
enabled: window.is_error === false
2018-06-21 16:41:02 +02:00
anchors {
left: parent.left
leftMargin: (window.width / 4) - (buttToday.width / 2)
verticalCenter: parent.verticalCenter
}
onClicked: {
verificationDialog.day = "sheute"
verificationDialog.open()
}
onPressed: sheuteImage.scale = 0.9
onReleased: sheuteImage.scale = 1.0
2018-06-21 16:41:02 +02:00
background: Image {
id: sheuteImage
source: "qrc:/graphics/sheute.png"
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
2018-06-21 16:41:02 +02:00
}
}
Button {
id: buttTomorrow
2018-06-25 00:15:18 +02:00
enabled: window.is_error === false
2018-06-21 16:41:02 +02:00
anchors {
right: parent.right
rightMargin: (window.width / 4) - (buttTomorrow.width / 2)
verticalCenter: parent.verticalCenter
}
onClicked: {
verificationDialog.day = "smorgen"
verificationDialog.open()
}
onPressed: smorgenImage.scale = 0.9
onReleased: smorgenImage.scale = 1.0
2018-06-21 16:41:02 +02:00
background: Image {
id: smorgenImage
source: "qrc:/graphics/smorgen.png"
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
2018-06-21 16:41:02 +02:00
}
2018-06-21 08:47:09 +02:00
}
2018-06-25 00:15:18 +02:00
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: app.is_error
2018-06-25 00:15:18 +02:00
}
2018-06-21 16:41:02 +02:00
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: {
2018-06-30 20:59:42 +02:00
_cppServerConn.updateProgress(0,100)
2018-06-21 16:41:02 +02:00
busyDialog.open()
text.visible = false
var ret = _cppServerConn.getDay(day)
2018-06-30 20:59:42 +02:00
progressCircle.arcEnd = 36000
progress.text = "100%"
2018-06-21 16:41:02 +02:00
busyDialog.close()
text.visible = true
if(ret.startsWith("OK")){
var path = ret.replace("OK_", "");
Qt.openUrlExternally(path);
2018-06-21 16:41:02 +02:00
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
2018-06-30 20:59:42 +02:00
contentHeight: progressCircle.height
contentWidth: progressCircle.width
ProgressCircle {
id: progressCircle
size: 50
lineWidth: 5
2018-06-21 16:41:02 +02:00
anchors.centerIn: parent
2018-06-30 20:59:42 +02:00
colorCircle: "#FF3333"
colorBackground: "#E6E6E6"
showBackground: true
arcBegin: 0
arcEnd: 0
Label {
id: progress
anchors.centerIn: parent
text: "0%"
}
Timer {
id: refreshTimer
interval: 1;
running: busyDialog.visible
repeat: true
onTriggered: {
var ret = _cppServerConn.getProgress()
progressCircle.arcEnd = 360 * ret * 1.2
progress.text = Math.round( ret * 100 ) + "%"
}
}
2018-06-21 16:41:02 +02:00
}
}
2018-06-21 08:47:09 +02:00
}