Bitcoin Core  31.0.0
P2P Digital Currency
transactionfilterproxy.h
Go to the documentation of this file.
1 // Copyright (c) 2011-present The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOIN_QT_TRANSACTIONFILTERPROXY_H
6 #define BITCOIN_QT_TRANSACTIONFILTERPROXY_H
7 
8 #include <consensus/amount.h>
9 
10 #include <QDateTime>
11 #include <QSortFilterProxyModel>
12 
13 #include <optional>
14 
16 class TransactionFilterProxy : public QSortFilterProxyModel
17 {
18  Q_OBJECT
19 
20 public:
21  explicit TransactionFilterProxy(QObject *parent = nullptr);
22 
24  static const quint32 ALL_TYPES = 0xFFFFFFFF;
25 
26  static quint32 TYPE(int type) { return 1<<type; }
27 
29  void setDateRange(const std::optional<QDateTime>& from, const std::optional<QDateTime>& to);
30  void setSearchString(const QString &);
34  void setTypeFilter(quint32 modes);
35  void setMinAmount(const CAmount& minimum);
36 
38  void setShowInactive(bool showInactive);
39 
40 protected:
41  bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const override;
42 
43 private:
44  std::optional<QDateTime> dateFrom;
45  std::optional<QDateTime> dateTo;
46  QString m_search_string;
49  bool showInactive{true};
50 };
51 
52 #endif // BITCOIN_QT_TRANSACTIONFILTERPROXY_H
std::optional< QDateTime > dateTo
void setTypeFilter(quint32 modes)
static quint32 TYPE(int type)
int64_t CAmount
Amount in satoshis (Can be negative)
Definition: amount.h:12
std::optional< QDateTime > dateFrom
TransactionFilterProxy(QObject *parent=nullptr)
void setMinAmount(const CAmount &minimum)
void setShowInactive(bool showInactive)
Set whether to show conflicted transactions.
Filter the transaction list according to pre-specified rules.
static const quint32 ALL_TYPES
Type filter bit field (all types)
void setSearchString(const QString &)
void setDateRange(const std::optional< QDateTime > &from, const std::optional< QDateTime > &to)
Filter transactions between date range.
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override