[qt] TransactionView: highlight replacement tx after fee bump

This commit is contained in:
Sjors Provoost 2018-08-01 18:43:46 +02:00
parent c88529a178
commit d795c610d3
No known key found for this signature in database
GPG key ID: 57FF9BDBCC301009
4 changed files with 17 additions and 5 deletions

View file

@ -19,6 +19,7 @@
#include <ui_interface.h> #include <ui_interface.h>
#include <QApplication>
#include <QComboBox> #include <QComboBox>
#include <QDateTimeEdit> #include <QDateTimeEdit>
#include <QDesktopServices> #include <QDesktopServices>
@ -198,6 +199,11 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
connect(copyTxPlainText, SIGNAL(triggered()), this, SLOT(copyTxPlainText())); connect(copyTxPlainText, SIGNAL(triggered()), this, SLOT(copyTxPlainText()));
connect(editLabelAction, SIGNAL(triggered()), this, SLOT(editLabel())); connect(editLabelAction, SIGNAL(triggered()), this, SLOT(editLabel()));
connect(showDetailsAction, SIGNAL(triggered()), this, SLOT(showDetails())); connect(showDetailsAction, SIGNAL(triggered()), this, SLOT(showDetails()));
// Highlight transaction after fee bump
connect(this, &TransactionView::bumpedFee, [this](const uint256& txid) {
focusTransaction(txid);
});
} }
void TransactionView::setModel(WalletModel *_model) void TransactionView::setModel(WalletModel *_model)
@ -428,9 +434,14 @@ void TransactionView::bumpFee()
hash.SetHex(hashQStr.toStdString()); hash.SetHex(hashQStr.toStdString());
// Bump tx fee over the walletModel // Bump tx fee over the walletModel
if (model->bumpFee(hash)) { uint256 newHash;
if (model->bumpFee(hash, newHash)) {
// Update the table // Update the table
transactionView->selectionModel()->clearSelection();
model->getTransactionTableModel()->updateTransaction(hashQStr, CT_UPDATED, true); model->getTransactionTableModel()->updateTransaction(hashQStr, CT_UPDATED, true);
qApp->processEvents();
Q_EMIT bumpedFee(newHash);
} }
} }

View file

@ -110,6 +110,8 @@ Q_SIGNALS:
/** Fired when a message should be reported to the user */ /** Fired when a message should be reported to the user */
void message(const QString &title, const QString &message, unsigned int style); void message(const QString &title, const QString &message, unsigned int style);
void bumpedFee(const uint256& txid);
public Q_SLOTS: public Q_SLOTS:
void chooseDate(int idx); void chooseDate(int idx);
void chooseType(int idx); void chooseType(int idx);

View file

@ -492,7 +492,7 @@ bool WalletModel::saveReceiveRequest(const std::string &sAddress, const int64_t
return m_wallet->addDestData(dest, key, sRequest); return m_wallet->addDestData(dest, key, sRequest);
} }
bool WalletModel::bumpFee(uint256 hash) bool WalletModel::bumpFee(uint256 hash, uint256& new_hash)
{ {
CCoinControl coin_control; CCoinControl coin_control;
coin_control.m_signal_bip125_rbf = true; coin_control.m_signal_bip125_rbf = true;
@ -544,8 +544,7 @@ bool WalletModel::bumpFee(uint256 hash)
return false; return false;
} }
// commit the bumped transaction // commit the bumped transaction
uint256 txid; if(!m_wallet->commitBumpTransaction(hash, std::move(mtx), errors, new_hash)) {
if(!m_wallet->commitBumpTransaction(hash, std::move(mtx), errors, txid)) {
QMessageBox::critical(0, tr("Fee bump error"), tr("Could not commit transaction") + "<br />(" + QMessageBox::critical(0, tr("Fee bump error"), tr("Could not commit transaction") + "<br />(" +
QString::fromStdString(errors[0])+")"); QString::fromStdString(errors[0])+")");
return false; return false;

View file

@ -194,7 +194,7 @@ public:
void loadReceiveRequests(std::vector<std::string>& vReceiveRequests); void loadReceiveRequests(std::vector<std::string>& vReceiveRequests);
bool saveReceiveRequest(const std::string &sAddress, const int64_t nId, const std::string &sRequest); bool saveReceiveRequest(const std::string &sAddress, const int64_t nId, const std::string &sRequest);
bool bumpFee(uint256 hash); bool bumpFee(uint256 hash, uint256& new_hash);
static bool isWalletEnabled(); static bool isWalletEnabled();
bool privateKeysDisabled() const; bool privateKeysDisabled() const;