From 302c258e6b92efb618defc21977997e47634730f Mon Sep 17 00:00:00 2001 From: tobtoht Date: Tue, 20 Oct 2020 01:05:42 +0200 Subject: [PATCH] TransactionInfoDialog: add tx key --- src/dialog/transactioninfodialog.cpp | 17 +++++++--- src/dialog/transactioninfodialog.h | 5 +-- src/dialog/transactioninfodialog.ui | 51 ++++++++++++++++------------ src/historywidget.cpp | 8 ++--- src/historywidget.h | 5 +-- src/mainwindow.cpp | 2 +- 6 files changed, 53 insertions(+), 35 deletions(-) diff --git a/src/dialog/transactioninfodialog.cpp b/src/dialog/transactioninfodialog.cpp index d773c14..3428181 100644 --- a/src/dialog/transactioninfodialog.cpp +++ b/src/dialog/transactioninfodialog.cpp @@ -8,16 +8,23 @@ #include "libwalletqt/WalletManager.h" #include -TransactionInfoDialog::TransactionInfoDialog(Coins *coins, TransactionInfo *txInfo, QWidget *parent) +TransactionInfoDialog::TransactionInfoDialog(Wallet *wallet, TransactionInfo *txInfo, QWidget *parent) : QDialog(parent) , ui(new Ui::TransactionInfoDialog) - , m_coins(coins) + , m_wallet(wallet) , m_txInfo(txInfo) { ui->setupUi(this); - ui->txid->setText(QString(txInfo->hash())); - ui->txid->setCursorPosition(0); + ui->label_txid->setText(QString(txInfo->hash())); + + if (txInfo->direction() == TransactionInfo::Direction_In) { + ui->txKey->hide(); + } else { + QString txKey = m_wallet->getTxKey(txInfo->hash()); + txKey = txKey.isEmpty() ? "unknown" : txKey; + ui->label_txKey->setText(txKey); + } ui->label_status->setText(QString("Status: %1 confirmations").arg(txInfo->confirmations())); ui->label_date->setText(QString("Date: %1").arg(txInfo->timestamp().toString("yyyy-MM-dd HH:mm"))); @@ -30,7 +37,7 @@ TransactionInfoDialog::TransactionInfoDialog(Coins *coins, TransactionInfo *txIn ui->label_fee->setText(QString("Fee: %1").arg(txInfo->isCoinbase() ? WalletManager::displayAmount(0) : fee)); ui->label_unlockTime->setText(QString("Unlock time: %1 (height)").arg(txInfo->unlockTime())); - qDebug() << m_coins->coins_from_txid(txInfo->hash()); + qDebug() << m_wallet->coins()->coins_from_txid(txInfo->hash()); QString destinations = txInfo->destinations_formatted(); if (destinations.isEmpty()) { diff --git a/src/dialog/transactioninfodialog.h b/src/dialog/transactioninfodialog.h index 26feaa7..bf0fbb9 100644 --- a/src/dialog/transactioninfodialog.h +++ b/src/dialog/transactioninfodialog.h @@ -8,6 +8,7 @@ #include #include "libwalletqt/Coins.h" #include "libwalletqt/TransactionInfo.h" +#include "libwalletqt/Wallet.h" namespace Ui { class TransactionInfoDialog; @@ -18,14 +19,14 @@ class TransactionInfoDialog : public QDialog Q_OBJECT public: - explicit TransactionInfoDialog(Coins *coins, TransactionInfo *txInfo, QWidget *parent = nullptr); + explicit TransactionInfoDialog(Wallet *wallet, TransactionInfo *txInfo, QWidget *parent = nullptr); ~TransactionInfoDialog() override; private: Ui::TransactionInfoDialog *ui; TransactionInfo *m_txInfo; - Coins *m_coins; + Wallet *m_wallet; }; #endif //FEATHER_TRANSACTIONINFODIALOG_H diff --git a/src/dialog/transactioninfodialog.ui b/src/dialog/transactioninfodialog.ui index 8026b6e..7282027 100644 --- a/src/dialog/transactioninfodialog.ui +++ b/src/dialog/transactioninfodialog.ui @@ -7,7 +7,7 @@ 0 0 547 - 332 + 436 @@ -15,32 +15,41 @@ - - + + Transaction ID: + + + + + txid + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + - - - - 0 - 0 - - - - - 525 - 0 - - - - txid - - - true + + + Transaction key: + + + + + txKey + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + diff --git a/src/historywidget.cpp b/src/historywidget.cpp index ca2bb73..2d6980d 100644 --- a/src/historywidget.cpp +++ b/src/historywidget.cpp @@ -45,11 +45,11 @@ HistoryWidget::HistoryWidget(QWidget *parent) } -void HistoryWidget::setModel(Coins *coins, TransactionHistoryProxyModel *model, TransactionHistory *txHistory) +void HistoryWidget::setModel(TransactionHistoryProxyModel *model, Wallet *wallet) { - m_coins = coins; m_model = model; - m_txHistory = txHistory; + m_wallet = wallet; + m_txHistory = m_wallet->history(); ui->history->setModel(m_model); ui->history->header()->setSectionResizeMode(QHeaderView::ResizeToContents); @@ -66,7 +66,7 @@ void HistoryWidget::showTxDetails() { }); if (i != nullptr) { - auto * dialog = new TransactionInfoDialog(m_coins, i, this); + auto * dialog = new TransactionInfoDialog(m_wallet, i, this); dialog->exec(); } } diff --git a/src/historywidget.h b/src/historywidget.h index ffd1200..a6c8b00 100644 --- a/src/historywidget.h +++ b/src/historywidget.h @@ -7,6 +7,7 @@ #include "model/TransactionHistoryModel.h" #include "model/TransactionHistoryProxyModel.h" #include "libwalletqt/Coins.h" +#include "libwalletqt/Wallet.h" #include #include @@ -21,7 +22,7 @@ Q_OBJECT public: explicit HistoryWidget(QWidget *parent = nullptr); - void setModel(Coins * coins, TransactionHistoryProxyModel * model, TransactionHistory * txHistory); + void setModel(TransactionHistoryProxyModel *model, Wallet *wallet); ~HistoryWidget() override; public slots: @@ -51,7 +52,7 @@ private: QMenu *m_copyMenu; TransactionHistory *m_txHistory; TransactionHistoryProxyModel *m_model; - Coins *m_coins; + Wallet *m_wallet = nullptr; }; #endif //FEATHER_HISTORYWIDGET_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b6d9a35..6e057d9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -604,7 +604,7 @@ void MainWindow::onWalletOpened() { // history page m_ctx->currentWallet->history()->refresh(m_ctx->currentWallet->currentSubaddressAccount()); - ui->historyWidget->setModel(m_ctx->currentWallet->coins(), m_ctx->currentWallet->historyModel(), m_ctx->currentWallet->history()); + ui->historyWidget->setModel(m_ctx->currentWallet->historyModel(), m_ctx->currentWallet); connect(m_ctx->currentWallet->history(), &TransactionHistory::txNoteChanged, [this]{ m_ctx->storeWallet(); });