import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 import "RaveOS" Rectangle { id: udvozles color: Stilus.hatter property string firmware: "" property var kovetelmenyek: [] function frissitFirmware() { firmware = Global.value("firmwareType") || "" } function frissitKovetelmenyek() { var m = config.requirementsModel var lista = [] for (var i = 0; i < m.rowCount(); ++i) { var sor = m.index(i, 0) lista.push({ nev: m.data(sor, Qt.UserRole), teljesul: m.data(sor, Qt.UserRole + 1), kotelezo: m.data(sor, Qt.UserRole + 2), negalt: m.data(sor, Qt.DisplayRole) }) } kovetelmenyek = lista } function cimke(nev) { switch (nev) { case "storage": return qsTr("Free disk space") case "ram": return qsTr("Memory") case "power": return qsTr("Power supply") case "internet": return qsTr("Network connection") case "root": return qsTr("Administrator rights") case "screen": return qsTr("Screen size") case "partitions": return qsTr("Disk for installation") } return nev } function allapot(nev, teljesul, kotelezo) { if (teljesul) return "OK" if (kotelezo) return qsTr("MISSING") if (nev === "power") return qsTr("BATTERY") return qsTr("WARNING") } Component.onCompleted: { frissitFirmware() frissitKovetelmenyek() } Connections { target: config.requirementsModel function onModelReset() { Qt.callLater(udvozles.frissitKovetelmenyek) } function onRowsInserted() { Qt.callLater(udvozles.frissitKovetelmenyek) } function onDataChanged() { Qt.callLater(udvozles.frissitKovetelmenyek) } function onSatisfiedRequirementsChanged() { Qt.callLater(udvozles.frissitKovetelmenyek) } } Connections { target: Global function onChanged() { Qt.callLater(udvozles.frissitFirmware) } } component Sor: Rectangle { property string felirat: "" property string ertek: "" property color ertekSzin: Stilus.zold property string sugo: "" Layout.fillWidth: true Layout.preferredHeight: 44 color: "transparent" Rectangle { anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom height: 1 color: Stilus.aktiv } Text { anchors.left: parent.left anchors.leftMargin: 16 anchors.verticalCenter: parent.verticalCenter text: parent.felirat color: Stilus.szoveg font.family: Stilus.font font.pixelSize: 14 } Text { anchors.right: parent.right anchors.rightMargin: 16 anchors.verticalCenter: parent.verticalCenter text: parent.ertek color: parent.ertekSzin font.family: Stilus.mono font.pixelSize: 12 font.weight: Font.Medium } HoverHandler { id: hover } ToolTip.visible: hover.hovered && sugo !== "" ToolTip.text: sugo ToolTip.delay: 400 } Flickable { id: gorgeto anchors.fill: parent contentHeight: tartalom.implicitHeight + 96 clip: true boundsBehavior: Flickable.StopAtBounds ColumnLayout { id: tartalom x: 56 y: 48 width: gorgeto.width - 112 spacing: 28 ColumnLayout { spacing: 10 Text { text: qsTr("WELCOME") color: Stilus.zold font.family: Stilus.mono font.pixelSize: 12 font.letterSpacing: 2 } Text { Layout.fillWidth: true text: qsTr("TO THE RAVEOS INSTALLER") wrapMode: Text.WordWrap color: Stilus.szoveg font.family: Stilus.cim font.weight: Font.Bold font.pixelSize: 44 lineHeight: 0.95 } Text { Layout.preferredWidth: Math.min(520, tartalom.width) text: qsTr("A few steps and you are done. The default settings work all the way through, and you can go back at any time.") wrapMode: Text.WordWrap color: Stilus.szovegMasodlagos font.family: Stilus.font font.pixelSize: 15 lineHeight: 1.2 } } ColumnLayout { Layout.preferredWidth: Math.min(560, tartalom.width) spacing: 10 Text { text: qsTr("SYSTEM REQUIREMENTS") color: Stilus.szovegHalvany font.family: Stilus.font font.pixelSize: 12 font.weight: Font.Medium font.letterSpacing: 1 } Rectangle { Layout.fillWidth: true implicitHeight: lista.implicitHeight + 2 color: Stilus.felulet border.width: 1 border.color: Stilus.keret ColumnLayout { id: lista x: 1 y: 1 width: parent.width - 2 spacing: 0 Repeater { model: udvozles.kovetelmenyek Sor { felirat: udvozles.cimke(modelData.nev) ertek: udvozles.allapot(modelData.nev, modelData.teljesul, modelData.kotelezo) ertekSzin: modelData.teljesul ? Stilus.zold : Stilus.sarga sugo: modelData.teljesul ? "" : modelData.negalt } } Sor { visible: udvozles.firmware !== "" felirat: qsTr("Boot mode") ertek: udvozles.firmware === "efi" ? "UEFI" : "BIOS" } } } } } } }