From fc68567f23b2f754f3e54e73c00a6ca41558f923 Mon Sep 17 00:00:00 2001 From: selsta Date: Fri, 1 Mar 2019 08:20:05 +0100 Subject: [PATCH] wizard: improve restore from device ui/ux --- wizard/WizardController.qml | 7 ++++++- wizard/WizardCreateDevice1.qml | 33 +++++++++++++++++++++++++++++++++ wizard/WizardSummary.qml | 8 +++++++- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/wizard/WizardController.qml b/wizard/WizardController.qml index c57ff042..4224e904 100644 --- a/wizard/WizardController.qml +++ b/wizard/WizardController.qml @@ -60,6 +60,7 @@ Rectangle { wizardController.walletOptionsIsRecovering = false; wizardController.walletOptionsIsRecoveringFromDevice = false; wizardController.walletOptionsDeviceName = ''; + wizardController.walletOptionsDeviceIsRestore = false; wizardController.tmpWalletFilename = ''; wizardController.walletRestoreMode = 'seed' wizardController.walletOptionsSubaddressLookahead = ''; @@ -89,6 +90,7 @@ Rectangle { property bool walletOptionsIsRecoveringFromDevice: false property string walletOptionsSubaddressLookahead: '' property string walletOptionsDeviceName: '' + property bool walletOptionsDeviceIsRestore: false property string tmpWalletFilename: '' property var remoteNodes: '' @@ -388,7 +390,10 @@ Rectangle { wizardController.m_wallet = wallet; wizardController.walletOptionsIsRecoveringFromDevice = true; wizardController.tmpWalletFilename = tmp_wallet_filename; - wizardController.walletOptionsRestoreHeight = wizardController.m_wallet.walletCreationHeight; + if (!wizardController.walletOptionsDeviceIsRestore) { + // User creates a hardware wallet for the first time. Use a recent block height from API. + wizardController.walletOptionsRestoreHeight = wizardController.m_wallet.walletCreationHeight; + } } else { console.log(wallet.errorString) appWindow.showStatusMessage(qsTr(wallet.errorString), 5); diff --git a/wizard/WizardCreateDevice1.qml b/wizard/WizardCreateDevice1.qml index 060c4f12..f80b767d 100644 --- a/wizard/WizardCreateDevice1.qml +++ b/wizard/WizardCreateDevice1.qml @@ -79,6 +79,38 @@ Rectangle { id: walletInput } + ColumnLayout { + spacing: 0 + + Layout.topMargin: 10 * scaleRatio + Layout.fillWidth: true + + MoneroComponents.RadioButton { + id: newDeviceWallet + text: qsTr("Create a new wallet from device.") + translationManager.emptyString + fontSize: 16 * scaleRatio + checked: true + onClicked: { + checked = true; + restoreDeviceWallet.checked = false; + wizardController.walletOptionsDeviceIsRestore = false; + } + } + + MoneroComponents.RadioButton { + id: restoreDeviceWallet + Layout.topMargin: 10 * scaleRatio + text: qsTr("Restore a wallet from device. Use this if you used your hardware wallet before.") + translationManager.emptyString + fontSize: 16 * scaleRatio + checked: false + onClicked: { + checked = true; + newDeviceWallet.checked = false; + wizardController.walletOptionsDeviceIsRestore = true; + } + } + } + GridLayout { Layout.topMargin: 10 * scaleRatio Layout.fillWidth: true @@ -88,6 +120,7 @@ Rectangle { MoneroComponents.LineEdit { id: restoreHeight + visible: !newDeviceWallet.checked Layout.fillWidth: true labelText: qsTr("Wallet creation date as `YYYY-MM-DD` or restore height") + translationManager.emptyString labelFontSize: 14 * scaleRatio diff --git a/wizard/WizardSummary.qml b/wizard/WizardSummary.qml index 5b62a345..e3e576e4 100644 --- a/wizard/WizardSummary.qml +++ b/wizard/WizardSummary.qml @@ -67,7 +67,13 @@ ColumnLayout { Layout.fillWidth: true header: qsTr("Restore height") + translationManager.emptyString value: wizardController.walletOptionsRestoreHeight - visible: wizardController.walletOptionsRestoreHeight > 0 + visible: { + if (walletOptionsIsRecoveringFromDevice && !wizardController.walletOptionsDeviceIsRestore) { + return false; + } else { + return (wizardController.walletOptionsRestoreHeight > 0); + } + } } WizardSummaryItem {