From 08ce9ecf4568fcaf1000ff108a6065a36e08ac2d Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Thu, 12 Aug 2021 21:42:50 +0000 Subject: [PATCH] GUI: SendConfirmationDialog: Defer button setup until exec --- src/qt/sendcoinsdialog.cpp | 15 ++++++++------- src/qt/sendcoinsdialog.h | 1 + 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 89bd35eb1b..2ef503b8e4 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -1055,15 +1055,19 @@ void SendCoinsDialog::coinControlUpdateLabels() } SendConfirmationDialog::SendConfirmationDialog(const QString& title, const QString& text, const QString& informative_text, const QString& detailed_text, int _secDelay, bool enable_send, bool always_show_unsigned, QWidget* parent) - : QMessageBox(parent), secDelay(_secDelay), m_enable_send(enable_send) + : QMessageBox(parent), secDelay(_secDelay), m_enable_save(always_show_unsigned || !enable_send), m_enable_send(enable_send) { setIcon(QMessageBox::Question); setWindowTitle(title); // On macOS, the window title is ignored (as required by the macOS Guidelines). setText(text); setInformativeText(informative_text); setDetailedText(detailed_text); +} + +int SendConfirmationDialog::exec() +{ setStandardButtons(QMessageBox::Yes | QMessageBox::Cancel); - if (always_show_unsigned || !enable_send) addButton(QMessageBox::Save); + if (m_enable_save) addButton(QMessageBox::Save); setDefaultButton(QMessageBox::Cancel); yesButton = button(QMessageBox::Yes); if (confirmButtonText.isEmpty()) { @@ -1071,13 +1075,10 @@ SendConfirmationDialog::SendConfirmationDialog(const QString& title, const QStri } m_psbt_button = button(QMessageBox::Save); updateButtons(); - connect(&countDownTimer, &QTimer::timeout, this, &SendConfirmationDialog::countDown); -} -int SendConfirmationDialog::exec() -{ - updateButtons(); + connect(&countDownTimer, &QTimer::timeout, this, &SendConfirmationDialog::countDown); countDownTimer.start(1s); + return QMessageBox::exec(); } diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h index 4e861e55bb..85229514ff 100644 --- a/src/qt/sendcoinsdialog.h +++ b/src/qt/sendcoinsdialog.h @@ -144,6 +144,7 @@ private: QTimer countDownTimer; int secDelay; QString confirmButtonText{tr("Send")}; + bool m_enable_save; bool m_enable_send; QString m_psbt_button_text{tr("Create Unsigned")}; };