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",
"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)

View file

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

View file

@ -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
}

View file

@ -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

View file

@ -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: "<p><b>Disclaimer by Ultimaker</b></p>"
+ "<p>Please read this disclaimer carefully.</p>"
+ "<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
}
}
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")
width: 140
fixedWidthMode: true
onClicked: base.showNextPage()
}
}

View file

@ -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()
}
}