diff --git a/monero-core.pro b/monero-core.pro
index 4547abe8..f2e24e46 100644
--- a/monero-core.pro
+++ b/monero-core.pro
@@ -29,7 +29,6 @@ QML_IMPORT_PATH =
include(deployment.pri)
# copy language files (xml and images) to the output directory
-
copydata.commands = $(COPY_DIR) $$shell_path($$PWD/lang) $$shell_path($$DESTDIR/lang)
QMAKE_EXTRA_TARGETS += copydata
POST_TARGETDEPS += copydata
diff --git a/qml.qrc b/qml.qrc
index 21dd80a9..aeedc37a 100644
--- a/qml.qrc
+++ b/qml.qrc
@@ -95,5 +95,6 @@
wizard/WizardConfigure.qml
wizard/WizardDonation.qml
wizard/WizardFinish.qml
+ wizard/WizardPasswordInput.qml
diff --git a/wizard/WizardDonation.qml b/wizard/WizardDonation.qml
index a52a53f7..d9954639 100644
--- a/wizard/WizardDonation.qml
+++ b/wizard/WizardDonation.qml
@@ -149,5 +149,33 @@ Item {
"as a percentage of that fee, to your transaction to support Monero development. For instance, a 50% " +
"autodonation take a transaction fee of 0.005 XMR and add a 0.0025 XMR to support Monero development.")
}
+ Column {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ spacing: 12
+
+ CheckBox {
+ text: qsTr("Allow background mining?")
+ anchors.left: parent.left
+ anchors.right: parent.right
+ background: "#F0EEEE"
+ fontColor: "#4A4646"
+ fontSize: 18
+ checkedIcon: "../images/checkedVioletIcon.png"
+ uncheckedIcon: "../images/uncheckedIcon.png"
+ checked: true
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ font.family: "Arial"
+ font.pixelSize: 15
+ color: "#4A4646"
+ wrapMode: Text.Wrap
+ text: qsTr("Mining secures the Monero network, and also pays a small reward for the work done. This option " +
+ "will let Monero mine when your computer is on mains power and is idle. It will stop mining when you continue working.")
+ }
+ }
}
}
diff --git a/wizard/WizardMain.qml b/wizard/WizardMain.qml
index 4ad396c6..a20d654c 100644
--- a/wizard/WizardMain.qml
+++ b/wizard/WizardMain.qml
@@ -31,11 +31,34 @@ import "../components"
Rectangle {
id: wizard
+ property alias nextButton : nextButton
+
+
signal useMoneroClicked()
border.color: "#DBDBDB"
border.width: 1
color: "#FFFFFF"
+ function switchPage(next) {
+ if(next === false) {
+ if(currentPage > 0) {
+ pages[currentPage].opacity = 0
+ pages[--currentPage].opacity = 1
+ }
+ } else {
+ if(currentPage < pages.length - 1) {
+ pages[currentPage].opacity = 0
+ pages[++currentPage].opacity = 1
+ }
+ }
+
+ // disallow "next" button until password matches
+ if (pages[currentPage] === passwordPage) {
+ nextButton.visible = passwordPage.passwordValid
+ }
+ }
+
+
Rectangle {
id: nextButton
anchors.verticalCenter: parent.verticalCenter
@@ -62,28 +85,8 @@ Rectangle {
}
property int currentPage: 0
- function switchPage(next) {
- var pages = new Array()
- pages[0] = welcomePage
- pages[1] = optionsPage
- pages[2] = createWalletPage
- pages[3] = passwordPage
- pages[4] = configurePage
- pages[5] = donationPage
- pages[6] = finishPage
+ property var pages: [welcomePage, optionsPage, createWalletPage, passwordPage, /*configurePage,*/ donationPage, finishPage ]
- if(next === false) {
- if(currentPage > 0) {
- pages[currentPage].opacity = 0
- pages[--currentPage].opacity = 1
- }
- } else {
- if(currentPage < pages.length - 1) {
- pages[currentPage].opacity = 0
- pages[++currentPage].opacity = 1
- }
- }
- }
WizardWelcome {
id: welcomePage
@@ -126,15 +129,15 @@ Rectangle {
anchors.rightMargin: 50
}
- WizardConfigure {
- id: configurePage
- anchors.top: parent.top
- anchors.bottom: parent.bottom
- anchors.right: nextButton.left
- anchors.left: prevButton.right
- anchors.leftMargin: 50
- anchors.rightMargin: 50
- }
+// WizardConfigure {
+// id: configurePage
+// anchors.top: parent.top
+// anchors.bottom: parent.bottom
+// anchors.right: nextButton.left
+// anchors.left: prevButton.right
+// anchors.leftMargin: 50
+// anchors.rightMargin: 50
+// }
WizardDonation {
id: donationPage
@@ -192,7 +195,7 @@ Rectangle {
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
- visible: parent.currentPage === 6
+ visible: parent.pages[currentPage] === finishPage
onClicked: wizard.useMoneroClicked()
}
}
diff --git a/wizard/WizardOptions.qml b/wizard/WizardOptions.qml
index 83a8a863..debdee88 100644
--- a/wizard/WizardOptions.qml
+++ b/wizard/WizardOptions.qml
@@ -137,35 +137,5 @@ Item {
text: qsTr("I want to recover my account
from my 24 work seed")
}
}
-
- Column {
- anchors.verticalCenter: parent.verticalCenter
- spacing: 30
-
- Rectangle {
- width: 202; height: 202
- radius: 101
- color: openAccountArea.containsMouse ? "#DBDBDB" : "#FFFFFF"
-
- Image {
- anchors.centerIn: parent
- source: "qrc:///images/openAccount.png"
- }
-
- MouseArea {
- id: openAccountArea
- anchors.fill: parent
- hoverEnabled: true
- }
- }
-
- Text {
- font.family: "Arial"
- font.pixelSize: 16
- color: "#4A4949"
- horizontalAlignment: Text.AlignHCenter
- text: qsTr("I want to open account file")
- }
- }
}
}
diff --git a/wizard/WizardPassword.qml b/wizard/WizardPassword.qml
index 8c54ad65..2926a9e9 100644
--- a/wizard/WizardPassword.qml
+++ b/wizard/WizardPassword.qml
@@ -38,6 +38,18 @@ Item {
onOpacityChanged: visible = opacity !== 0
+ function handlePassword() {
+ // allow to forward step only if passwords match
+ // print("pass1: ", passwordItem.password)
+ // print("pass2: ", retypePasswordItem.password)
+ // TODO: update password strength
+ wizard.nextButton.visible = passwordItem.password === retypePasswordItem.password
+ }
+
+ property bool passwordValid : passwordItem.password != ''
+ && passwordItem.password === retypePasswordItem.password
+
+
Row {
id: dotsRow
anchors.top: parent.top
@@ -97,36 +109,18 @@ Item {
}
}
- Item {
+
+ WizardPasswordInput {
id: passwordItem
anchors.top: headerColumn.bottom
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 24
width: 300
height: 62
-
- TextInput {
- anchors.fill: parent
- horizontalAlignment: TextInput.AlignHCenter
- verticalAlignment: TextInput.AlignVCenter
- font.family: "Arial"
- font.pixelSize: 32
- renderType: Text.NativeRendering
- color: "#35B05A"
- passwordCharacter: "•"
- echoMode: TextInput.Password
- focus: true
- }
-
- Rectangle {
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- height: 1
- color: "#DBDBDB"
- }
+ onChanged: handlePassword()
}
+
PrivacyLevelSmall {
id: privacyLevel
anchors.left: parent.left
@@ -137,33 +131,13 @@ Item {
interactive: false
}
- Item {
+ WizardPasswordInput {
id: retypePasswordItem
anchors.top: privacyLevel.bottom
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 24
width: 300
height: 62
-
- TextInput {
- anchors.fill: parent
- horizontalAlignment: TextInput.AlignHCenter
- verticalAlignment: TextInput.AlignVCenter
- font.family: "Arial"
- font.pixelSize: 32
- renderType: Text.NativeRendering
- color: "#35B05A"
- passwordCharacter: "•"
- echoMode: TextInput.Password
- focus: true
- }
-
- Rectangle {
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- height: 1
- color: "#DBDBDB"
- }
+ onChanged: handlePassword()
}
}
diff --git a/wizard/WizardPasswordInput.qml b/wizard/WizardPasswordInput.qml
new file mode 100644
index 00000000..d2bbf44a
--- /dev/null
+++ b/wizard/WizardPasswordInput.qml
@@ -0,0 +1,34 @@
+// WizardPasswordInput.qml
+
+import QtQuick 2.0
+
+Item {
+ property alias password: password.text
+ signal changed(string password)
+
+
+ TextInput {
+ id : password
+ anchors.fill: parent
+ horizontalAlignment: TextInput.AlignHCenter
+ verticalAlignment: TextInput.AlignVCenter
+ font.family: "Arial"
+ font.pixelSize: 32
+ renderType: Text.NativeRendering
+ color: "#35B05A"
+ passwordCharacter: "•"
+ echoMode: TextInput.Password
+ focus: true
+ Keys.onReleased: {
+ changed(text)
+ }
+ }
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ height: 1
+ color: "#DBDBDB"
+ }
+}