- some layout fixes

- added incident page details
This commit is contained in:
Dorian Zedler 2020-10-07 11:58:42 +02:00
parent b270c436f8
commit afbbd6b645
Signed by: dorian
GPG key ID: D3B255CB8BC7CD37
6 changed files with 142 additions and 8 deletions

View file

@ -178,6 +178,16 @@ Item {
} }
} }
Component {
id: incidentDetailsComp
ExtensionOverview {
opacity: 0
backgroundColor: appTheme.theme.colors.background
delegateHeight: centerExtraContentTopStack.height / 5
}
}
Component { Component {
id: emptyComp id: emptyComp
Item {} Item {}
@ -363,10 +373,21 @@ Item {
} }
PropertyChanges { PropertyChanges {
target: centerLayout target: centerExtraContentTop
height: app.landscape() ? control.height : Math.max(control.height, app.height * 0.4) size: speedBackend.race.competitionMode ? 0.7:0
width: app.landscape() ? Math.max(control.width, app.width * 0.4) : control.width }
PropertyChanges {
target: centerExtraContentBottom
size: speedBackend.race.competitionMode ? 0.05:0
}
PropertyChanges {
target: centerExtraContentTopStack
newItem: speedBackend.race.competitionMode ? incidentDetailsComp:emptyComp
} }
} }

View file

@ -50,8 +50,10 @@ StackView {
Component { Component {
id: extensions id: extensions
SettingsExtensionsPage { ExtensionOverview {
parentObj: control property string title: qsTr("extensions")
delegateHeight: control.delegateHeight
backgroundColor: appTheme.theme.colors.view
} }
} }

View file

@ -0,0 +1,110 @@
import QtQuick 2.9
import QtMultimedia 5.8
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.0
import QtQuick.Controls.Styles 1.4
import "../components"
ListView {
id: control
property int delegateHeight: 40
property color backgroundColor: "transparent"
spacing: control.delegateHeight * 0.3
boundsBehavior: Flickable.StopAtBounds
clip: true
model: Object.keys(speedBackend.scStwClient.extensions)
header: Rectangle {
// for top spacing
width: parent.width
height: control.spacing
color: control.backgroundColor
}
delegate: Rectangle {
id: laneContainerRect
property string thisLane: modelData
anchors.horizontalCenter: parent.horizontalCenter
width: parent.width * 0.98
height: control.delegateHeight * extensionsList.model
radius: width * 0.05
border.width: 1
border.color: appTheme.theme.colors.line
color: control.backgroundColor
Rectangle {
id: laneLabelRect
anchors {
left: parent.left
leftMargin: parent.radius * 1
verticalCenter: parent.top
}
height: control.delegateHeight * 0.5
width: laneLabel.font.pixelSize * 4
color: control.backgroundColor
Label {
id: laneLabel
height: parent.height
width: parent.width
leftPadding: laneContainerRect.width * 0.02
rightPadding: laneContainerRect.width * 0.02
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
fontSizeMode: Text.Fit
font.pixelSize: height * 0.5
color: appTheme.theme.colors.text
text: "Lane " + laneContainerRect.thisLane
}
}
ListView {
id: extensionsList
anchors.fill: parent
anchors.margins: width * 0.04
interactive: false
model: speedBackend.scStwClient.extensions[parent.thisLane].length
delegate: ConnectionDelegate {
property var thisExtension: speedBackend.scStwClient.extensions[laneContainerRect.thisLane][index]
property var stateTranslations: ["disconnected", "connecting", "connecting", "connected"]
property var batteryStateStrings: ["critical", "warning", "fine", "charging"]
color: control.backgroundColor
batteryState: thisExtension["batteryState"] === -1 ? "unknown":batteryStateStrings[thisExtension["batteryState"]]
height: extensionsList.height / extensionsList.model
enabled: true
text: thisExtension["type"] === 0 ? "StartPad":"TopPad" // TODO: make dynamic with ScStw::extensionTypeToString()
status: {'status': stateTranslations[thisExtension["state"]]}
}
}
}
}

View file

@ -6,6 +6,7 @@ ItemDelegate {
text: "" text: ""
property color textColor: appTheme.theme.colors.text property color textColor: appTheme.theme.colors.text
property alias backgroundRect: backgroundRect property alias backgroundRect: backgroundRect
property color color: appTheme.theme.colors.delegateBackground
font.pixelSize: height * 0.4 font.pixelSize: height * 0.4
@ -42,7 +43,7 @@ ItemDelegate {
background: Rectangle { background: Rectangle {
id: backgroundRect id: backgroundRect
color: control.down ? appTheme.theme.colors.delegatePressed : appTheme.theme.colors.delegateBackground color: control.down ? Qt.darker(control.color, 1.3) : control.color
radius: height * 0.3 radius: height * 0.3

View file

@ -21,7 +21,6 @@
<file>SettingsDialog/StartPage.qml</file> <file>SettingsDialog/StartPage.qml</file>
<file>SettingsDialog/SettingsStartSequencePage.qml</file> <file>SettingsDialog/SettingsStartSequencePage.qml</file>
<file>SettingsDialog/SettingsBaseStationPage.qml</file> <file>SettingsDialog/SettingsBaseStationPage.qml</file>
<file>SettingsDialog/SettingsExtensionsPage.qml</file>
<file>main.old.qml</file> <file>main.old.qml</file>
<file>components/layout/ToolBar.qml</file> <file>components/layout/ToolBar.qml</file>
<file>MainPage/TopToolBar.qml</file> <file>MainPage/TopToolBar.qml</file>
@ -30,5 +29,6 @@
<file>components/MainActionButton.qml</file> <file>components/MainActionButton.qml</file>
<file>components/StateIndicator.qml</file> <file>components/StateIndicator.qml</file>
<file>components/BatteryIndicator.qml</file> <file>components/BatteryIndicator.qml</file>
<file>components/ExtensionOverview.qml</file>
</qresource> </qresource>
</RCC> </RCC>

@ -1 +1 @@
Subproject commit 10645e9eb80f64c259d4c007dbb13319fec05887 Subproject commit f8cc23646cd77c85b4d86b145e4da3779a4766aa