1 #include "transactiontablemodel.h"
5 const QString TransactionTableModel::Sent = "s";
6 const QString TransactionTableModel::Received = "r";
7 const QString TransactionTableModel::Generated = "g";
9 /* Credit and Debit columns are right-aligned as they contain numbers */
10 static int column_alignments[] = {
11 Qt::AlignLeft|Qt::AlignVCenter,
12 Qt::AlignLeft|Qt::AlignVCenter,
13 Qt::AlignLeft|Qt::AlignVCenter,
14 Qt::AlignRight|Qt::AlignVCenter,
15 Qt::AlignRight|Qt::AlignVCenter,
16 Qt::AlignLeft|Qt::AlignVCenter
19 TransactionTableModel::TransactionTableModel(QObject *parent):
20 QAbstractTableModel(parent)
22 columns << tr("Status") << tr("Date") << tr("Description") << tr("Debit") << tr("Credit") << tr("Type");
25 int TransactionTableModel::rowCount(const QModelIndex &parent) const
31 int TransactionTableModel::columnCount(const QModelIndex &parent) const
34 return columns.length();
37 QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
42 if(role == Qt::DisplayRole)
44 /* index.row(), index.column() */
46 return QLocale::system().toString(index.row());
47 } else if (role == Qt::TextAlignmentRole)
49 return column_alignments[index.column()];
50 } else if (role == Qt::UserRole)
52 /* user role: transaction type for filtering
57 switch(index.row() % 3)
59 case 0: return QString("s");
60 case 1: return QString("r");
61 case 2: return QString("o");
67 QVariant TransactionTableModel::headerData(int section, Qt::Orientation orientation, int role) const
69 if(role == Qt::DisplayRole)
71 if(orientation == Qt::Horizontal)
73 return columns[section];
75 } else if (role == Qt::TextAlignmentRole)
77 return column_alignments[section];
82 Qt::ItemFlags TransactionTableModel::flags(const QModelIndex &index) const
85 return Qt::ItemIsEnabled;
87 return QAbstractTableModel::flags(index);