123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // ECOin - Copyright (c) - 2014/2021 - GPLv3 - epsylon@riseup.net (https://03c8.net)
- #ifndef TRANSACTIONFILTERPROXY_H
- #define TRANSACTIONFILTERPROXY_H
- #include <QSortFilterProxyModel>
- #include <QDateTime>
- /** Filter the 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);
- void setTypeFilter(quint32 modes);
- void setMinAmount(qint64 minimum);
- /** Set maximum number of rows returned, -1 if unlimited. */
- void setLimit(int limit);
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- protected:
- bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const;
- private:
- QDateTime dateFrom;
- QDateTime dateTo;
- QString addrPrefix;
- quint32 typeFilter;
- qint64 minAmount;
- int limitRows;
- signals:
- public slots:
- };
- #endif // TRANSACTIONFILTERPROXY_H
|