diff --git a/components/PrivacyLevelSmall.qml b/components/PrivacyLevelSmall.qml index 21c794ef..9321ffbd 100644 --- a/components/PrivacyLevelSmall.qml +++ b/components/PrivacyLevelSmall.qml @@ -36,6 +36,13 @@ Item { height: 40 clip: true + onFillLevelChanged: { + if (!interactive) { + //print("fillLevel: " + fillLevel) + fillRect.width = row.positions[fillLevel].currentX + row.x + } + } + Rectangle { anchors.left: parent.left anchors.right: parent.right @@ -134,6 +141,7 @@ Item { if(index !== -1) { fillRect.width = Qt.binding(function(){ return row.positions[index].currentX + row.x }) item.fillLevel = index + print ("fillLevel: " + item.fillLevel) } } @@ -148,7 +156,7 @@ Item { anchors.rightMargin: 8 anchors.top: bar.bottom anchors.topMargin: 5 - property var positions: new Array() + property var positions: [] Row { id: row2 diff --git a/monero-core.pro b/monero-core.pro index fece659e..dc2a500a 100644 --- a/monero-core.pro +++ b/monero-core.pro @@ -55,7 +55,7 @@ QML_IMPORT_PATH = # Default rules for deployment. include(deployment.pri) -DISTFILES += \ + OTHER_FILES += \ @@ -67,3 +67,4 @@ OTHER_FILES += \ + diff --git a/wizard/WizardMain.qml b/wizard/WizardMain.qml index a52c219f..6b25be1d 100644 --- a/wizard/WizardMain.qml +++ b/wizard/WizardMain.qml @@ -34,9 +34,13 @@ Rectangle { property alias nextButton : nextButton property var settings : ({}) property int currentPage: 0 - property var pages: [welcomePage, optionsPage, createWalletPage, recoveryWalletPage, - passwordPage,/*configurePage,*/ donationPage, finishPage ] - property string path; + + property var paths: { + "create_wallet" : [welcomePage, optionsPage, createWalletPage, passwordPage, donationPage, finishPage ], + "recovery_wallet" : [welcomePage, optionsPage, recoveryWalletPage, passwordPage, donationPage, finishPage ] + } + property string currentPath: "create_wallet" + property var pages: paths[currentPath] signal useMoneroClicked() border.color: "#DBDBDB" @@ -51,20 +55,8 @@ Rectangle { print ("switchpage: start: currentPage: ", currentPage); if (currentPage > 0 || currentPage < pages.length - 1) { - pages[currentPage].opacity = 0 - var step_value = next ? 1 : -1 - // special case - we stepping backward from password page: - // previous page "createWallet" or "recoveryWallet" - if (!next) { - print ("stepping back: current page: ", currentPage); - if ((pages[currentPage] === passwordPage && path === "create_walled") - || (pages[currentPage] === recoveryWalletPage) ) { - step_value *= 2; - } - } - currentPage += step_value pages[currentPage].opacity = 1; handlePageChanged(); @@ -73,25 +65,38 @@ Rectangle { } function handlePageChanged() { - // disable "next" button until passwords match - if (pages[currentPage] === passwordPage) { + switch (pages[currentPage]) { + case passwordPage: + // disable "next" button until passwords match nextButton.enabled = passwordPage.passwordValid; - } else if (pages[currentPage] === finishPage) { + if (currentPath === "create_wallet") { + passwordPage.titleText = qsTr("Now that your wallet has been created, please set a password for the wallet") + } else { + passwordPage.titleText = qsTr("Now that your wallet has been restored, please set a password for the wallet") + } + break; + case finishPage: // display settings summary finishPage.updateSettingsSummary(); - nextButton.visible = false - } else { - var enableButton = pages[currentPage] !== optionsPage; - nextButton.visible = nextButton.enabled = enableButton - print ("nextButtonVisible: ", enableButton) + nextButton.visible = false; + break; + case recoveryWalletPage: + // TODO: disable "next button" until 25 words private key entered + // nextButton.enabled = false; + break + default: + var nextButtonVisible = pages[currentPage] !== optionsPage; + //nextButton.visible = nextButton.enabled = nextButtonVisible; } + } function openCreateWalletPage() { print ("show create wallet page"); pages[currentPage].opacity = 0; createWalletPage.opacity = 1 - path = "create_wallet"; + currentPath = "create_wallet" + pages = paths[currentPath] currentPage = pages.indexOf(createWalletPage) handlePageChanged() } @@ -100,7 +105,8 @@ Rectangle { print ("show recovery wallet page"); pages[currentPage].opacity = 0 recoveryWalletPage.opacity = 1 - path = "recovery_wallet" + currentPath = "recovery_wallet" + pages = paths[currentPath] currentPage = pages.indexOf(recoveryWalletPage) handlePageChanged() } @@ -134,8 +140,6 @@ Rectangle { } - - WizardWelcome { id: welcomePage anchors.top: parent.top @@ -246,7 +250,7 @@ Rectangle { shadowPressedColor: "#B32D00" releasedColor: "#FF6C3C" pressedColor: "#FF4304" - visible: parent.pages[currentPage] === finishPage + visible: parent.paths[currentPath][currentPage] === finishPage onClicked: wizard.useMoneroClicked() } } diff --git a/wizard/WizardPassword.qml b/wizard/WizardPassword.qml index d12409ea..eb9d9c2c 100644 --- a/wizard/WizardPassword.qml +++ b/wizard/WizardPassword.qml @@ -28,10 +28,15 @@ import QtQuick 2.2 import "../components" +import "utils.js" as Utils Item { opacity: 0 visible: false + property bool passwordValid : passwordItem.password != '' + && passwordItem.password === retypePasswordItem.password + + property alias titleText: titleText.text Behavior on opacity { NumberAnimation { duration: 100; easing.type: Easing.InQuad } } @@ -40,12 +45,15 @@ Item { function handlePassword() { // allow to forward step only if passwords match - // TODO: update password strength wizard.nextButton.enabled = passwordItem.password === retypePasswordItem.password + // scorePassword returns value from 1..100 + var strength = Utils.scorePassword(passwordItem.password) + // privacyLevel component uses 1..13 scale + privacyLevel.fillLevel = Utils.mapScope(1, 100, 1, 13, strength) } - property bool passwordValid : passwordItem.password != '' - && passwordItem.password === retypePasswordItem.password + + Row { @@ -84,6 +92,7 @@ Item { spacing: 24 Text { + id: titleText anchors.left: parent.left width: headerColumn.width - dotsRow.width - 16 font.family: "Arial" @@ -91,7 +100,7 @@ Item { wrapMode: Text.Wrap //renderType: Text.NativeRendering color: "#3F3F3F" - text: qsTr("Now that your wallet has been created, please set a password for the wallet") + } Text { diff --git a/wizard/WizardRecoveryWallet.qml b/wizard/WizardRecoveryWallet.qml index 46af302b..9093c59a 100644 --- a/wizard/WizardRecoveryWallet.qml +++ b/wizard/WizardRecoveryWallet.qml @@ -55,5 +55,9 @@ Item { wordsTextItem.tipTextVisible: false wordsTextItem.memoTextReadOnly: false wordsTextItem.memoText: "" + wordsTextItem.onMemoTextChanged: { + var wordsArray = wordsTextItem.memoText.trim().split(" ") + //wizard.nextButton.enabled = wordsArray.length === 25 + } } }