SettingsInfo: allow a date for restore height

This commit is contained in:
selsta 2019-02-27 00:26:16 +01:00
parent 42103432b7
commit dc5028f019
No known key found for this signature in database
GPG key ID: 2EA0A99A8B07AE5E

View file

@ -31,6 +31,7 @@ import QtQuick.Layouts 1.1
import QtQuick.Controls 2.0 import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2 import QtQuick.Dialogs 1.2
import "../../js/Wizard.js" as Wizard
import "../../version.js" as Version import "../../version.js" as Version
import "../../components" as MoneroComponents import "../../components" as MoneroComponents
@ -172,10 +173,19 @@ Rectangle {
property var style: "<style type='text/css'>a {cursor:pointer;text-decoration: none; color: #FF6C3C}</style>" property var style: "<style type='text/css'>a {cursor:pointer;text-decoration: none; color: #FF6C3C}</style>"
text: (currentWallet ? currentWallet.walletCreationHeight : "") + style + qsTr(" <a href='#'> (Click to change)</a>") + translationManager.emptyString text: (currentWallet ? currentWallet.walletCreationHeight : "") + style + qsTr(" <a href='#'> (Click to change)</a>") + translationManager.emptyString
onLinkActivated: { 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.inputText = currentWallet ? currentWallet.walletCreationHeight : "0";
inputDialog.onAcceptedCallback = function() { 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 (!isNaN(_restoreHeight)) {
if(_restoreHeight >= 0) { if(_restoreHeight >= 0) {
currentWallet.walletCreationHeight = _restoreHeight 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.onRejectedCallback = null;
inputDialog.open() inputDialog.open()