aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authormoneromooo.monero <moneromooo.monero@users.noreply.github.com>2016-11-16 23:09:00 +0000
committermoneromooo.monero <moneromooo.monero@users.noreply.github.com>2016-11-17 19:36:39 +0000
commit78da2b5b1b5b2e4c43b4fddb6324a30ea1bdc574 (patch)
tree3453d612f6f582a6c9ee33974783ddc6fb0f92d4 /src/model
parentc83336cc4714215725cba957d8ea164a57c33987 (diff)
downloadmonzero-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/model')
-rw-r--r--src/model/TransactionHistorySortFilterModel.cpp41
-rw-r--r--src/model/TransactionHistorySortFilterModel.h7
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