diff --git a/src/widgets/restoreheightwidget.cpp b/src/widgets/restoreheightwidget.cpp index 3d8a88a..c920e9c 100644 --- a/src/widgets/restoreheightwidget.cpp +++ b/src/widgets/restoreheightwidget.cpp @@ -17,15 +17,10 @@ RestoreHeightWidget::RestoreHeightWidget(QWidget *parent) : { ui->setupUi(this); ui->lineEdit_restoreHeight->setValidator(new QIntValidator(0, 2147483647, this)); - connect(ui->lineEdit_restoreHeight, &QLineEdit::textEdited, [=](const QString &val){ - // update slider on lineEdit change - if(val.isEmpty()) return; - auto height = val.toUInt(); - if(height <= 1) return; - auto timestamp = m_restoreHeightLookup->restoreHeightToDate(height); - ui->restoreSlider->blockSignals(true); - ui->restoreSlider->setValue(timestamp); - ui->restoreSlider->blockSignals(false); + + connect(ui->lineEdit_restoreHeight, &QLineEdit::textEdited, [this](const QString &val){ + if (val.isEmpty()) return; + this->setHeight(val.toInt()); }); } @@ -33,6 +28,20 @@ void RestoreHeightWidget::hideSlider(){ ui->restoreGrid->hide(); } +void RestoreHeightWidget::setHeight(int height) { + if (height < 0) + height = 0; + + // Update lineEdit + ui->lineEdit_restoreHeight->setText(QString::number(height)); + + // Update slider + int date = m_restoreHeightLookup->restoreHeightToDate(height); + ui->restoreSlider->setValue(date); + + this->updateTimestamp(date); +} + void RestoreHeightWidget::initRestoreHeights(RestoreHeightLookup *lookup) { // init slider m_restoreHeightLookup = lookup; @@ -40,15 +49,20 @@ void RestoreHeightWidget::initRestoreHeights(RestoreHeightLookup *lookup) { QList blockDates = m_restoreHeightLookup->data.keys(); ui->restoreSlider->setMinimum(blockDates[0]); ui->restoreSlider->setMaximum(now); - connect(ui->restoreSlider, &QSlider::valueChanged, this, &RestoreHeightWidget::onValueChanged); + + connect(ui->restoreSlider, &QSlider::sliderMoved, [this](int date){ + // Update lineEdit + int blockHeight = m_restoreHeightLookup->dateToRestoreHeight(date); + ui->lineEdit_restoreHeight->setText(QString::number(blockHeight)); + + this->updateTimestamp(date); + }); } -void RestoreHeightWidget::onValueChanged(int date) { +void RestoreHeightWidget::updateTimestamp(int date) { QDateTime timestamp; timestamp.setTime_t(date); ui->label_restoreHeightDate->setText(timestamp.toString("yyyy-MM-dd")); - auto blockHeight = m_restoreHeightLookup->dateToRestoreHeight(date); - ui->lineEdit_restoreHeight->setText(QString::number(blockHeight)); } int RestoreHeightWidget::getHeight() { diff --git a/src/widgets/restoreheightwidget.h b/src/widgets/restoreheightwidget.h index 9ed0d8d..04c303b 100644 --- a/src/widgets/restoreheightwidget.h +++ b/src/widgets/restoreheightwidget.h @@ -20,14 +20,14 @@ class RestoreHeightWidget : public QWidget public: explicit RestoreHeightWidget(QWidget *parent = nullptr); void initRestoreHeights(RestoreHeightLookup *lookup); + void setHeight(int height); int getHeight(); void hideSlider(); ~RestoreHeightWidget() override; -private slots: - void onValueChanged(int date); - private: + void updateTimestamp(int date); + RestoreHeightLookup *m_restoreHeightLookup = nullptr; Ui::RestoreHeightWidget *ui; }; diff --git a/src/wizard/restorewallet.cpp b/src/wizard/restorewallet.cpp index b5cda94..839dc76 100644 --- a/src/wizard/restorewallet.cpp +++ b/src/wizard/restorewallet.cpp @@ -104,7 +104,10 @@ int RestorePage::nextId() const { return WalletWizard::Page_CreateWallet; } -void RestorePage::cleanupPage() const {} +void RestorePage::initializePage() { + ui->seedEdit->setText(""); + ui->restoreHeightWidget->setHeight(1); +} bool RestorePage::validatePage() { ui->label_errorString->hide(); diff --git a/src/wizard/restorewallet.h b/src/wizard/restorewallet.h index 9f0d8e0..418d857 100644 --- a/src/wizard/restorewallet.h +++ b/src/wizard/restorewallet.h @@ -25,12 +25,11 @@ class RestorePage : public QWizardPage public: explicit RestorePage(AppContext *ctx, QWidget *parent = nullptr); bool validatePage() override; + void initializePage() override; int nextId() const override; - void cleanupPage() const; private: AppContext *m_ctx; - QLabel *topLabel; Ui::RestorePage *ui; int m_mode = 14;