diff options
Diffstat (limited to 'raveos-calamares-theme/etc/calamares/branding/raveos/finishedq.qml')
| -rw-r--r-- | raveos-calamares-theme/etc/calamares/branding/raveos/finishedq.qml | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/raveos-calamares-theme/etc/calamares/branding/raveos/finishedq.qml b/raveos-calamares-theme/etc/calamares/branding/raveos/finishedq.qml new file mode 100644 index 0000000..b72a368 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/branding/raveos/finishedq.qml @@ -0,0 +1,229 @@ +/* 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() + { + } +} |