From dc5028f019330c22f005bf57d3574d450067de41 Mon Sep 17 00:00:00 2001 From: selsta Date: Wed, 27 Feb 2019 00:26:16 +0100 Subject: [PATCH] SettingsInfo: allow a date for restore height --- pages/settings/SettingsInfo.qml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pages/settings/SettingsInfo.qml b/pages/settings/SettingsInfo.qml index e8f1b08a..4e98463a 100644 --- a/pages/settings/SettingsInfo.qml +++ b/pages/settings/SettingsInfo.qml @@ -31,6 +31,7 @@ import QtQuick.Layouts 1.1 import QtQuick.Controls 2.0 import QtQuick.Dialogs 1.2 +import "../../js/Wizard.js" as Wizard import "../../version.js" as Version import "../../components" as MoneroComponents @@ -172,10 +173,19 @@ Rectangle { property var style: "" text: (currentWallet ? currentWallet.walletCreationHeight : "") + style + qsTr(" (Click to change)") + translationManager.emptyString onLinkActivated: { - inputDialog.labelText = qsTr("Set a new restore height:") + translationManager.emptyString; + inputDialog.labelText = qsTr("Set a new restore height.\nYou can enter a block height or a date (YYYY-MM-DD):") + translationManager.emptyString; inputDialog.inputText = currentWallet ? currentWallet.walletCreationHeight : "0"; inputDialog.onAcceptedCallback = function() { - var _restoreHeight = parseInt(inputDialog.inputText); + var _restoreHeight; + if (inputDialog.inputText) { + var restoreHeightText = inputDialog.inputText; + // Parse date string or restore height as integer + if(restoreHeightText.indexOf('-') === 4 && restoreHeightText.length === 10) { + _restoreHeight = Wizard.getApproximateBlockchainHeight(restoreHeightText); + } else { + _restoreHeight = parseInt(restoreHeightText) + } + } if (!isNaN(_restoreHeight)) { if(_restoreHeight >= 0) { currentWallet.walletCreationHeight = _restoreHeight @@ -206,7 +216,7 @@ Rectangle { } } - appWindow.showStatusMessage(qsTr("Invalid restore height specified. Must be a number."),3); + appWindow.showStatusMessage(qsTr("Invalid restore height specified. Must be a number or a date formatted YYYY-MM-DD"),3); } inputDialog.onRejectedCallback = null; inputDialog.open()