Merge pull request 'Wizard: reset restore page on initialize' (#260) from tobtoht/feather:wizard_reset_restore_page into master

Reviewed-on: https://git.wownero.com/feather/feather/pulls/260
This commit is contained in:
tobtoht 2020-12-25 15:36:57 +00:00
commit bc2cac672a
4 changed files with 35 additions and 19 deletions

View file

@ -17,15 +17,10 @@ RestoreHeightWidget::RestoreHeightWidget(QWidget *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
ui->lineEdit_restoreHeight->setValidator(new QIntValidator(0, 2147483647, this)); ui->lineEdit_restoreHeight->setValidator(new QIntValidator(0, 2147483647, this));
connect(ui->lineEdit_restoreHeight, &QLineEdit::textEdited, [=](const QString &val){
// update slider on lineEdit change connect(ui->lineEdit_restoreHeight, &QLineEdit::textEdited, [this](const QString &val){
if (val.isEmpty()) return; if (val.isEmpty()) return;
auto height = val.toUInt(); this->setHeight(val.toInt());
if(height <= 1) return;
auto timestamp = m_restoreHeightLookup->restoreHeightToDate(height);
ui->restoreSlider->blockSignals(true);
ui->restoreSlider->setValue(timestamp);
ui->restoreSlider->blockSignals(false);
}); });
} }
@ -33,6 +28,20 @@ void RestoreHeightWidget::hideSlider(){
ui->restoreGrid->hide(); 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) { void RestoreHeightWidget::initRestoreHeights(RestoreHeightLookup *lookup) {
// init slider // init slider
m_restoreHeightLookup = lookup; m_restoreHeightLookup = lookup;
@ -40,15 +49,20 @@ void RestoreHeightWidget::initRestoreHeights(RestoreHeightLookup *lookup) {
QList<int> blockDates = m_restoreHeightLookup->data.keys(); QList<int> blockDates = m_restoreHeightLookup->data.keys();
ui->restoreSlider->setMinimum(blockDates[0]); ui->restoreSlider->setMinimum(blockDates[0]);
ui->restoreSlider->setMaximum(now); 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; QDateTime timestamp;
timestamp.setTime_t(date); timestamp.setTime_t(date);
ui->label_restoreHeightDate->setText(timestamp.toString("yyyy-MM-dd")); 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() { int RestoreHeightWidget::getHeight() {

View file

@ -20,14 +20,14 @@ class RestoreHeightWidget : public QWidget
public: public:
explicit RestoreHeightWidget(QWidget *parent = nullptr); explicit RestoreHeightWidget(QWidget *parent = nullptr);
void initRestoreHeights(RestoreHeightLookup *lookup); void initRestoreHeights(RestoreHeightLookup *lookup);
void setHeight(int height);
int getHeight(); int getHeight();
void hideSlider(); void hideSlider();
~RestoreHeightWidget() override; ~RestoreHeightWidget() override;
private slots:
void onValueChanged(int date);
private: private:
void updateTimestamp(int date);
RestoreHeightLookup *m_restoreHeightLookup = nullptr; RestoreHeightLookup *m_restoreHeightLookup = nullptr;
Ui::RestoreHeightWidget *ui; Ui::RestoreHeightWidget *ui;
}; };

View file

@ -104,7 +104,10 @@ int RestorePage::nextId() const {
return WalletWizard::Page_CreateWallet; return WalletWizard::Page_CreateWallet;
} }
void RestorePage::cleanupPage() const {} void RestorePage::initializePage() {
ui->seedEdit->setText("");
ui->restoreHeightWidget->setHeight(1);
}
bool RestorePage::validatePage() { bool RestorePage::validatePage() {
ui->label_errorString->hide(); ui->label_errorString->hide();

View file

@ -25,12 +25,11 @@ class RestorePage : public QWizardPage
public: public:
explicit RestorePage(AppContext *ctx, QWidget *parent = nullptr); explicit RestorePage(AppContext *ctx, QWidget *parent = nullptr);
bool validatePage() override; bool validatePage() override;
void initializePage() override;
int nextId() const override; int nextId() const override;
void cleanupPage() const;
private: private:
AppContext *m_ctx; AppContext *m_ctx;
QLabel *topLabel;
Ui::RestorePage *ui; Ui::RestorePage *ui;
int m_mode = 14; int m_mode = 14;