auto-update transaction list
[novacoin.git] / gui / include / transactiontablemodel.h
1 #ifndef TRANSACTIONTABLEMODEL_H
2 #define TRANSACTIONTABLEMODEL_H
3
4 #include <QAbstractTableModel>
5 #include <QStringList>
6
7 class TransactionTableImpl;
8 class TransactionRecord;
9
10 class TransactionTableModel : public QAbstractTableModel
11 {
12     Q_OBJECT
13 public:
14     explicit TransactionTableModel(QObject *parent = 0);
15     ~TransactionTableModel();
16
17     enum {
18         Status = 0,
19         Date = 1,
20         Description = 2,
21         Debit = 3,
22         Credit = 4
23     } ColumnIndex;
24
25     enum {
26         TypeRole = Qt::UserRole
27     } RoleIndex;
28
29     /* TypeRole values */
30     static const QString Sent;
31     static const QString Received;
32     static const QString Other;
33
34     int rowCount(const QModelIndex &parent) const;
35     int columnCount(const QModelIndex &parent) const;
36     QVariant data(const QModelIndex &index, int role) const;
37     QVariant headerData(int section, Qt::Orientation orientation, int role) const;
38     Qt::ItemFlags flags(const QModelIndex &index) const;
39     QModelIndex index ( int row, int column, const QModelIndex & parent = QModelIndex() ) const;
40 private:
41     QStringList columns;
42     TransactionTableImpl *impl;
43
44     QVariant formatTxStatus(const TransactionRecord *wtx) const;
45     QVariant formatTxDate(const TransactionRecord *wtx) const;
46     QVariant formatTxDescription(const TransactionRecord *wtx) const;
47     QVariant formatTxDebit(const TransactionRecord *wtx) const;
48     QVariant formatTxCredit(const TransactionRecord *wtx) const;
49
50 private slots:
51     void update();
52 };
53
54 #endif
55