#ifndef TRANSACTIONTABLEMODEL_H #define TRANSACTIONTABLEMODEL_H #include #include 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; 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