Http Version - Initial Commit
This commit is contained in:
commit
026ea97284
1 changed files with 978 additions and 0 deletions
156
Main.qml
Normal file
156
Main.qml
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
import QtQuick
|
||||
import WaterLevelRewrite
|
||||
import QtQuick.Effects
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Controls.Material
|
||||
|
||||
Window {
|
||||
width: 640
|
||||
height: 1080
|
||||
visible: true
|
||||
title: qsTr("Water Level Rewrite")
|
||||
id: root
|
||||
property color accent_color: "#F05FAF5F"
|
||||
property color dark_accent_color: "#FF5F7F5F"
|
||||
property color danger_color: "#F0AF2F1F"
|
||||
property color water_color: "#F00F7FAF"
|
||||
property color background_color: "#1F1F1F"
|
||||
Material.accent: root.accent_color
|
||||
property int font_enlarged_text_size: 20
|
||||
property int font_normal_text_size: 16
|
||||
property int distance_count_thres: 3
|
||||
property string mode: "http"
|
||||
property string status: "Initializing"
|
||||
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: root.background_color
|
||||
|
||||
Rectangle {
|
||||
id: top_bar
|
||||
height: Math.min(root.height / 12, 100)
|
||||
width: root.width
|
||||
anchors {
|
||||
top: parent.top
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
topMargin: 25
|
||||
}
|
||||
color: "#0A0F0F0F"
|
||||
SettingsBarIcon {
|
||||
height: top_bar.height - 20
|
||||
width: top_bar.width / 12
|
||||
anchors {
|
||||
top: parent.top
|
||||
left: parent.left
|
||||
bottomMargin: 5
|
||||
topMargin: 5
|
||||
leftMargin: 5
|
||||
}
|
||||
color: "#0A0F0F0F"
|
||||
radius: 100
|
||||
accent_color: root.accent_color
|
||||
onOpen: {
|
||||
settings_popup.open()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SettingsPopup {
|
||||
id: settings_popup
|
||||
accent_color: root.accent_color
|
||||
font_enlarged_text_size: 20
|
||||
function setConfig(new_config: var) {
|
||||
settings_popup.config.max = new_config.max
|
||||
settings_popup.config.min = new_config.min
|
||||
settings_popup.config.alert = new_config.alert
|
||||
settings_popup.config.url = new_config.url
|
||||
}
|
||||
onSaveConfig: (config) => {
|
||||
console.log("Saving config: ", config)
|
||||
config_interface.saveConfig(config);
|
||||
}
|
||||
}
|
||||
|
||||
WaterTank {
|
||||
id: tank
|
||||
anchors {
|
||||
top: top_bar.bottom
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
topMargin: 0
|
||||
}
|
||||
height: (parent.height - top_bar.height) / 1.2
|
||||
width: parent.width / 1.2
|
||||
base_color: root.background_color
|
||||
distance: 0
|
||||
tank_lid_color: "#F0121212"
|
||||
tank_base_color: "#0FFFFFFF"
|
||||
water_level_color: "#F00F7FAF"
|
||||
tank_base_border_color: "#F0121212"
|
||||
min_thres_input: 0
|
||||
max_thres_input: 0
|
||||
}
|
||||
|
||||
Text {
|
||||
id: status
|
||||
text: root.status
|
||||
anchors {
|
||||
bottom: connect_button.top
|
||||
bottomMargin: 20
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
color: root.accent_color
|
||||
font.pointSize: root.font_normal_text_size
|
||||
}
|
||||
|
||||
ConnectButton {
|
||||
id: connect_button
|
||||
height: parent.height / 20
|
||||
width: parent.width / 4
|
||||
font_color: root.accent_color
|
||||
font_enlarged_text_size: root.font_enlarged_text_size
|
||||
font_normal_text_size: root.font_normal_text_size
|
||||
color: root.background_color
|
||||
accent_color: root.accent_color
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
bottom: parent.bottom
|
||||
bottomMargin: 50
|
||||
}
|
||||
onConnect: {
|
||||
requester.start();
|
||||
root.status = "Waiting to Send.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RequestWorker {
|
||||
id: requester
|
||||
onStatusChanged: () => {
|
||||
root.status = requester.status;
|
||||
}
|
||||
onNetworkReply: (water_level, fill_rate, expected) => {
|
||||
tank.setDistance(water_level);
|
||||
tank.rate_of_fill = fill_rate;
|
||||
tank.expected_to_fill = expected;
|
||||
}
|
||||
}
|
||||
|
||||
ConfigInterface {
|
||||
id: config_interface
|
||||
fileName: "config.json"
|
||||
onConfig: (config) => {
|
||||
settings_popup.config = config
|
||||
console.log("Loading initial config");
|
||||
setConfig(config);
|
||||
if(root.status === "Initializing") {
|
||||
root.status = "Waiting to connect.";
|
||||
}
|
||||
}
|
||||
function setConfig(config) {
|
||||
tank.setConfig(config);
|
||||
requester.setConfig(config);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue