refactor(ui): One QML file per screen; the HDMI boost's setup screens and backend commands removed

This commit is contained in:
theupriser committed 2026-09-27 13:48:02 +02:00
1 parent 7bef834b16
commit e699a3f8eb
29 files changed
+1050 -1832

No files matched your search

+37
View File
@@ -0,0 +1,37 @@
// BIOS update, warning 1: the risks and what was checked; Cancel is
// selected first.
import QtQuick
Item {
required property AppState app
Rectangle {
x: 40; y: 28; width: parent.width - 80; height: parent.height - 28 - 64 - 24; radius: 16; color: Theme.dangerBg; border.width: 2; border.color: Theme.dangerLine
Row { anchors.fill: parent; anchors.margins: 32; spacing: 40
Column { width: 640; spacing: 16
Row { spacing: 12
Rectangle { width: 44; height: 44; radius: 12; color: "#3a1c1f"
Text { anchors.centerIn: parent; text: "!"; color: Theme.bad; font.pixelSize: 26; font.weight: Font.Bold } }
Text { text: "BIOS update – entirely at your own risk"; color: "#ffd9d3"; font.family: Theme.display; font.pixelSize: 30; font.weight: Font.DemiBold
anchors.verticalCenter: parent.verticalCenter } }
RiskList { width: 640 }
}
Rectangle { width: 440; height: 250; radius: 14; color: Theme.card
Column { anchors.fill: parent; anchors.margins: 22; spacing: 12
Repeater { model: [["Current BIOS", app.biosInfo.current || ""], ["New BIOS", app.biosInfo.newest || ""], ["Checksum", "OK (Valve's package)"],
["Compatible", app.biosInfo.compatible === "yes" ? "Yes (checked by fwupd)" : "Not checked (dry run)"]]
Row { required property var modelData; width: 396
Text { text: parent.modelData[0]; color: Theme.faint; font.family: Theme.body; font.pixelSize: 15; width: 150 }
Text { text: parent.modelData[1]; color: parent.modelData[1].indexOf("Not") === 0 ? Theme.warn : Theme.text; font.family: Theme.mono; font.pixelSize: 15
width: 246; horizontalAlignment: Text.AlignRight; elide: Text.ElideLeft } } }
} }
}
}
Bar {
Text { anchors.left: parent.left; anchors.leftMargin: 40; anchors.verticalCenter: parent.verticalCenter; text: "Do you understand the risks and want to continue?"
color: Theme.soft; font.family: Theme.body; font.pixelSize: 15 }
Row { anchors.right: parent.right; anchors.rightMargin: 40; anchors.verticalCenter: parent.verticalCenter; spacing: 12
Btn { k: app.biosFocus === 0 ? Input.g.ok : "◀"; text: "Cancel"; focusRing: app.biosFocus === 0; onClicked: app.biosCancel() }
Btn { k: app.biosFocus === 1 ? Input.g.ok : "▶"; text: "I understand, continue"; focusRing: app.biosFocus === 1; color: Theme.danger
onClicked: app.biosContinue() } }
}
}