diff options
| author | moneromooo.monero <moneromooo.monero@users.noreply.github.com> | 2016-11-16 23:09:00 +0000 |
|---|---|---|
| committer | moneromooo.monero <moneromooo.monero@users.noreply.github.com> | 2016-11-17 19:36:39 +0000 |
| commit | 78da2b5b1b5b2e4c43b4fddb6324a30ea1bdc574 (patch) | |
| tree | 3453d612f6f582a6c9ee33974783ddc6fb0f92d4 /src | |
| parent | c83336cc4714215725cba957d8ea164a57c33987 (diff) | |
| download | monzero-gui-78da2b5b1b5b2e4c43b4fddb6324a30ea1bdc574.tar.gz monzero-gui-78da2b5b1b5b2e4c43b4fddb6324a30ea1bdc574.tar.xz monzero-gui-78da2b5b1b5b2e4c43b4fddb6324a30ea1bdc574.zip | |
History: replace payment id search with global incremental search
Diffstat (limited to 'src')
| -rw-r--r-- | src/model/TransactionHistorySortFilterModel.cpp | 41 | ||||
| -rw-r--r-- | src/model/TransactionHistorySortFilterModel.h | 7 |
2 files changed, 47 insertions, 1 deletions
diff --git a/src/model/TransactionHistorySortFilterModel.cpp b/src/model/TransactionHistorySortFilterModel.cpp index 6d6a2b44..c2dd0e6f 100644 --- a/src/model/TransactionHistorySortFilterModel.cpp +++ b/src/model/TransactionHistorySortFilterModel.cpp @@ -42,6 +42,20 @@ TransactionHistorySortFilterModel::TransactionHistorySortFilterModel(QObject *pa setDynamicSortFilter(true); } +QString TransactionHistorySortFilterModel::searchFilter() const +{ + return m_searchString; +} + +void TransactionHistorySortFilterModel::setSearchFilter(const QString &arg) +{ + if (searchFilter() != arg) { + m_searchString = arg; + emit searchFilterChanged(); + invalidateFilter(); + } +} + QString TransactionHistorySortFilterModel::paymentIdFilter() const { return m_filterValues.value(TransactionHistoryModel::TransactionPaymentIdRole).toString(); @@ -200,7 +214,32 @@ bool TransactionHistorySortFilterModel::filterAcceptsRow(int source_row, const Q } } - return result; + if (!result || m_searchString.isEmpty()) + return result; + + QVariant data = sourceModel()->data(index, TransactionHistoryModel::TransactionPaymentIdRole); + if (data.toString().contains(m_searchString)) + return true; + data = sourceModel()->data(index, TransactionHistoryModel::TransactionDisplayAmountRole); + if (data.toString().contains(m_searchString)) + return true; + data = sourceModel()->data(index, TransactionHistoryModel::TransactionBlockHeightRole); + if (data.toString().contains(m_searchString)) + return true; + data = sourceModel()->data(index, TransactionHistoryModel::TransactionFeeRole); + if (data.toString().contains(m_searchString)) + return true; + data = sourceModel()->data(index, TransactionHistoryModel::TransactionHashRole); + if (data.toString().contains(m_searchString)) + return true; + data = sourceModel()->data(index, TransactionHistoryModel::TransactionDateRole); + if (data.toString().contains(m_searchString)) + return true; + data = sourceModel()->data(index, TransactionHistoryModel::TransactionTimeRole); + if (data.toString().contains(m_searchString)) + return true; + + return false; } bool TransactionHistorySortFilterModel::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const diff --git a/src/model/TransactionHistorySortFilterModel.h b/src/model/TransactionHistorySortFilterModel.h index 1b5c2fce..b8f0031d 100644 --- a/src/model/TransactionHistorySortFilterModel.h +++ b/src/model/TransactionHistorySortFilterModel.h @@ -14,6 +14,7 @@ class TransactionHistory; class TransactionHistorySortFilterModel: public QSortFilterProxyModel { Q_OBJECT + Q_PROPERTY(QString searchFilter READ searchFilter WRITE setSearchFilter NOTIFY searchFilterChanged) Q_PROPERTY(QString paymentIdFilter READ paymentIdFilter WRITE setPaymentIdFilter NOTIFY paymentIdFilterChanged) Q_PROPERTY(QDate dateFromFilter READ dateFromFilter WRITE setDateFromFilter NOTIFY dateFromFilterChanged) Q_PROPERTY(QDate dateToFilter READ dateToFilter WRITE setDateToFilter NOTIFY dateToFilterChanged) @@ -25,6 +26,10 @@ class TransactionHistorySortFilterModel: public QSortFilterProxyModel public: TransactionHistorySortFilterModel(QObject * parent = nullptr); + //! filtering by string search + QString searchFilter() const; + void setSearchFilter(const QString &arg); + //! filtering by payment id QString paymentIdFilter() const; void setPaymentIdFilter(const QString &arg); @@ -53,6 +58,7 @@ public: TransactionHistory * transactionHistory() const; signals: + void searchFilterChanged(); void paymentIdFilterChanged(); void dateFromFilterChanged(); void dateToFilterChanged(); @@ -74,6 +80,7 @@ private: private: QMap<int, QVariant> m_filterValues; + QString m_searchString; }; #endif // TRANSACTIONHISTORYSORTFILTERMODEL_H |
