-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.qml
86 lines (83 loc) · 2.36 KB
/
main.qml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// QMLeteroid - a QML clone of https://github.com/chaosdorf/meteroid
// Copyright (C) 2016 Niklas Sombert
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import QtQuick 2.5
import QtQuick.Window 2.2
import Qt.labs.settings 1.0
import io.thp.pyotherside 1.4
Window
{
id: window
width: 360
height: 360
title: "QMLeteroid"
visible: true
Loader
{
// Explicitly set the size of the
// Loader to the parent item's size
anchors.fill: parent
anchors.margins: 5
id: pageLoader
property string oldurl: ""
}
Settings
{
id: globalSettings
property int uid: -1
property string url: "http://mete"
property alias windowX: window.x
property alias windowY: window.x
property alias windowWidth: window.width
property alias windowHeight: window.height
}
Component.onCompleted:
{
Qt.application.name = "QMLeteroid";
Qt.application.organization = "Chaosdorf";
Qt.application.domain = "chaosdorf.de";
}
Python
{
//via https://pyotherside.readthedocs.io/en/latest/#loading-listmodel-data-from-python
id: py
property string errorText: ""
property bool isError: false
Component.onCompleted:
{
// Add the directory of this .qml file to the search path
addImportPath(Qt.resolvedUrl('.'));
// Import the main module and load the data
importModule('lib', function()
{
//globalSettings.uid = -1;
console.log("uid: " + globalSettings.uid);
pageLoader.source = globalSettings.uid == -1 ? "PickUsername.qml" : "BuyDrink.qml";
});
}
onError:
{
if(!this.isError) //only display one error
{
this.isError = true;
console.log("Error: " + traceback)
console.log("This has happened in: " + pageLoader.source);
this.errorText = traceback;
pageLoader.oldurl = pageLoader.source;
pageLoader.source = "Error.qml";
}
}
}
}