From fff4d9d0b1cbb07d0c4fe71ae8ba2784a9c8af0a Mon Sep 17 00:00:00 2001 From: fsb4000 Date: Tue, 30 Dec 2014 13:29:15 +0600 Subject: [PATCH] transaction amount column has display unit --- src/qt/bitcoinunits.cpp | 10 ++++++++++ src/qt/bitcoinunits.h | 2 ++ src/qt/locale/bitcoin_ru.ts | 9 ++++----- src/qt/transactiontablemodel.cpp | 10 +++++++++- src/qt/transactiontablemodel.h | 2 ++ src/qt/transactionview.cpp | 2 +- 6 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index 21aa7a7..496c9f7 100644 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -179,3 +179,13 @@ QVariant BitcoinUnits::data(const QModelIndex &index, int role) const } return QVariant(); } + +QString BitcoinUnits::getAmountColumnTitle(int unit) +{ + QString amountTitle = QObject::tr("Amount"); + if (BitcoinUnits::valid(unit)) + { + amountTitle += " ("+BitcoinUnits::name(unit) + ")"; + } + return amountTitle; +} \ No newline at end of file diff --git a/src/qt/bitcoinunits.h b/src/qt/bitcoinunits.h index 9b7c9e1..5ac3d47 100644 --- a/src/qt/bitcoinunits.h +++ b/src/qt/bitcoinunits.h @@ -46,6 +46,8 @@ public: static QString formatWithUnit(int unit, qint64 amount, bool plussign=false); //! Parse string to coin amount static bool parse(int unit, const QString &value, qint64 *val_out); + //! Gets title for amount column including current display unit if optionsModel reference available */ + static QString getAmountColumnTitle(int unit); ///@} //! @name AbstractListModel implementation diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index 657e621..a9509bc 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -437,6 +437,10 @@ QObject + Amount + Количество + + NovaCoins NovaCoins @@ -2988,11 +2992,6 @@ This label turns red, if the priority is smaller than "medium". Address Адрес - - - Amount - Количество - Open for %n block(s) diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp index 8133f57..3248c1d 100644 --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -223,7 +223,7 @@ TransactionTableModel::TransactionTableModel(CWallet* wallet, WalletModel *paren priv(new TransactionTablePriv(wallet, this)), cachedNumBlocks(0) { - columns << QString() << tr("Date") << tr("Type") << tr("Address") << tr("Amount"); + columns << QString() << tr("Date") << tr("Type") << tr("Address") << BitcoinUnits::getAmountColumnTitle(walletModel->getOptionsModel()->getDisplayUnit()); priv->refreshWallet(); @@ -239,6 +239,13 @@ TransactionTableModel::~TransactionTableModel() delete priv; } +/** Updates the column title to "Amount (DisplayUnit)" and emits headerDataChanged() signal for table headers to react. */ +void TransactionTableModel::updateAmountColumnTitle() +{ + columns[Amount] = BitcoinUnits::getAmountColumnTitle(walletModel->getOptionsModel()->getDisplayUnit()); + emit headerDataChanged(Qt::Horizontal,Amount,Amount); +} + void TransactionTableModel::updateTransaction(const QString &hash, int status) { uint256 updated; @@ -639,6 +646,7 @@ QModelIndex TransactionTableModel::index(int row, int column, const QModelIndex void TransactionTableModel::updateDisplayUnit() { + updateAmountColumnTitle(); // emit dataChanged to update Amount column with the current unit emit dataChanged(index(0, Amount), index(priv->size()-1, Amount)); } diff --git a/src/qt/transactiontablemodel.h b/src/qt/transactiontablemodel.h index d74f7fd..9608948 100644 --- a/src/qt/transactiontablemodel.h +++ b/src/qt/transactiontablemodel.h @@ -80,6 +80,8 @@ public slots: void updateTransaction(const QString &hash, int status); void updateConfirmations(); void updateDisplayUnit(); + /** Updates the column title to "Amount (DisplayUnit)" and emits headerDataChanged() signal for table headers to react. */ + void updateAmountColumnTitle(); friend class TransactionTablePriv; }; diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp index 61ddb26..7dae349 100644 --- a/src/qt/transactionview.cpp +++ b/src/qt/transactionview.cpp @@ -202,7 +202,7 @@ void TransactionView::setModel(WalletModel *model, bool fShoudAddThirdPartyURL) transactionView->horizontalHeader()->setSectionResizeMode(TransactionTableModel::ToAddress, QHeaderView::Stretch); #endif transactionView->horizontalHeader()->resizeSection( - TransactionTableModel::Amount, 100); + TransactionTableModel::Amount, 120); if (model->getOptionsModel() && fShoudAddThirdPartyURL) { -- 1.7.1