QtUI code cleanup / comment improvements
[novacoin.git] / src / qt / transactiontablemodel.h
1 #ifndef TRANSACTIONTABLEMODEL_H
2 #define TRANSACTIONTABLEMODEL_H
3
4 #include <QAbstractTableModel>
5 #include <QStringList>
6
7 class CWallet;
8 class TransactionTablePriv;
9 class TransactionRecord;
10 class WalletModel;
11
12 class TransactionTableModel : public QAbstractTableModel
13 {
14     Q_OBJECT
15 public:
16     explicit TransactionTableModel(CWallet* wallet, WalletModel *parent = 0);
17     ~TransactionTableModel();
18
19     enum {
20         Status = 0,
21         Date = 1,
22         Type = 2,
23         ToAddress = 3,
24         Amount = 4
25     } ColumnIndex;
26
27     // Roles to get specific information from a transaction row
28     // These are independent of column
29     enum {
30         // Type of transaction
31         TypeRole = Qt::UserRole,
32         // Date and time this transaction was created
33         DateRole,
34         // Long description (HTML format)
35         LongDescriptionRole,
36         // Address of transaction
37         AddressRole,
38         // Label of address related to transaction
39         LabelRole,
40         // Net amount of transaction
41         AmountRole,
42         // Unique identifier
43         TxIDRole,
44         // Is transaction confirmed?
45         ConfirmedRole,
46         // Formatted amount, without brackets when unconfirmed
47         FormattedAmountRole
48     } RoleIndex;
49
50     int rowCount(const QModelIndex &parent) const;
51     int columnCount(const QModelIndex &parent) const;
52     QVariant data(const QModelIndex &index, int role) const;
53     QVariant headerData(int section, Qt::Orientation orientation, int role) const;
54     QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const;
55 private:
56     CWallet* wallet;
57     WalletModel *walletModel;
58     QStringList columns;
59     TransactionTablePriv *priv;
60
61     QString lookupAddress(const std::string &address, bool tooltip) const;
62     QVariant addressColor(const TransactionRecord *wtx) const;
63     QString formatTxStatus(const TransactionRecord *wtx) const;
64     QString formatTxDate(const TransactionRecord *wtx) const;
65     QString formatTxType(const TransactionRecord *wtx) const;
66     QString formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const;
67     QString formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true) const;
68     QString formatTooltip(const TransactionRecord *rec) const;
69     QVariant txStatusDecoration(const TransactionRecord *wtx) const;
70     QVariant txAddressDecoration(const TransactionRecord *wtx) const;
71
72 private slots:
73     void update();
74
75     friend class TransactionTablePriv;
76 };
77
78 #endif
79