PRCYCoin  2.0.0.7rc1
P2P Digital Currency
transactiontablemodel.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2013 The Bitcoin developers
2 // Distributed under the MIT/X11 software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOIN_QT_TRANSACTIONTABLEMODEL_H
6 #define BITCOIN_QT_TRANSACTIONTABLEMODEL_H
7 
8 #include "bitcoinunits.h"
9 
10 #include <QAbstractTableModel>
11 #include <QStringList>
12 
13 class TransactionRecord;
15 class WalletModel;
16 
17 class CWallet;
18 
21 class TransactionTableModel : public QAbstractTableModel
22 {
23  Q_OBJECT
24 
25 public:
26  explicit TransactionTableModel(CWallet* wallet, WalletModel* parent = 0);
28 
29  enum ColumnIndex {
30  Status = 0,
31  Watchonly = 1,
32  Date = 2,
33  Type = 3,
34  ToAddress = 4,
35  Amount = 5,
37  };
38 
42  enum RoleIndex {
44  TypeRole = Qt::UserRole,
69  };
70 
71  int rowCount(const QModelIndex& parent) const;
72  int columnCount(const QModelIndex& parent) const;
73  QVariant data(const QModelIndex& index, int role) const;
74  QVariant headerData(int section, Qt::Orientation orientation, int role) const;
75  QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const;
77 
78 private:
81  QStringList columns;
84 
87 
88  QString lookupAddress(const std::string& address, bool tooltip) const;
89  QVariant addressColor(const TransactionRecord* wtx) const;
90  QString formatTxStatus(const TransactionRecord* wtx) const;
91  QString formatTxDate(const TransactionRecord* wtx) const;
92  QString formatTxType(const TransactionRecord* wtx) const;
93  QString formatTxConfirmations(const TransactionRecord* wtx) const;
94  QString formatTxToAddress(const TransactionRecord* wtx, bool tooltip) const;
95  QString formatTxAmount(const TransactionRecord* wtx, bool showUnconfirmed = true, BitcoinUnits::SeparatorStyle separators = BitcoinUnits::separatorStandard) const;
96  QString formatTooltip(const TransactionRecord* rec) const;
97  QVariant txStatusDecoration(const TransactionRecord* wtx) const;
98  QVariant txWatchonlyDecoration(const TransactionRecord* wtx) const;
99  QVariant txAddressDecoration(const TransactionRecord* wtx) const;
100 
101 public Q_SLOTS:
102  /* New transaction, or transaction changed status */
103  void updateTransaction(const QString& hash, int status, bool showTransaction);
104  void updateConfirmations();
105  void updateDisplayUnit();
108  /* Needed to update fProcessingQueuedTransactions through a QueuedConnection */
110 
111  friend class TransactionTablePriv;
112 };
113 
114 class TxTableModel : public QAbstractTableModel
115 {
116  Q_OBJECT
117 
118 public:
119 };
120 
121 #endif // BITCOIN_QT_TRANSACTIONTABLEMODEL_H
TransactionTableModel::txAddressDecoration
QVariant txAddressDecoration(const TransactionRecord *wtx) const
Definition: transactiontablemodel.cpp:434
TransactionTableModel::formatTxStatus
QString formatTxStatus(const TransactionRecord *wtx) const
Definition: transactiontablemodel.cpp:342
TransactionTableModel::wallet
CWallet * wallet
Definition: transactiontablemodel.h:79
TransactionTableModel::updateConfirmations
void updateConfirmations()
Definition: transactiontablemodel.cpp:320
TransactionTableModel::txStatusDecoration
QVariant txStatusDecoration(const TransactionRecord *wtx) const
Definition: transactiontablemodel.cpp:509
TransactionTableModel::Date
@ Date
Definition: transactiontablemodel.h:32
WalletModel
Interface to Bitcoin wallet from Qt view code.
Definition: walletmodel.h:102
TransactionTableModel::AddressRole
@ AddressRole
Address of transaction.
Definition: transactiontablemodel.h:54
TransactionTableModel::fProcessingQueuedTransactions
bool fProcessingQueuedTransactions
Definition: transactiontablemodel.h:83
TransactionTableModel::formatTxDate
QString formatTxDate(const TransactionRecord *wtx) const
Definition: transactiontablemodel.cpp:382
TransactionTableModel::WatchonlyRole
@ WatchonlyRole
Watch-only boolean.
Definition: transactiontablemodel.h:48
TransactionTableModel::index
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const
Definition: transactiontablemodel.cpp:707
TransactionTableModel::Confirmations
@ Confirmations
Definition: transactiontablemodel.h:36
TransactionTableModel::txWatchonlyDecoration
QVariant txWatchonlyDecoration(const TransactionRecord *wtx) const
Definition: transactiontablemodel.cpp:549
TransactionRecord
UI model for a transaction.
Definition: transactionrecord.h:72
TransactionTableModel::ColumnIndex
ColumnIndex
Definition: transactiontablemodel.h:29
TransactionTableModel::TxIDRole
@ TxIDRole
Unique identifier.
Definition: transactiontablemodel.h:60
TransactionTableModel::updateDisplayUnit
void updateDisplayUnit()
Definition: transactiontablemodel.cpp:717
TransactionTableModel::formatTxAmount
QString formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true, BitcoinUnits::SeparatorStyle separators=BitcoinUnits::separatorStandard) const
Definition: transactiontablemodel.cpp:498
TransactionTableModel::updateTransaction
void updateTransaction(const QString &hash, int status, bool showTransaction)
Definition: transactiontablemodel.cpp:311
TransactionTableModel::formatTxConfirmations
QString formatTxConfirmations(const TransactionRecord *wtx) const
Definition: transactiontablemodel.cpp:429
TransactionTableModel::AmountRole
@ AmountRole
Net amount of transaction.
Definition: transactiontablemodel.h:58
TransactionTableModel::subscribeToCoreSignals
void subscribeToCoreSignals()
Definition: transactiontablemodel.cpp:780
TransactionTableModel::unsubscribeFromCoreSignals
void unsubscribeFromCoreSignals()
Definition: transactiontablemodel.cpp:787
TransactionTableModel::ToAddress
@ ToAddress
Definition: transactiontablemodel.h:34
TransactionTableModel::formatTxToAddress
QString formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const
Definition: transactiontablemodel.cpp:452
TransactionTableModel::RoleIndex
RoleIndex
Roles to get specific information from a transaction row.
Definition: transactiontablemodel.h:42
TransactionTableModel::priv
TransactionTablePriv * priv
Definition: transactiontablemodel.h:82
TransactionTableModel::rowCount
int rowCount(const QModelIndex &parent) const
Definition: transactiontablemodel.cpp:330
BitcoinUnits::SeparatorStyle
SeparatorStyle
Definition: bitcoinunits.h:66
TransactionTableModel::StatusRole
@ StatusRole
Transaction status (TransactionRecord::Status)
Definition: transactiontablemodel.h:68
TransactionTableModel::Amount
@ Amount
Definition: transactiontablemodel.h:35
TransactionTableModel::columnCount
int columnCount(const QModelIndex &parent) const
Definition: transactiontablemodel.cpp:336
TransactionTableModel::columns
QStringList columns
Definition: transactiontablemodel.h:81
TransactionTableModel::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role) const
Definition: transactiontablemodel.cpp:678
TransactionTableModel::data
QVariant data(const QModelIndex &index, int role) const
Definition: transactiontablemodel.cpp:567
BitcoinUnits::separatorStandard
@ separatorStandard
Definition: bitcoinunits.h:68
TransactionTableModel::processingQueuedTransactions
bool processingQueuedTransactions()
Definition: transactiontablemodel.h:76
TransactionTableModel::FormattedAmountRole
@ FormattedAmountRole
Formatted amount, without brackets when unconfirmed.
Definition: transactiontablemodel.h:66
TransactionTableModel::LongDescriptionRole
@ LongDescriptionRole
Long description (HTML format)
Definition: transactiontablemodel.h:52
TransactionTableModel::addressColor
QVariant addressColor(const TransactionRecord *wtx) const
Definition: transactiontablemodel.cpp:478
TransactionTableModel
UI model for the transaction table of a wallet.
Definition: transactiontablemodel.h:21
TransactionTableModel::formatTxType
QString formatTxType(const TransactionRecord *wtx) const
Definition: transactiontablemodel.cpp:406
TransactionTablePriv
Definition: transactiontablemodel.cpp:65
TransactionTableModel::~TransactionTableModel
~TransactionTableModel()
Definition: transactiontablemodel.cpp:298
TransactionTableModel::WatchonlyDecorationRole
@ WatchonlyDecorationRole
Watch-only icon.
Definition: transactiontablemodel.h:50
CWallet
A CWallet is an extension of a keystore, which also maintains a set of transactions and balances,...
Definition: wallet.h:243
TransactionTableModel::Type
@ Type
Definition: transactiontablemodel.h:33
TransactionTableModel::lookupAddress
QString lookupAddress(const std::string &address, bool tooltip) const
Definition: transactiontablemodel.cpp:393
TransactionTableModel::TxHashRole
@ TxHashRole
Transaction hash.
Definition: transactiontablemodel.h:62
bitcoinunits.h
TransactionTableModel::Status
@ Status
Definition: transactiontablemodel.h:30
TransactionTableModel::DateRole
@ DateRole
Date and time this transaction was created.
Definition: transactiontablemodel.h:46
TxTableModel
Definition: transactiontablemodel.h:114
TransactionTableModel::TransactionTableModel
TransactionTableModel(CWallet *wallet, WalletModel *parent=0)
Definition: transactiontablemodel.cpp:284
TransactionTableModel::TypeRole
@ TypeRole
Type of transaction.
Definition: transactiontablemodel.h:44
TransactionTableModel::updateAmountColumnTitle
void updateAmountColumnTitle()
Updates the column title to "Amount (DisplayUnit)" and emits headerDataChanged() signal for table hea...
Definition: transactiontablemodel.cpp:305
TransactionTableModel::setProcessingQueuedTransactions
void setProcessingQueuedTransactions(bool value)
Definition: transactiontablemodel.h:109
TransactionTableModel::LabelRole
@ LabelRole
Label of address related to transaction.
Definition: transactiontablemodel.h:56
TransactionTableModel::Watchonly
@ Watchonly
Definition: transactiontablemodel.h:31
TransactionTableModel::formatTooltip
QString formatTooltip(const TransactionRecord *rec) const
Definition: transactiontablemodel.cpp:557
TransactionTableModel::walletModel
WalletModel * walletModel
Definition: transactiontablemodel.h:80
TransactionTableModel::ConfirmedRole
@ ConfirmedRole
Is transaction confirmed?
Definition: transactiontablemodel.h:64