From 68026ee29bfb1beb4bbcfacc8c66ba669063cccf Mon Sep 17 00:00:00 2001 From: tobtoht Date: Tue, 2 Jan 2024 17:41:51 +0100 Subject: [PATCH] send: on failure to commit allow manual rebroadcast --- src/MainWindow.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 049190e..1f79f96 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -969,8 +969,24 @@ void MainWindow::onTransactionCommitted(bool success, PendingTransaction *tx, co m_wallet->setForceKeyImageSync(true); } if (error.contains("no connection to daemon")) { - auto button = QMessageBox::question(this, "Unable to send transaction", "No connection to node. Retry sending transaction?"); - if (button == QMessageBox::Yes) { + QMessageBox box(this); + box.setWindowTitle("Question"); + box.setText("Unable to send transaction"); + box.setInformativeText("No connection to node. Retry sending transaction?"); + QPushButton *manual = box.addButton("Broadcast manually", QMessageBox::HelpRole); + box.addButton(QMessageBox::No); + box.addButton(QMessageBox::Yes); + + box.exec(); + + if (box.clickedButton() == manual) { + if (txid.empty()) { + Utils::showError(this, "Unable to open tx broadcaster", "Cached transaction not found"); + return; + } + this->onResendTransaction(txid[0]); + } + else if (box.result() == QMessageBox::Yes) { m_wallet->commitTransaction(tx, m_wallet->tmpTxDescription); } return;