diff --git a/js/Utils.js b/js/Utils.js index 1dc359d933..b709b2ce4e 100644 --- a/js/Utils.js +++ b/js/Utils.js @@ -108,6 +108,10 @@ function epoch(){ return Math.floor((new Date).getTime()/1000); } +function roundDownToNearestThousand(_num){ + return Math.floor(_num/1000.0)*1000 +} + function isAlpha(letter){ return letter.match(/^[A-Za-z0-9]+$/) !== null; } function isLowerCaseChar(letter){ return letter === letter.toLowerCase(); } diff --git a/pages/Keys.qml b/pages/Keys.qml index c74a14a92d..6391183572 100644 --- a/pages/Keys.qml +++ b/pages/Keys.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018, The Monero Project +// Copyright (c) 2014-2019, The Monero Project // // All rights reserved. // @@ -96,6 +96,34 @@ Rectangle { } } + ColumnLayout { + Layout.fillWidth: true + + MoneroComponents.Label { + Layout.fillWidth: true + fontSize: 22 + Layout.topMargin: 10 + text: qsTr("Wallet restore height") + translationManager.emptyString + } + + Rectangle { + Layout.fillWidth: true + height: 2 + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + Layout.bottomMargin: 10 + } + + MoneroComponents.LineEdit { + Layout.fillWidth: true + readOnly: true + copyButton: true + labelText: qsTr("Block #") + translationManager.emptyString + fontSize: 16 + text: currentWallet.walletCreationHeight + } + } + ColumnLayout { Layout.fillWidth: true diff --git a/pages/settings/SettingsInfo.qml b/pages/settings/SettingsInfo.qml index 9da336bf2d..1194c03db4 100644 --- a/pages/settings/SettingsInfo.qml +++ b/pages/settings/SettingsInfo.qml @@ -164,7 +164,7 @@ Rectangle { id: restoreHeight font.pixelSize: 14 textFormat: Text.RichText - text: (typeof currentWallet == "undefined") ? "" : qsTr("Wallet creation height: ") + translationManager.emptyString + text: (typeof currentWallet == "undefined") ? "" : qsTr("Wallet restore height: ") + translationManager.emptyString } MoneroComponents.TextBlock { diff --git a/wizard/WizardCreateWallet1.qml b/wizard/WizardCreateWallet1.qml index 031bbc5fc1..3549a76f35 100644 --- a/wizard/WizardCreateWallet1.qml +++ b/wizard/WizardCreateWallet1.qml @@ -32,6 +32,7 @@ import QtQuick.Layouts 1.2 import QtQuick.Controls 2.0 import "../js/Wizard.js" as Wizard +import "../js/Utils.js" as Utils import "../components" as MoneroComponents Rectangle { @@ -128,6 +129,63 @@ Rectangle { } } + ColumnLayout { + spacing: 0 + + Layout.topMargin: 10 + Layout.fillWidth: true + + MoneroComponents.LineEditMulti { + id: restoreHeight + + spacing: 0 + inputPaddingLeft: 16 + inputPaddingRight: 16 + inputPaddingTop: 20 + inputPaddingBottom: 20 + inputRadius: 0 + fontSize: 18 + fontBold: true + wrapMode: Text.WordWrap + labelText: qsTr("Wallet restore height") + translationManager.emptyString + labelFontSize: 14 + copyButton: false + readOnly: true + text: Utils.roundDownToNearestThousand(wizardController.m_wallet.walletCreationHeight) + } + + MoneroComponents.WarningBox { + Rectangle { + anchors.left: parent.left + anchors.top: parent.top + anchors.bottom: parent.bottom + width: 1 + color: MoneroComponents.Style.inputBorderColorInActive + } + + Rectangle { + anchors.right: parent.right + anchors.left: parent.left + anchors.bottom: parent.bottom + height: 1 + color: MoneroComponents.Style.inputBorderColorInActive + } + + Rectangle { + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + width: 1 + color: MoneroComponents.Style.inputBorderColorInActive + } + + radius: 0 + border.color: MoneroComponents.Style.inputBorderColorInActive + border.width: 0 + text: qsTr("Should you restore your wallet in the future, specifying this block number will recover your wallet quicker.") + translationManager.emptyString + } + } + WizardNav { progressSteps: 4 progress: 1 @@ -139,6 +197,7 @@ Rectangle { onNextClicked: { wizardController.walletOptionsName = walletInput.walletName.text; wizardController.walletOptionsLocation = walletInput.walletLocation.text; + wizardController.walletOptionsRestoreHeight = restoreHeight.text wizardStateView.state = "wizardCreateWallet2"; } }