history: add option to remove failed tx

This commit is contained in:
tobtoht 2024-03-13 14:10:20 +01:00
parent fcf5ab2bd1
commit 52a69a454e
No known key found for this signature in database
GPG key ID: E45B10DD027D2472
5 changed files with 32 additions and 1 deletions

2
monero

@ -1 +1 @@
Subproject commit 9df7f6b7eff0a4e1c0e33539c5d9849a0e374c14 Subproject commit 3f9cbd8c5f08e2944f5aba87ee29917821b99b8c

View file

@ -90,6 +90,10 @@ void HistoryWidget::showContextMenu(const QPoint &point) {
menu.addAction("Resend transaction", this, &HistoryWidget::onResendTransaction); menu.addAction("Resend transaction", this, &HistoryWidget::onResendTransaction);
} }
if (tx->isFailed()) {
menu.addAction("Remove from history", this, &HistoryWidget::onRemoveFromHistory);
}
menu.addMenu(m_copyMenu); menu.addMenu(m_copyMenu);
menu.addAction("Show details", this, &HistoryWidget::showTxDetails); menu.addAction("Show details", this, &HistoryWidget::showTxDetails);
menu.addAction("View on block explorer", this, &HistoryWidget::onViewOnBlockExplorer); menu.addAction("View on block explorer", this, &HistoryWidget::onViewOnBlockExplorer);
@ -106,6 +110,16 @@ void HistoryWidget::onResendTransaction() {
} }
} }
void HistoryWidget::onRemoveFromHistory() {
auto *tx = ui->history->currentEntry();
if (!tx) return;
auto result = QMessageBox::question(this, "Remove transaction from history", "Are you sure you want to remove this transaction from the history?");
if (result == QMessageBox::Yes) {
m_wallet->removeFailedTx(tx->hash());
}
}
void HistoryWidget::resetModel() void HistoryWidget::resetModel()
{ {
// Save view state // Save view state

View file

@ -42,6 +42,7 @@ private slots:
void onViewOnBlockExplorer(); void onViewOnBlockExplorer();
void setSearchFilter(const QString &filter); void setSearchFilter(const QString &filter);
void onResendTransaction(); void onResendTransaction();
void onRemoveFromHistory();
void createTxProof(); void createTxProof();
private: private:

View file

@ -1032,6 +1032,20 @@ bool Wallet::submitTxFile(const QString &fileName) const
return m_walletImpl->importKeyImages(fileName.toStdString() + "_keyImages"); return m_walletImpl->importKeyImages(fileName.toStdString() + "_keyImages");
} }
bool Wallet::removeFailedTx(const QString &txid)
{
crypto::hash txid_;
if(!epee::string_tools::hex_to_pod(txid.toStdString(), txid_))
{
return false;
}
bool r = m_wallet2->remove_failed_tx(txid_);
m_history->refresh();
return r;
}
// #################### Models #################### // #################### Models ####################
TransactionHistory *Wallet::history() const { TransactionHistory *Wallet::history() const {

View file

@ -345,6 +345,8 @@ public:
//! Submit a transfer from file //! Submit a transfer from file
bool submitTxFile(const QString &fileName) const; bool submitTxFile(const QString &fileName) const;
bool removeFailedTx(const QString &txid);
// ##### Models ##### // ##### Models #####
TransactionHistory* history() const; TransactionHistory* history() const;
TransactionHistoryProxyModel* historyModel(); TransactionHistoryProxyModel* historyModel();