Export functionality for transaction list
[novacoin.git] / src / qt / transactiontablemodel.h
index c26acbc..85bfeeb 100644 (file)
@@ -7,12 +7,13 @@
 class CWallet;
 class TransactionTablePriv;
 class TransactionRecord;
+class WalletModel;
 
 class TransactionTableModel : public QAbstractTableModel
 {
     Q_OBJECT
 public:
-    explicit TransactionTableModel(CWallet* wallet, QObject *parent = 0);
+    explicit TransactionTableModel(CWallet* wallet, WalletModel *parent = 0);
     ~TransactionTableModel();
 
     enum {
@@ -24,6 +25,7 @@ public:
     } ColumnIndex;
 
     // Roles to get specific information from a transaction row
+    // These are independent of column
     enum {
         // Type of transaction
         TypeRole = Qt::UserRole,
@@ -35,15 +37,16 @@ public:
         AddressRole,
         // Label of address related to transaction
         LabelRole,
-        // Absolute net amount of transaction
-        AbsoluteAmountRole
+        // Absolute net amount of transaction, for filtering
+        AbsoluteAmountRole,
+        // Unique identifier
+        TxIDRole,
+        // Is transaction confirmed?
+        ConfirmedRole,
+        // Formatted amount, without brackets when unconfirmed
+        FormattedAmountRole
     } RoleIndex;
 
-    /* TypeRole values */
-    static const QString Sent;
-    static const QString Received;
-    static const QString Other;
-
     int rowCount(const QModelIndex &parent) const;
     int columnCount(const QModelIndex &parent) const;
     QVariant data(const QModelIndex &index, int role) const;
@@ -52,16 +55,16 @@ public:
     QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const;
 private:
     CWallet* wallet;
+    WalletModel *walletModel;
     QStringList columns;
     TransactionTablePriv *priv;
 
-    QString labelForAddress(const std::string &address) const;
     QString lookupAddress(const std::string &address) const;
     QVariant formatTxStatus(const TransactionRecord *wtx) const;
     QVariant formatTxDate(const TransactionRecord *wtx) const;
     QVariant formatTxType(const TransactionRecord *wtx) const;
     QVariant formatTxToAddress(const TransactionRecord *wtx) const;
-    QVariant formatTxAmount(const TransactionRecord *wtx) const;
+    QVariant formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true) const;
     QVariant formatTxDecoration(const TransactionRecord *wtx) const;
 
 private slots: