227 lines
5.1 KiB
QML
227 lines
5.1 KiB
QML
|
import io.calamares.modules 1.0 as Modules
|
||
|
import io.calamares.ui 1.0
|
||
|
|
||
|
import QtQuick 2.10
|
||
|
import QtQuick.Controls 2.10
|
||
|
import QtQuick.Layouts 1.3
|
||
|
import org.kde.kirigami 2.7 as Kirigami
|
||
|
import org.kde.mauikit 1.0 as Maui
|
||
|
import QtGraphicalEffects 1.0
|
||
|
import QtQuick.Window 2.3
|
||
|
|
||
|
ResponsiveBase
|
||
|
{
|
||
|
id: control
|
||
|
|
||
|
Modules.Welcome
|
||
|
{
|
||
|
id: _welcome
|
||
|
}
|
||
|
|
||
|
nextButton.enabled: _welcome.Config.isNextEnabled
|
||
|
onNextClicked:
|
||
|
{
|
||
|
if (stackView.depth === 2)
|
||
|
return
|
||
|
|
||
|
stackView.push(_langComponent)
|
||
|
}
|
||
|
|
||
|
title: stackView.currentItem.title
|
||
|
subtitle: stackView.currentItem.subtitle
|
||
|
message: stackView.currentItem.message
|
||
|
|
||
|
header: Item
|
||
|
{
|
||
|
width: parent.width
|
||
|
height: 150
|
||
|
|
||
|
Image
|
||
|
{
|
||
|
anchors.centerIn: parent
|
||
|
source: Branding.imagePath(Branding.ProductWelcome)
|
||
|
height: Math.min(100, parent.height)
|
||
|
width: height
|
||
|
sourceSize.width: width
|
||
|
sourceSize.height: height
|
||
|
}
|
||
|
}
|
||
|
|
||
|
stackView.initialItem: Item
|
||
|
{
|
||
|
property string title: "Welcome to " + Branding.string(Branding.ProductName) + " " + Branding.string(Branding.Version)
|
||
|
property string subtitle: _welcome.Config.genericWelcomeMessage
|
||
|
property string message: _welcome.Config.warningMessage
|
||
|
|
||
|
ListView
|
||
|
{
|
||
|
id: _requirementsList
|
||
|
anchors.centerIn: parent
|
||
|
implicitWidth: Math.min(parent.width, 500)
|
||
|
implicitHeight: Math.min(contentHeight, 500)
|
||
|
|
||
|
Rectangle
|
||
|
{
|
||
|
z: parent.z - 1
|
||
|
anchors.fill: parent
|
||
|
color: Kirigami.Theme.backgroundColor
|
||
|
radius: 5
|
||
|
opacity: 0.5
|
||
|
}
|
||
|
|
||
|
model: _welcome.Config.requirementsModel
|
||
|
|
||
|
delegate: ItemDelegate
|
||
|
{
|
||
|
id: _delegate
|
||
|
|
||
|
background: Rectangle
|
||
|
{
|
||
|
color: model.satisfied ? Kirigami.Theme.positiveTextColor : Kirigami.Theme.negativeTextColor
|
||
|
opacity: 0.2
|
||
|
}
|
||
|
|
||
|
width: parent.width
|
||
|
height: 48
|
||
|
|
||
|
contentItem: RowLayout
|
||
|
{
|
||
|
width: parent.width
|
||
|
height: parent.height
|
||
|
|
||
|
Item
|
||
|
{
|
||
|
Layout.fillHeight: true
|
||
|
Layout.preferredWidth: height
|
||
|
|
||
|
Kirigami.Icon
|
||
|
{
|
||
|
source: model.satisfied ? "checkmark" : (model.mandatory ? "error" : "dialog-warning-symbolic")
|
||
|
height: 32
|
||
|
width: height
|
||
|
anchors.centerIn: parent
|
||
|
color: background.color
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ColumnLayout
|
||
|
{
|
||
|
Layout.fillWidth: true
|
||
|
Layout.fillHeight: true
|
||
|
|
||
|
spacing: 0
|
||
|
|
||
|
Label
|
||
|
{
|
||
|
Layout.fillWidth: true
|
||
|
Layout.fillHeight: true
|
||
|
horizontalAlignment: Qt.AlignLeft
|
||
|
text: model.name
|
||
|
}
|
||
|
|
||
|
Label
|
||
|
{
|
||
|
Layout.fillWidth: true
|
||
|
Layout.fillHeight: true
|
||
|
horizontalAlignment: Qt.AlignLeft
|
||
|
text: !model.satisfied ? model.negatedText : model.details
|
||
|
opacity: isCurrentItem ? 1 : 0.7
|
||
|
font.weight: Font.Light
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
footer: RowLayout
|
||
|
{
|
||
|
|
||
|
width: parent.width
|
||
|
height: 64
|
||
|
|
||
|
spacing: Kirigami.Units.largeSpacing* 2
|
||
|
|
||
|
Button
|
||
|
{
|
||
|
Layout.fillWidth: true
|
||
|
text: "About"
|
||
|
icon.name: "documentinfo"
|
||
|
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
|
||
|
Kirigami.Theme.textColor: "#fff"
|
||
|
|
||
|
visible: Branding.string(Branding.ProductUrl).length
|
||
|
onClicked: Qt.openUrlExternally(Branding.string(Branding.ProductUrl))
|
||
|
}
|
||
|
|
||
|
Button
|
||
|
{
|
||
|
Layout.fillWidth: true
|
||
|
text: qsTr("Support")
|
||
|
icon.name: "help-contents"
|
||
|
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
|
||
|
Kirigami.Theme.textColor: "#fff"
|
||
|
visible: Branding.string(Branding.SupportUrl).length
|
||
|
onClicked: Qt.openUrlExternally(Branding.string(Branding.SupportUrl))
|
||
|
}
|
||
|
|
||
|
Button
|
||
|
{
|
||
|
Layout.fillWidth: true
|
||
|
text: qsTr("Known issues")
|
||
|
icon.name: "tools-report-bug"
|
||
|
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
|
||
|
Kirigami.Theme.textColor: "#fff"
|
||
|
visible: Branding.string(Branding.KnownIssuesUrl).length
|
||
|
onClicked: Qt.openUrlExternally(Branding.string(Branding.KnownIssuesUrl))
|
||
|
}
|
||
|
|
||
|
Button
|
||
|
{
|
||
|
Layout.fillWidth: true
|
||
|
text: qsTr("Release notes")
|
||
|
icon.name: "answer"
|
||
|
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
|
||
|
Kirigami.Theme.textColor: "#fff"
|
||
|
visible: Branding.string(Branding.ReleaseNotesUrl).length
|
||
|
onClicked: Qt.openUrlExternally(Branding.string(Branding.ReleaseNotesUrl))
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
Component
|
||
|
{
|
||
|
id: _langComponent
|
||
|
|
||
|
Item
|
||
|
{
|
||
|
property string title : qsTr("Language")
|
||
|
property string subtitle: qsTr("Select your preferred language to continue with the installation")
|
||
|
|
||
|
ListViewTemplate
|
||
|
{
|
||
|
id: _langList
|
||
|
anchors.centerIn: parent
|
||
|
implicitWidth: Math.min(parent.width, 500)
|
||
|
implicitHeight: Math.min(contentHeight, 500)
|
||
|
|
||
|
currentIndex: _welcome.Config.localeIndex
|
||
|
|
||
|
model: _welcome.Config.languagesModel
|
||
|
|
||
|
delegate: ListItemDelegate
|
||
|
{
|
||
|
id: _delegate
|
||
|
label1.text: model.label
|
||
|
label2.text: model.englishLabel
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|