LedDisplay/app/ressources/qml/ConnectedPage.qml

195 lines
5.4 KiB
QML
Raw Normal View History

2020-10-11 15:50:13 +02:00
import QtQuick 2.0
import QtQuick.Controls 2.9
import QtQuick.Layouts 1.0
import QtQuick.Controls.Material 2.0
2020-10-17 03:22:37 +02:00
import QtGraphicalEffects 1.0
2020-10-18 15:08:12 +02:00
import de.itsblue.LedDisplayController 1.0
2020-10-11 15:50:13 +02:00
import de.itsblue.bluetoothleuart 1.0
Page {
id: root
property bool actionButtonVisible: true
property bool backButtonVisible: true
title: backend.bleClient.currentDevice === null ? "":backend.bleClient.currentDevice.name
signal opened()
function backButtonClicked() {
backend.bleClient.disconnectFromDevice()
}
function actionButtonClicked() {
displayEditDialog.edit()
}
ColumnLayout {
id: mainLayout
anchors {
fill: parent
margins: Math.min(parent.height, parent.width) * 0.05
}
DisplayTextModelListView {
id: displayTextModelListView
Layout.preferredWidth: parent.width
Layout.fillHeight: true
Layout.alignment: Layout.Center
header: Item {
width: parent.width
height: 100 + mainLayout.anchors.margins
Chip {
anchors {
top: parent.top
left: parent.left
right: parent.right
}
2020-10-17 03:22:37 +02:00
height: 100
radius: height * 0.2
interactive: false
color: "white"
Column {
anchors.fill: parent
anchors.margins: height * 0.05
2020-10-17 03:22:37 +02:00
SwitchDelegate {
id: autoBrightnessSwitch
width: parent.width
height: parent.height / 2
2020-10-17 03:22:37 +02:00
checked: backend.displayBrightness.automaticBrightnessAdjustment
2020-10-17 03:22:37 +02:00
text: qsTr("Automically adjust brightness")
2020-10-17 03:22:37 +02:00
onCheckedChanged: {
backend.displayBrightness = {
"displayBrightness": brightnessSlider.value,
"automaticBrightnessAdjustment": autoBrightnessSwitch.checked
}
}
}
RowLayout {
width: parent.width - autoBrightnessSwitch.padding * 2
height: parent.height / 2
spacing: mainLayout.anchors.margins
2020-10-17 03:22:37 +02:00
anchors.horizontalCenter: parent.horizontalCenter
Text {
Layout.fillHeight: true
verticalAlignment: Text.AlignVCenter
font.pixelSize: parent.height * 0.5
font.family: fontAwesome.name
text: "\uf186"
}
Slider {
id: brightnessSlider
Layout.fillWidth: true
Layout.fillHeight: true
from: 0
to: 50
stepSize: 1
value: backend.displayBrightness.displayBrightness
onPressedChanged: {
if(!pressed) {
backend.displayBrightness = {
"displayBrightness": value,
"automaticBrightnessAdjustment": autoBrightnessSwitch.checked
}
}
}
ToolTip {
parent: brightnessSlider.handle
visible: brightnessSlider.pressed
text: brightnessSlider.value
}
}
Text {
Layout.fillHeight: true
verticalAlignment: Text.AlignVCenter
font.pixelSize: parent.height * 0.5
font.family: fontAwesome.name
text: "\uf185"
}
}
}
}
}
}
2020-10-11 15:50:13 +02:00
}
2020-10-17 03:22:37 +02:00
DisplayEditDialog {
id: displayEditDialog
2020-10-18 15:20:55 +02:00
Material.theme: root.Material.theme
Material.accent: root.Material.accent
2020-10-17 03:22:37 +02:00
}
Dialog {
id: loadingDialog
property bool shouldBeOpen: false
onShouldBeOpenChanged: {
if(shouldBeOpen)
open()
else
close()
}
parent: Overlay.overlay
x: (parent.width - width) / 2
y: (parent.height - height) / 2
closePolicy: Popup.NoAutoClose
modal: true
2020-10-18 15:20:55 +02:00
Material.theme: root.Material.theme
Material.accent: root.Material.accent
contentItem: ColumnLayout {
BusyIndicator {
}
Text {
Layout.alignment: Layout.Center
text: qsTr("loading...")
}
}
}
states: [
State {
2020-10-18 15:08:12 +02:00
name: LedDisplayBackend.Connected
},
State {
2020-10-18 15:08:12 +02:00
name: LedDisplayBackend.Loading
PropertyChanges {
target: loadingDialog
shouldBeOpen: true
}
}
]
2020-10-11 15:50:13 +02:00
}