annotate src/qt/transactionview.cpp @ 1110:2170917354c1 draft

Implement filter row instead of tabs, allows for more expressive filters
author Wladimir J. van der Laan <laanwj@gmail.com>
date Tue, 28 Jun 2011 21:41:56 +0200
parents
children e72996cd42c5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1110
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
1 #include "transactionview.h"
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
2
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
3 // Temp includes for filtering prototype
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
4 // Move to TransactionFilterRow class
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
5 #include "transactionfilterproxy.h"
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
6 #include "transactionrecord.h"
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
7 #include "transactiontablemodel.h"
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
8 #include "guiutil.h"
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
9
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
10 #include <QScrollBar>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
11 #include <QComboBox>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
12 #include <QDoubleValidator>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
13 #include <QHBoxLayout>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
14 #include <QVBoxLayout>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
15 #include <QLineEdit>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
16 #include <QTableView>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
17 #include <QHeaderView>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
18
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
19 #include <QDebug>
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
20
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
21 TransactionView::TransactionView(QWidget *parent) :
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
22 QWidget(parent), model(0), transactionProxyModel(0),
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
23 transactionView(0)
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
24 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
25 // Build filter row
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
26 QHBoxLayout *hlayout = new QHBoxLayout();
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
27 hlayout->setContentsMargins(QMargins(0,0,0,0));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
28 hlayout->setSpacing(0);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
29
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
30 hlayout->addSpacing(23);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
31
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
32 dateWidget = new QComboBox(this);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
33 dateWidget->setMaximumWidth(120);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
34 dateWidget->setMinimumWidth(120);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
35 dateWidget->addItem(tr("All"), All);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
36 dateWidget->addItem(tr("Today"), Today);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
37 dateWidget->addItem(tr("This week"), ThisWeek);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
38 dateWidget->addItem(tr("This month"), ThisMonth);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
39 dateWidget->addItem(tr("This year"), ThisYear);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
40 dateWidget->addItem(tr("Range..."), Range);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
41 hlayout->addWidget(dateWidget);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
42
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
43 typeWidget = new QComboBox(this);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
44 typeWidget->setMaximumWidth(120);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
45 typeWidget->setMinimumWidth(120);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
46
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
47 typeWidget->addItem(tr("All"), TransactionFilterProxy::ALL_TYPES);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
48 typeWidget->addItem(tr("Received with"), TransactionFilterProxy::TYPE(TransactionRecord::RecvWithAddress) |
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
49 TransactionFilterProxy::TYPE(TransactionRecord::RecvFromIP));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
50 typeWidget->addItem(tr("Sent to"), TransactionFilterProxy::TYPE(TransactionRecord::SendToAddress) |
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
51 TransactionFilterProxy::TYPE(TransactionRecord::SendToIP));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
52 typeWidget->addItem(tr("To yourself"), TransactionFilterProxy::TYPE(TransactionRecord::SendToSelf));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
53 typeWidget->addItem(tr("Generated"), TransactionFilterProxy::TYPE(TransactionRecord::Generated));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
54 typeWidget->addItem(tr("Other"), TransactionFilterProxy::TYPE(TransactionRecord::Other));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
55
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
56 hlayout->addWidget(typeWidget);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
57
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
58 addressWidget = new QLineEdit(this);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
59 addressWidget->setPlaceholderText("Enter address or label to search");
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
60 hlayout->addWidget(addressWidget);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
61
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
62 amountWidget = new QLineEdit(this);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
63 amountWidget->setPlaceholderText("Min amount");
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
64 amountWidget->setMaximumWidth(79);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
65 amountWidget->setMinimumWidth(79);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
66 amountWidget->setValidator(new QDoubleValidator(0, 1e20, 8, this));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
67 hlayout->addWidget(amountWidget);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
68
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
69 QVBoxLayout *vlayout = new QVBoxLayout(this);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
70
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
71 QTableView *view = new QTableView(this);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
72 vlayout->addLayout(hlayout);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
73 vlayout->addWidget(view);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
74 vlayout->setSpacing(0);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
75 int width = view->verticalScrollBar()->sizeHint().width();
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
76 // Cover scroll bar width with spacing
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
77 hlayout->addSpacing(width);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
78 // Always show scroll bar
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
79 view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
80
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
81 transactionView = view;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
82
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
83 connect(dateWidget, SIGNAL(activated(int)), this, SLOT(chooseDate(int)));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
84 connect(typeWidget, SIGNAL(activated(int)), this, SLOT(chooseType(int)));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
85 connect(addressWidget, SIGNAL(textChanged(const QString&)), this, SLOT(changedPrefix(const QString&)));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
86 connect(amountWidget, SIGNAL(textChanged(const QString&)), this, SLOT(changedAmount(const QString&)));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
87 }
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
88
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
89 void TransactionView::setModel(TransactionTableModel *model)
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
90 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
91 this->model = model;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
92
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
93 transactionProxyModel = new TransactionFilterProxy(this);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
94 transactionProxyModel->setSourceModel(model);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
95 transactionProxyModel->setDynamicSortFilter(true);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
96
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
97 transactionProxyModel->setSortRole(Qt::EditRole);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
98
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
99 transactionView->setModel(transactionProxyModel);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
100 transactionView->setAlternatingRowColors(true);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
101 transactionView->setSelectionBehavior(QAbstractItemView::SelectRows);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
102 transactionView->setSelectionMode(QAbstractItemView::ExtendedSelection);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
103 transactionView->setSortingEnabled(true);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
104 transactionView->sortByColumn(TransactionTableModel::Status, Qt::DescendingOrder);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
105 transactionView->verticalHeader()->hide();
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
106
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
107 transactionView->horizontalHeader()->resizeSection(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
108 TransactionTableModel::Status, 23);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
109 transactionView->horizontalHeader()->resizeSection(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
110 TransactionTableModel::Date, 120);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
111 transactionView->horizontalHeader()->resizeSection(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
112 TransactionTableModel::Type, 120);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
113 transactionView->horizontalHeader()->setResizeMode(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
114 TransactionTableModel::ToAddress, QHeaderView::Stretch);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
115 transactionView->horizontalHeader()->resizeSection(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
116 TransactionTableModel::Amount, 79);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
117
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
118 }
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
119
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
120 void TransactionView::chooseDate(int idx)
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
121 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
122 QDate current = QDate::currentDate();
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
123 switch(dateWidget->itemData(idx).toInt())
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
124 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
125 case All:
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
126 transactionProxyModel->setDateRange(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
127 TransactionFilterProxy::MIN_DATE,
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
128 TransactionFilterProxy::MAX_DATE);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
129 break;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
130 case Today:
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
131 transactionProxyModel->setDateRange(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
132 QDateTime(current),
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
133 TransactionFilterProxy::MAX_DATE);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
134 break;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
135 case ThisWeek: {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
136 // Find last monday
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
137 QDate startOfWeek = current.addDays(-(current.dayOfWeek()-1));
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
138 transactionProxyModel->setDateRange(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
139 QDateTime(startOfWeek),
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
140 TransactionFilterProxy::MAX_DATE);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
141
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
142 } break;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
143 case ThisMonth:
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
144 transactionProxyModel->setDateRange(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
145 QDateTime(QDate(current.year(), current.month(), 1)),
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
146 TransactionFilterProxy::MAX_DATE);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
147 break;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
148 case ThisYear:
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
149 transactionProxyModel->setDateRange(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
150 QDateTime(QDate(current.year(), 1, 1)),
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
151 TransactionFilterProxy::MAX_DATE);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
152 break;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
153 case Range:
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
154 // TODO ask specific range
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
155 break;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
156 }
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
157
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
158 }
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
159
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
160 void TransactionView::chooseType(int idx)
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
161 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
162 transactionProxyModel->setTypeFilter(
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
163 typeWidget->itemData(idx).toInt());
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
164 }
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
165
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
166 void TransactionView::changedPrefix(const QString &prefix)
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
167 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
168 transactionProxyModel->setAddressPrefix(prefix);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
169 }
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
170
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
171 void TransactionView::changedAmount(const QString &amount)
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
172 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
173 qint64 amount_parsed;
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
174 if(GUIUtil::parseMoney(amount, &amount_parsed))
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
175 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
176 transactionProxyModel->setMinAmount(amount_parsed);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
177 }
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
178 else
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
179 {
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
180 transactionProxyModel->setMinAmount(0);
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
181 }
2170917354c1 Implement filter row instead of tabs, allows for more expressive filters
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
182 }