Implement filter row instead of tabs, allows for more expressive filters
This commit is contained in:
45
src/qt/transactionfilterproxy.h
Normal file
45
src/qt/transactionfilterproxy.h
Normal file
@@ -0,0 +1,45 @@
|
||||
#ifndef TRANSACTIONFILTERPROXY_H
|
||||
#define TRANSACTIONFILTERPROXY_H
|
||||
|
||||
#include <QSortFilterProxyModel>
|
||||
#include <QDateTime>
|
||||
|
||||
// Filter transaction list according to pre-specified rules
|
||||
class TransactionFilterProxy : public QSortFilterProxyModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit TransactionFilterProxy(QObject *parent = 0);
|
||||
|
||||
// Earliest date that can be represented (far in the past)
|
||||
static const QDateTime MIN_DATE;
|
||||
// Last date that can be represented (far in the future)
|
||||
static const QDateTime MAX_DATE;
|
||||
// Type filter bit field (all types)
|
||||
static const quint32 ALL_TYPES = 0xFFFFFFFF;
|
||||
|
||||
static quint32 TYPE(int type) { return 1<<type; }
|
||||
|
||||
void setDateRange(const QDateTime &from, const QDateTime &to);
|
||||
void setAddressPrefix(const QString &addrPrefix);
|
||||
// Type filter takes a bitfield created with TYPE() or ALL_TYPES
|
||||
void setTypeFilter(quint32 modes);
|
||||
void setMinAmount(qint64 minimum);
|
||||
|
||||
protected:
|
||||
bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const;
|
||||
|
||||
private:
|
||||
QDateTime dateFrom;
|
||||
QDateTime dateTo;
|
||||
QString addrPrefix;
|
||||
quint32 typeFilter;
|
||||
qint64 minAmount;
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
};
|
||||
|
||||
#endif // TRANSACTIONFILTERPROXY_H
|
||||
Reference in New Issue
Block a user