From fa3b835e04395537146ac677f44176e1f72368a1 Mon Sep 17 00:00:00 2001 From: w0xlt <94266259+w0xlt@users.noreply.github.com> Date: Sat, 26 Feb 2022 00:10:14 -0300 Subject: [PATCH 1/2] gui: make error message layout in `sendcoinsentry` consistent --- src/qt/forms/sendcoinsentry.ui | 10 ++++++++++ src/qt/sendcoinsentry.cpp | 16 +++++++++++++++- src/qt/sendcoinsentry.h | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui index 934363af1f1..29e9c62f0ba 100644 --- a/src/qt/forms/sendcoinsentry.ui +++ b/src/qt/forms/sendcoinsentry.ui @@ -55,6 +55,16 @@ The Bitcoin address to send the payment to + + + + + + + + + + 2 diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp index 339ac580d80..4654e0ec939 100644 --- a/src/qt/sendcoinsentry.cpp +++ b/src/qt/sendcoinsentry.cpp @@ -7,10 +7,11 @@ #endif #include -#include +#include #include #include +#include #include #include #include @@ -50,6 +51,7 @@ SendCoinsEntry::SendCoinsEntry(const PlatformStyle *_platformStyle, QWidget *par connect(ui->deleteButton_is, &QPushButton::clicked, this, &SendCoinsEntry::deleteClicked); connect(ui->deleteButton_s, &QPushButton::clicked, this, &SendCoinsEntry::deleteClicked); connect(ui->useAvailableBalanceButton, &QPushButton::clicked, this, &SendCoinsEntry::useAvailableBalanceClicked); + connect(ui->payTo, &QValidatedLineEdit::textEdited, this, &SendCoinsEntry::addressEdited); } SendCoinsEntry::~SendCoinsEntry() @@ -266,3 +268,15 @@ bool SendCoinsEntry::updateLabel(const QString &address) return false; } + +// Address changed +void SendCoinsEntry::addressEdited(const QString& address) +{ + ui->PayToLabel->setStyleSheet("QLabel{color:red;}"); + + if (!address.isEmpty() && !IsValidDestination(DecodeDestination(address.toStdString()))) { + ui->PayToLabel->setText(tr("Warning: Invalid Bitcoin address")); + } else { + ui->PayToLabel->setText(""); + } +} diff --git a/src/qt/sendcoinsentry.h b/src/qt/sendcoinsentry.h index e8db1e3a5ce..b3863a5f526 100644 --- a/src/qt/sendcoinsentry.h +++ b/src/qt/sendcoinsentry.h @@ -68,6 +68,7 @@ private Q_SLOTS: void on_addressBookButton_clicked(); void on_pasteButton_clicked(); void updateDisplayUnit(); + void addressEdited(const QString& address); protected: void changeEvent(QEvent* e) override; From 9d75184fe7d915e05ac01d50cec90881594ef19a Mon Sep 17 00:00:00 2001 From: w0xlt <94266259+w0xlt@users.noreply.github.com> Date: Sat, 26 Feb 2022 00:11:48 -0300 Subject: [PATCH 2/2] gui: make error message layout in `editaddressdialog` consistent --- src/qt/editaddressdialog.cpp | 17 ++++++- src/qt/editaddressdialog.h | 3 ++ src/qt/forms/editaddressdialog.ui | 82 +++++++++++++++---------------- 3 files changed, 60 insertions(+), 42 deletions(-) diff --git a/src/qt/editaddressdialog.cpp b/src/qt/editaddressdialog.cpp index fa27635981d..8a9f38eb8fe 100644 --- a/src/qt/editaddressdialog.cpp +++ b/src/qt/editaddressdialog.cpp @@ -3,9 +3,10 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include -#include +#include #include +#include #include #include @@ -44,6 +45,8 @@ EditAddressDialog::EditAddressDialog(Mode _mode, QWidget *parent) : connect(delegate, &GUIUtil::ItemDelegate::keyEscapePressed, this, &EditAddressDialog::reject); mapper->setItemDelegate(delegate); + connect(ui->addressEdit, &QValidatedLineEdit::textEdited, this, &EditAddressDialog::addressEdited); + GUIUtil::handleCloseWindowShortcut(this); } @@ -164,3 +167,15 @@ void EditAddressDialog::setAddress(const QString &_address) this->address = _address; ui->addressEdit->setText(_address); } + +// Address changed +void EditAddressDialog::addressEdited(const QString& address) +{ + ui->addressErrorLabel->setStyleSheet("QLabel{color:red;}"); + + if (!address.isEmpty() && !IsValidDestination(DecodeDestination(address.toStdString()))) { + ui->addressErrorLabel->setText(tr("Warning: Invalid Bitcoin address")); + } else { + ui->addressErrorLabel->setText(""); + } +} diff --git a/src/qt/editaddressdialog.h b/src/qt/editaddressdialog.h index f7ad80bb2df..43ed66869cb 100644 --- a/src/qt/editaddressdialog.h +++ b/src/qt/editaddressdialog.h @@ -42,6 +42,9 @@ class EditAddressDialog : public QDialog public Q_SLOTS: void accept() override; +private Q_SLOTS: + void addressEdited(const QString& address); + private: bool saveCurrentRow(); diff --git a/src/qt/forms/editaddressdialog.ui b/src/qt/forms/editaddressdialog.ui index e968271107f..3633fce7ce2 100644 --- a/src/qt/forms/editaddressdialog.ui +++ b/src/qt/forms/editaddressdialog.ui @@ -13,49 +13,49 @@ Edit Address - - - - - QFormLayout::AllNonFixedFieldsGrow + + + + + &Label - - - - &Label - - - labelEdit - - - - - - - The label associated with this address list entry - - - - - - - &Address - - - addressEdit - - - - - - - The address associated with this address list entry. This can only be modified for sending addresses. - - - - + + labelEdit + + + + + + + The label associated with this address list entry + + + + + + + &Address + + + addressEdit + + + + + + + The address associated with this address list entry. This can only be modified for sending addresses. + + + + + + + + + - + Qt::Horizontal