WIP: Add User Agreement page and fixes

This commit is contained in:
Lipu Fei 2019-02-27 15:28:39 +01:00
parent ac012e8f09
commit 14fdf68871
7 changed files with 97 additions and 25 deletions

View file

@ -33,8 +33,12 @@ class WelcomePagesModel(ListModel):
self._pages.append({"id": "welcome", self._pages.append({"id": "welcome",
"page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles, "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
os.path.join("WelcomePages", "WelcomeContent.qml"))), 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) self.setItems(self._pages)

View file

@ -63,6 +63,7 @@ UM.MainWindow
target: Cura.Actions.showOnBoarding target: Cura.Actions.showOnBoarding
onTriggered: onTriggered:
{ {
welcomeDialog.currentStep = 0
welcomeDialog.show() welcomeDialog.show()
} }
} }

View file

@ -27,7 +27,7 @@ Item
anchors.left: parent.left anchors.left: parent.left
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
width: (currentStep * 1.0 / totalSteps) * background.width width: (currentStep + 1) * 1.0 / totalSteps * background.width
color: "#3282ff" color: "#3282ff"
radius: base.radius radius: base.radius
} }

View file

@ -14,9 +14,9 @@ Item
clip: true clip: true
property int roundCornerRadius: 4 property int roundCornerRadius: 4
property int shadowOffset: 2 property int shadowOffset: 1
property int stepBarHeight: 12 property int stepBarHeight: 12
property int contentMargins: 4 property int contentMargins: 1
property int totalSteps: 0 property int totalSteps: 0
property int currentStep: -1 property int currentStep: -1
@ -24,6 +24,29 @@ Item
property var currentItem: null property var currentItem: null
property var model: 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: onVisibleChanged:
{ {
if (visible) if (visible)
@ -50,7 +73,7 @@ Item
{ {
id: panelBackground id: panelBackground
anchors.fill: parent anchors.fill: parent
anchors.margins: 10 anchors.margins: 2
color: "white" // TODO color: "white" // TODO
radius: base.roundCornerRadius // TODO radius: base.roundCornerRadius // TODO
} }
@ -59,14 +82,14 @@ Item
DropShadow DropShadow
{ {
id: shadow id: shadow
// Don't blur the shadow radius: UM.Theme.getSize("monitor_shadow_radius").width
radius: base.roundCornerRadius + 2
anchors.fill: parent anchors.fill: parent
source: parent source: parent
horizontalOffset: base.shadowOffset horizontalOffset: base.shadowOffset
verticalOffset: base.shadowOffset verticalOffset: base.shadowOffset
visible: true visible: true
color: UM.Theme.getColor("action_button_shadow") color: UM.Theme.getColor("monitor_shadow")
transparentBorder: true
// Should always be drawn behind the background. // Should always be drawn behind the background.
z: panelBackground.z - 1 z: panelBackground.z - 1
} }
@ -74,7 +97,6 @@ Item
StepIndicatorBar StepIndicatorBar
{ {
id: stepIndicatorBar id: stepIndicatorBar
//anchors.margins: 10
totalSteps: base.totalSteps totalSteps: base.totalSteps
currentStep: base.currentStep currentStep: base.currentStep

View file

@ -4,38 +4,73 @@
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import UM 1.3 as UM
import Cura 1.1 as Cura
Component Item
{ {
Column 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 Label
{ {
id: titleLabel id: titleLabel
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
text: "User Agreement" // TODO text: catalog.i18nc("@label", "User Agreement")
color: "blue" // TODO color: UM.Theme.getColor("primary_button")
//font: font: UM.Theme.getFont("large_bold")
renderType: NativeRendering renderType: NativeRendering
} }
Image {
id: curaImage
anchors.horizontalCenter: parent.horizontalCenter
source: "TODO"
}
Label Label
{ {
id: textLabel width: parent.width * 2 / 3
id: disclaimerLineLabel
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
horizontalAlignment: Text.AlignHCenter text: "<p><b>Disclaimer by Ultimaker</b></p>"
text: "Please fllow these steps to set up\nUltimaker Cura. This will only take a few moments." + "<p>Please read this disclaimer carefully.</p>"
//font: + "<p>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.</p>"
+ "<p>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.</p>"
textFormat: Text.RichText
wrapMode: Text.WordWrap
font: UM.Theme.getFont("default")
renderType: NativeRendering 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()
}
} }

View file

@ -61,5 +61,6 @@ Column
text: catalog.i18nc("@button", "Get started") text: catalog.i18nc("@button", "Get started")
width: 140 width: 140
fixedWidthMode: true fixedWidthMode: true
onClicked: base.showNextPage()
} }
} }

View file

@ -21,10 +21,19 @@ Window
height: 600 // TODO height: 600 // TODO
color: "transparent" color: "transparent"
property alias currentStep: stepPanel.currentStep
StepPanel StepPanel
{ {
id: stepPanel id: stepPanel
currentStep: 0 currentStep: 0
model: CuraApplication.getWelcomePagesModel() model: CuraApplication.getWelcomePagesModel()
} }
// Close this dialog when there's no more page to show
Connections
{
target: stepPanel
onPassLastPage: close()
}
} }