diff --git a/cura/UI/WelcomePagesModel.py b/cura/UI/WelcomePagesModel.py index 6365ed1c0b..da069b0d32 100644 --- a/cura/UI/WelcomePagesModel.py +++ b/cura/UI/WelcomePagesModel.py @@ -33,8 +33,12 @@ class WelcomePagesModel(ListModel): self._pages.append({"id": "welcome", "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles, os.path.join("WelcomePages", "WelcomeContent.qml"))), - } - ) + }) + self._pages.append({"id": "user_agreement", + "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles, + os.path.join("WelcomePages", + "UserAgreementContent.qml"))), + }) self.setItems(self._pages) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 25678a34ab..47f712e21a 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -63,6 +63,7 @@ UM.MainWindow target: Cura.Actions.showOnBoarding onTriggered: { + welcomeDialog.currentStep = 0 welcomeDialog.show() } } diff --git a/resources/qml/WelcomePages/StepIndicatorBar.qml b/resources/qml/WelcomePages/StepIndicatorBar.qml index 8c453c6e5d..273d1949d2 100644 --- a/resources/qml/WelcomePages/StepIndicatorBar.qml +++ b/resources/qml/WelcomePages/StepIndicatorBar.qml @@ -27,7 +27,7 @@ Item anchors.left: parent.left anchors.top: parent.top anchors.bottom: parent.bottom - width: (currentStep * 1.0 / totalSteps) * background.width + width: (currentStep + 1) * 1.0 / totalSteps * background.width color: "#3282ff" radius: base.radius } diff --git a/resources/qml/WelcomePages/StepPanel.qml b/resources/qml/WelcomePages/StepPanel.qml index e72ba949e9..779797721b 100644 --- a/resources/qml/WelcomePages/StepPanel.qml +++ b/resources/qml/WelcomePages/StepPanel.qml @@ -14,9 +14,9 @@ Item clip: true property int roundCornerRadius: 4 - property int shadowOffset: 2 + property int shadowOffset: 1 property int stepBarHeight: 12 - property int contentMargins: 4 + property int contentMargins: 1 property int totalSteps: 0 property int currentStep: -1 @@ -24,6 +24,29 @@ Item property var currentItem: null property var model: null + signal showNextPage() + signal showPreviousPage() + signal passLastPage() // Emitted when there is no more page to show + + onShowNextPage: + { + if (currentStep < totalSteps - 1) + { + currentStep++ + } + else { + passLastPage() + } + } + + onShowPreviousPage: + { + if (currentStep > 0) + { + currentStep-- + } + } + onVisibleChanged: { if (visible) @@ -50,7 +73,7 @@ Item { id: panelBackground anchors.fill: parent - anchors.margins: 10 + anchors.margins: 2 color: "white" // TODO radius: base.roundCornerRadius // TODO } @@ -59,14 +82,14 @@ Item DropShadow { id: shadow - // Don't blur the shadow - radius: base.roundCornerRadius + 2 + radius: UM.Theme.getSize("monitor_shadow_radius").width anchors.fill: parent source: parent horizontalOffset: base.shadowOffset verticalOffset: base.shadowOffset visible: true - color: UM.Theme.getColor("action_button_shadow") + color: UM.Theme.getColor("monitor_shadow") + transparentBorder: true // Should always be drawn behind the background. z: panelBackground.z - 1 } @@ -74,7 +97,6 @@ Item StepIndicatorBar { id: stepIndicatorBar - //anchors.margins: 10 totalSteps: base.totalSteps currentStep: base.currentStep diff --git a/resources/qml/WelcomePages/UserAgreementContent.qml b/resources/qml/WelcomePages/UserAgreementContent.qml index 771f9ff1ed..7adabeb75b 100644 --- a/resources/qml/WelcomePages/UserAgreementContent.qml +++ b/resources/qml/WelcomePages/UserAgreementContent.qml @@ -4,38 +4,73 @@ import QtQuick 2.10 import QtQuick.Controls 2.3 +import UM 1.3 as UM +import Cura 1.1 as Cura -Component +Item { Column { - spacing: 20 + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.margins: 20 + + UM.I18nCatalog { id: catalog; name: "cura" } + + spacing: 40 + + // Placeholder + Label { text: " " } Label { id: titleLabel anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter - text: "User Agreement" // TODO - color: "blue" // TODO - //font: + text: catalog.i18nc("@label", "User Agreement") + color: UM.Theme.getColor("primary_button") + font: UM.Theme.getFont("large_bold") renderType: NativeRendering } - Image { - id: curaImage - anchors.horizontalCenter: parent.horizontalCenter - source: "TODO" - } - Label { - id: textLabel + width: parent.width * 2 / 3 + id: disclaimerLineLabel anchors.horizontalCenter: parent.horizontalCenter - horizontalAlignment: Text.AlignHCenter - text: "Please fllow these steps to set up\nUltimaker Cura. This will only take a few moments." - //font: + text: "
Disclaimer by Ultimaker
" + + "Please read this disclaimer carefully.
" + + "Except when otherwise stated in writing, Ultimaker provides any Ultimaker software or third party software \"As is\" without warranty of any kind. The entire risk as to the quality and perfoemance of Ultimaker software is with you.
" + + "Unless required by applicable law or agreed to in writing, in no event will Ultimaker be liable to you for damages, including any general, special, incidental, or consequential damages arising out of the use or inability to use any Ultimaker software or third party software.
" + textFormat: Text.RichText + wrapMode: Text.WordWrap + font: UM.Theme.getFont("default") renderType: NativeRendering } } + + Cura.PrimaryButton + { + id: agreeButton + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.margins: 40 + text: catalog.i18nc("@button", "Agree") + width: 140 + fixedWidthMode: true + onClicked: base.showNextPage() + } + + Cura.SecondaryButton + { + id: declineButton + anchors.left: parent.left + anchors.bottom: parent.bottom + anchors.margins: 40 + text: catalog.i18nc("@button", "Decline") + width: 140 + fixedWidthMode: true + onClicked: base.showNextPage() + } } diff --git a/resources/qml/WelcomePages/WelcomeContent.qml b/resources/qml/WelcomePages/WelcomeContent.qml index e7e7300c12..c7da56cdd4 100644 --- a/resources/qml/WelcomePages/WelcomeContent.qml +++ b/resources/qml/WelcomePages/WelcomeContent.qml @@ -61,5 +61,6 @@ Column text: catalog.i18nc("@button", "Get started") width: 140 fixedWidthMode: true + onClicked: base.showNextPage() } } diff --git a/resources/qml/WelcomePages/WelcomeDialog.qml b/resources/qml/WelcomePages/WelcomeDialog.qml index ee296bb371..0ac160f064 100644 --- a/resources/qml/WelcomePages/WelcomeDialog.qml +++ b/resources/qml/WelcomePages/WelcomeDialog.qml @@ -21,10 +21,19 @@ Window height: 600 // TODO color: "transparent" + property alias currentStep: stepPanel.currentStep + StepPanel { id: stepPanel currentStep: 0 model: CuraApplication.getWelcomePagesModel() } + + // Close this dialog when there's no more page to show + Connections + { + target: stepPanel + onPassLastPage: close() + } }