1 #include "transactiontablemodel.h"
5 /* Credit and Debit columns are right-aligned as they contain numbers */
6 static int column_alignments[] = {
7 Qt::AlignLeft|Qt::AlignVCenter,
8 Qt::AlignLeft|Qt::AlignVCenter,
9 Qt::AlignLeft|Qt::AlignVCenter,
10 Qt::AlignRight|Qt::AlignVCenter,
11 Qt::AlignRight|Qt::AlignVCenter
14 TransactionTableModel::TransactionTableModel(QObject *parent):
15 QAbstractTableModel(parent)
17 columns << tr("Status") << tr("Date") << tr("Description") << tr("Debit") << tr("Credit");
20 int TransactionTableModel::rowCount(const QModelIndex &parent) const
26 int TransactionTableModel::columnCount(const QModelIndex &parent) const
29 return columns.length();
32 QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
37 if(role == Qt::DisplayRole)
39 /* index.row(), index.column() */
41 return QLocale::system().toString(index.row());
42 } else if (role == Qt::TextAlignmentRole)
44 return column_alignments[index.column()];
45 } else if (role == Qt::UserRole)
47 /* user role: transaction type for filtering
52 switch(index.row() % 3)
54 case 0: return QString("s");
55 case 1: return QString("r");
56 case 2: return QString("o");
62 QVariant TransactionTableModel::headerData(int section, Qt::Orientation orientation, int role) const
64 if(role == Qt::DisplayRole)
66 if(orientation == Qt::Horizontal)
68 return columns[section];
70 } else if (role == Qt::TextAlignmentRole)
72 return column_alignments[section];
77 Qt::ItemFlags TransactionTableModel::flags(const QModelIndex &index) const
80 return Qt::ItemIsEnabled;
82 return QAbstractTableModel::flags(index);