Library migration #36
6 changed files with 142 additions and 8 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
110
resources/qml/components/ExtensionOverview.qml
Normal file
110
resources/qml/components/ExtensionOverview.qml
Normal 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"]]}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
Reference in a new issue