update core to d0d80170a2ca73004e08fb85007fe055cbf4e411 (CWallet class)
[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
11 class TransactionTableModel : public QAbstractTableModel
12 {
13     Q_OBJECT
14 public:
15     explicit TransactionTableModel(CWallet* wallet, QObject *parent = 0);
16     ~TransactionTableModel();
17
18     enum {
19         Status = 0,
20         Date = 1,
21         Description = 2,
22         Debit = 3,
23         Credit = 4
24     } ColumnIndex;
25
26     enum {
27         TypeRole = Qt::UserRole,
28         LongDescriptionRole = Qt::UserRole+1
29     } RoleIndex;
30
31     /* TypeRole values */
32     static const QString Sent;
33     static const QString Received;
34     static const QString Other;
35
36     int rowCount(const QModelIndex &parent) const;
37     int columnCount(const QModelIndex &parent) const;
38     QVariant data(const QModelIndex &index, int role) const;
39     QVariant headerData(int section, Qt::Orientation orientation, int role) const;
40     Qt::ItemFlags flags(const QModelIndex &index) const;
41     QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const;
42 private:
43     CWallet* wallet;
44     QStringList columns;
45     TransactionTablePriv *priv;
46
47     std::string lookupAddress(const std::string &address) const;
48     QVariant formatTxStatus(const TransactionRecord *wtx) const;
49     QVariant formatTxDate(const TransactionRecord *wtx) const;
50     QVariant formatTxDescription(const TransactionRecord *wtx) const;
51     QVariant formatTxDebit(const TransactionRecord *wtx) const;
52     QVariant formatTxCredit(const TransactionRecord *wtx) const;
53     QVariant formatTxDecoration(const TransactionRecord *wtx) const;
54
55 private slots:
56     void update();
57
58     friend class TransactionTablePriv;
59 };
60
61 #endif
62