/* RaveOS - Calamares finished (Done) oldal * * "Restart now" gomb: config.doRestart(true) -> azonnal ujrainditja a gepet. * A tamogatok kulon keretben, alul, soronkent 3 nev, kozepre igazitva. * Sok nev eseten automatikusan lapoz (4s). A lista: supporters.js (import). * Ha nincs nev, a teljes tamogatoi panel el van rejtve. * * Nyelvek: hu / de / en. A desktop selector mintaja szerint: a lap * aktivalasakor (onActivate) frissitjuk a nyelvet, es minden szoveg * property bindinggel koveti (uiLang). */ 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 "supporters.js" as Supporters Item { id: finishedRoot anchors.fill: parent readonly property int supportersPerPage: 30 readonly property int supportersColumns: 3 readonly property bool hasSupporters: Supporters.names.length > 0 readonly property int supportersPageCount: Math.max(1, Math.ceil(Supporters.names.length / supportersPerPage)) // Szovegek a branding .qm fordításokbol; a lap aktivalasakor frissulnek // (a QQuickWidget nem forditja ujra a qsTr bindingeket nyelvvaltaskor) property string titleText: "" property string descText: "" property string restartText: "" property string supportersHeadText: "" property string thanksText: "" function updateTexts() { titleText = qsTr("Installation complete"); descText = qsTr("Restart the system to start using %1.").arg(Branding.string(Branding.ProductName)); restartText = qsTr("Restart now"); supportersHeadText = qsTr("RaveOS Supporters"); thanksText = qsTr("Thank you for your support, from every member of the team!"); } Component.onCompleted: updateTexts() property int supportersPage: 0 // Az aktualis oldal szovege: soronkent 3 nev, kozepre igazitva property string supportersText: { var start = supportersPage * supportersPerPage; var slice = Supporters.names.slice(start, start + supportersPerPage); var lines = []; for (var j = 0; j < slice.length; j += supportersColumns) { lines.push(slice.slice(j, j + supportersColumns).join(" ")); } return lines.join("\n"); } // RaveOS finish hatter Image { anchors.fill: parent source: "images/raveos-finish.png" fillMode: Image.Stretch smooth: true mipmap: true } // Fo keret: cim + leiras + Restart gomb Rectangle { id: panel anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: Math.round(parent.height * 0.06) width: Math.min(parent.width * 0.75, 780) height: contentColumn.implicitHeight + 56 color: "#CC1F1F1F" radius: 12 ColumnLayout { id: contentColumn anchors.centerIn: parent width: parent.width - 64 spacing: 18 Text { Layout.fillWidth: true horizontalAlignment: Text.AlignHCenter color: "#FFFFFF" font.family: "Ubuntu" font.pixelSize: 26 font.bold: true text: finishedRoot.titleText } Text { Layout.fillWidth: true horizontalAlignment: Text.AlignHCenter color: "#E8E8E8" font.family: "Ubuntu" font.pixelSize: 15 wrapMode: Text.WordWrap text: finishedRoot.descText } Button { id: restartButton Layout.alignment: Qt.AlignHCenter text: finishedRoot.restartText hoverEnabled: true onClicked: config.doRestart(true) contentItem: Text { text: restartButton.text font.family: "Ubuntu" font.pixelSize: 14 font.bold: true color: "#FFFFFF" horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } background: Rectangle { implicitWidth: 180 implicitHeight: 40 radius: 4 color: (restartButton.down || restartButton.hovered) ? "#285226" : "#3d7839" } } } } // Kulon keret: tamogatok (alul) - csak akkor latszik, ha van nev Rectangle { id: supportersPanel anchors.horizontalCenter: parent.horizontalCenter anchors.top: panel.bottom anchors.topMargin: 16 width: Math.min(parent.width * 0.75, 780) height: supportersColumn.implicitHeight + 40 color: "#CC1F1F1F" radius: 12 visible: finishedRoot.hasSupporters ColumnLayout { id: supportersColumn anchors.centerIn: parent width: parent.width - 48 spacing: 10 Text { Layout.fillWidth: true horizontalAlignment: Text.AlignHCenter color: "#B9B9B9" font.family: "Ubuntu" font.pixelSize: 15 font.bold: true text: finishedRoot.supportersHeadText } Text { id: supportersNames Layout.fillWidth: true horizontalAlignment: Text.AlignHCenter color: "#DADADA" font.family: "Ubuntu" font.pixelSize: 15 lineHeight: 1.4 text: finishedRoot.supportersText Behavior on opacity { NumberAnimation { duration: 250 } } } Text { Layout.fillWidth: true horizontalAlignment: Text.AlignHCenter color: "#8F8F8F" font.family: "Ubuntu" font.pixelSize: 12 visible: finishedRoot.supportersPageCount > 1 text: (finishedRoot.supportersPage + 1) + " / " + finishedRoot.supportersPageCount } // Koszonet a tamogatasert Text { Layout.fillWidth: true Layout.topMargin: 2 horizontalAlignment: Text.AlignHCenter color: "#B9B9B9" font.family: "Ubuntu" font.pixelSize: 13 font.italic: true wrapMode: Text.WordWrap text: finishedRoot.thanksText } } } // Automatikus lapozas, ha tobb oldal van Timer { id: pageTimer interval: 4000 repeat: true running: finishedRoot.hasSupporters && finishedRoot.supportersPageCount > 1 onTriggered: { supportersNames.opacity = 0; fadeTimer.start(); } } Timer { id: fadeTimer interval: 260 onTriggered: { finishedRoot.supportersPage = (finishedRoot.supportersPage + 1) % finishedRoot.supportersPageCount; supportersNames.opacity = 1; } } function onActivate() { updateTexts(); } function onLeave() { } }