Mercurial > hg > bitcoin
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 |
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 } |