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/main.qml
2018-06-25 00:15:18 +02:00

110 lines
3.2 KiB
QML

import QtQuick 2.9
import QtQuick.Controls 2.2
ApplicationWindow {
id: window
visible: true
width: 540
height: 960
property bool is_error
property string error
property bool initdone: false
Timer {
//runs only one time at applictaion lauch
id: initTimer
interval: 1;
running: true
repeat: initdone === false
onTriggered: {
var init = _cppAppSettings.loadSetting("init")
if(init !== "1"){
stackView.push("qrc:/LoginPage.qml")
initdone = true
return
}
var perm = _cppAppSettings.loadSetting("permanent")
console.log("checkoldlogin", perm);
if(perm === "1"){
console.log("Perm")
var ret = _cppServerConn.login(_cppAppSettings.loadSetting("username"), _cppAppSettings.loadSetting("password"), true);
if(ret === "OK"){
_cppAppSettings.writeSetting("init", 1);
window.is_error = false;
}
else if(ret === "Keine Verbindung zum Server."){
handleError(0)
initTimer.interval = 100
return
}
else {
ret = _cppServerConn.checkConn()
handleError(ret)
}
}
else {
stackView.push("qrc:/LoginPage.qml")
}
initdone = true
}
}
Timer {
id: refreshTimer
interval: 1000;
running: initdone
repeat: true
onTriggered: {
var ret = _cppServerConn.checkConn()
handleError(ret)
}
}
StackView {
id: stackView
initialItem: "MainPage.qml"
anchors.fill: parent
}
function handleError(error_code){
if(error_code === 200){
window.is_error = false;
window.error = "";
}
else if(error_code === 401){
console.warn("401")
_cppAppSettings.writeSetting("permanent", 0)
_cppAppSettings.writeSetting("username", "")
_cppAppSettings.writeSetting("password", "")
if(["LoginPage"].indexOf(stackView.currentItem.objectName) < 0){
console.log("switching to login page")
stackView.push("qrc:/LoginPage.qml");
}
window.is_error = true;
window.error = "Nicht angemeldet!!";
}
else if(error_code === 500){
window.is_error = true;
window.error = "Interner Server Fehler!";
}
else if(error_code === 0){
window.is_error = true;
window.error = "Keine Verbindung zum Server!";
}
else if(error_code === 404){
//the testcon function calls a non existent file to be fast, so no error here
window.is_error = false;
}
else if(error_code === 111){
window.is_error = true;
window.error = "Unbekannter interner Fehler!";
}
else {
window.is_error = true;
window.error = "Unbekannter Fehler! ("+error_code+")";
}
}
}