aboutsummaryrefslogtreecommitdiff
path: root/src/qt/transactiontablemodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qt/transactiontablemodel.h')
-rw-r--r--src/qt/transactiontablemodel.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/qt/transactiontablemodel.h b/src/qt/transactiontablemodel.h
new file mode 100644
index 0000000000..17bfeccdb2
--- /dev/null
+++ b/src/qt/transactiontablemodel.h
@@ -0,0 +1,80 @@
+#ifndef TRANSACTIONTABLEMODEL_H
+#define TRANSACTIONTABLEMODEL_H
+
+#include <QAbstractTableModel>
+#include <QStringList>
+
+class CWallet;
+class TransactionTablePriv;
+class TransactionRecord;
+class WalletModel;
+
+class TransactionTableModel : public QAbstractTableModel
+{
+ Q_OBJECT
+public:
+ explicit TransactionTableModel(CWallet* wallet, WalletModel *parent = 0);
+ ~TransactionTableModel();
+
+ enum {
+ Status = 0,
+ Date = 1,
+ Type = 2,
+ ToAddress = 3,
+ Amount = 4
+ } ColumnIndex;
+
+ // Roles to get specific information from a transaction row
+ // These are independent of column
+ enum {
+ // Type of transaction
+ TypeRole = Qt::UserRole,
+ // Date and time this transaction was created
+ DateRole,
+ // Long description (HTML format)
+ LongDescriptionRole,
+ // Address of transaction
+ AddressRole,
+ // Label of address related to transaction
+ LabelRole,
+ // Net amount of transaction
+ AmountRole,
+ // Unique identifier
+ TxIDRole,
+ // Is transaction confirmed?
+ ConfirmedRole,
+ // Formatted amount, without brackets when unconfirmed
+ FormattedAmountRole
+ } RoleIndex;
+
+ int rowCount(const QModelIndex &parent) const;
+ int columnCount(const QModelIndex &parent) const;
+ QVariant data(const QModelIndex &index, int role) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const;
+private:
+ CWallet* wallet;
+ WalletModel *walletModel;
+ QStringList columns;
+ TransactionTablePriv *priv;
+
+ QString lookupAddress(const std::string &address, bool tooltip) const;
+ QVariant addressColor(const TransactionRecord *wtx) const;
+ QString formatTxStatus(const TransactionRecord *wtx) const;
+ QString formatTxDate(const TransactionRecord *wtx) const;
+ QString formatTxType(const TransactionRecord *wtx) const;
+ QString formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const;
+ QString formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true) const;
+ QString formatTooltip(const TransactionRecord *rec) const;
+ QVariant txStatusDecoration(const TransactionRecord *wtx) const;
+ QVariant txAddressDecoration(const TransactionRecord *wtx) const;
+
+private slots:
+ void update();
+
+ friend class TransactionTablePriv;
+};
+
+#endif
+