mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-03 17:41:58 +02:00
57 lines
2.4 KiB
QML
57 lines
2.4 KiB
QML
// Steamify v2: the window. The state and logic are in AppState.qml, each
|
|
// screen in its own file (menu -> review -> password -> applying -> done,
|
|
// and the BIOS warnings). Designed at 1280x720 and scaled to the window, so
|
|
// it fits a TV too.
|
|
import QtQuick
|
|
import QtQuick.Window
|
|
import QtQuick.Controls.Basic
|
|
|
|
ApplicationWindow {
|
|
id: win
|
|
required property var backend
|
|
required property var gamepad
|
|
required property bool fullscreen
|
|
required property string iconUrl
|
|
|
|
width: 1280; height: 720
|
|
minimumWidth: 960; minimumHeight: 540
|
|
visibility: fullscreen ? Window.FullScreen : Window.Windowed
|
|
title: "Steamify"
|
|
color: Theme.bg
|
|
|
|
AppState {
|
|
id: steamify
|
|
backend: win.backend
|
|
gamepad: win.gamepad
|
|
// Keys go back to the screen when a text field's screen closes.
|
|
onScreenChanged: if (screen !== "password" && screen !== "bios2") stage.forceActiveFocus()
|
|
}
|
|
|
|
// The 1280x720 stage, scaled to the window: stretched to the window's
|
|
// own shape, so the bars reach the edges and the content fills it.
|
|
Item {
|
|
id: stage
|
|
readonly property real k: Math.min(win.width / 1280, win.height / 720)
|
|
width: win.width / k; height: win.height / k
|
|
transformOrigin: Item.TopLeft
|
|
scale: k
|
|
focus: true
|
|
Keys.onPressed: function (e) { steamify.keyPressed(e); }
|
|
Keys.onReleased: function (e) { steamify.keyReleased(e); }
|
|
|
|
Header { id: header; app: steamify; iconUrl: win.iconUrl }
|
|
|
|
Item {
|
|
id: content
|
|
anchors.top: header.bottom; anchors.bottom: parent.bottom; width: parent.width
|
|
MenuScreen { anchors.fill: parent; app: steamify; visible: steamify.screen === "menu" }
|
|
ReviewScreen { anchors.fill: parent; app: steamify; visible: steamify.screen === "review" }
|
|
PasswordScreen { anchors.fill: parent; app: steamify; visible: steamify.screen === "password" }
|
|
ApplyingScreen { anchors.fill: parent; app: steamify; visible: steamify.screen === "applying" }
|
|
BiosWarningScreen { anchors.fill: parent; app: steamify; visible: steamify.screen === "bios1" }
|
|
BiosConfirmScreen { anchors.fill: parent; app: steamify; visible: steamify.screen === "bios2" }
|
|
DoneScreen { anchors.fill: parent; app: steamify; visible: steamify.screen === "done" }
|
|
}
|
|
}
|
|
}
|