Skip to content

Commit

Permalink
Merge bitcoin#17965: qt: Revert changes of pr17943
Browse files Browse the repository at this point in the history
70e4706 Revert "refactor: Remove never used default parameter" (Hennadii Stepanov)
219417b Revert "refactor: Simplify connection syntax" (Hennadii Stepanov)

Pull request description:

  The code, the `bool* ret = nullptr` parameter in the `BitcoinGUI::message()` slot, removed in bitcoin#17943 is not dead actually. It is used in `ThreadSafeMessageBox()` function:
  https://github.com/bitcoin/bitcoin/blob/a654626f076a72416a3d354218d7107571d6caaf/src/qt/bitcoingui.cpp#L1363-L1368

  Now in master (a654626):
  ```
  $ ./src/qt/bitcoin-qt -prune=-1
  Error: Prune cannot be configured with a negative value.
  bitcoin-qt: qt/bitcoingui.cpp:1369: bool ThreadSafeMessageBox(BitcoinGUI*, const string&, const string&, unsigned int): Assertion `invoked' failed.
  Aborted (core dumped)
  ```

  This PR reverts all commits of bitcoin#17943

  Additional notes: the bug was missed due to dynamic function call `QMetaObject::invokeMethod()` which cannot be checked at compile time. See bitcoin#16348 for more discussion.

  Sorry for introducing a bug.

ACKs for top commit:
  Sjors:
    ACK 70e4706
  laanwj:
    ACK 70e4706

Tree-SHA512: b968a026eaa4f5f39fd36ddc715d8e233f3c6420e6580f11d4ca422a5ff5d1d9d3df9ac11b353c3d4f434d67d6a69e37d2e26b8248d72bedd14ecba0a545a327
  • Loading branch information
laanwj authored and PastaPastaPasta committed Dec 22, 2021
1 parent b614776 commit 3e28512
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 6 deletions.
10 changes: 7 additions & 3 deletions src/qt/bitcoingui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -801,7 +801,9 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
connect(_clientModel, &ClientModel::additionalDataSyncProgressChanged, this, &BitcoinGUI::setAdditionalDataSyncProgress);

// Receive and report messages from client model
connect(_clientModel, &ClientModel::message, this, &BitcoinGUI::message);
connect(_clientModel, &ClientModel::message, [this](const QString &title, const QString &message, unsigned int style){
this->message(title, message, style);
});

// Show progress dialog
connect(_clientModel, &ClientModel::showProgress, this, &BitcoinGUI::showProgress);
Expand Down Expand Up @@ -1504,7 +1506,7 @@ void BitcoinGUI::setAdditionalDataSyncProgress(double nSyncProgress)
progressBar->setToolTip(tooltip);
}

void BitcoinGUI::message(const QString& title, QString message, unsigned int style)
void BitcoinGUI::message(const QString& title, QString message, unsigned int style, bool* ret)
{
// Default title. On macOS, the window title is ignored (as required by the macOS Guidelines).
QString strTitle{PACKAGE_NAME};
Expand Down Expand Up @@ -1558,7 +1560,9 @@ void BitcoinGUI::message(const QString& title, QString message, unsigned int sty
showNormalIfMinimized();
QMessageBox mBox(static_cast<QMessageBox::Icon>(nMBoxIcon), strTitle, message, buttons, this);
mBox.setTextFormat(Qt::PlainText);
mBox.exec();
int r = mBox.exec();
if (ret != nullptr)
*ret = r == QMessageBox::Ok;
} else {
notificator->notify(static_cast<Notificator::Class>(nNotifyIcon), strTitle, message);
}
Expand Down
3 changes: 2 additions & 1 deletion src/qt/bitcoingui.h
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,9 @@ public Q_SLOTS:
@param[in] message the displayed text
@param[in] style modality and style definitions (icon and used buttons - buttons only for message boxes)
@see CClientUIInterface::MessageBoxFlags
@param[in] ret pointer to a bool that will be modified to whether Ok was clicked (modal only)
*/
void message(const QString& title, QString message, unsigned int style);
void message(const QString& title, QString message, unsigned int style, bool* ret = nullptr);

#ifdef ENABLE_WALLET
void setCurrentWallet(WalletModel* wallet_model);
Expand Down
4 changes: 3 additions & 1 deletion src/qt/dash.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,9 @@ void BitcoinApplication::initializeResult(bool success)
if (paymentServer) {
connect(paymentServer, &PaymentServer::receivedPaymentRequest, window, &BitcoinGUI::handlePaymentRequest);
connect(window, &BitcoinGUI::receivedURI, paymentServer, &PaymentServer::handleURIOrFile);
connect(paymentServer, &PaymentServer::message, window, &BitcoinGUI::message);
connect(paymentServer, &PaymentServer::message, [this](const QString& title, const QString& message, unsigned int style) {
window->message(title, message, style);
});
QTimer::singleShot(100, paymentServer, &PaymentServer::uiReady);
}
#endif
Expand Down
4 changes: 3 additions & 1 deletion src/qt/walletview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,9 @@ void WalletView::setBitcoinGUI(BitcoinGUI *gui)
connect(coinJoinCoinsPage, &SendCoinsDialog::coinsSent, gui, &BitcoinGUI::gotoHistoryPage);

// Receive and report messages
connect(this, &WalletView::message, gui, &BitcoinGUI::message);
connect(this, &WalletView::message, [gui](const QString &title, const QString &message, unsigned int style) {
gui->message(title, message, style);
});

// Pass through encryption status changed signals
connect(this, &WalletView::encryptionStatusChanged, gui, &BitcoinGUI::updateWalletStatus);
Expand Down

0 comments on commit 3e28512

Please sign in to comment.