/
githubmirror
/
bitcoin
Обзор
Документация
Войти
/
githubmirror
/
bitcoin
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/qt/transactionfilterproxy.cpp
127 строк
3 KB
MarcoFalke
scripted-diff: [doc] Unify stale copyright headers
17 дек 2025, 00:21
17 дек 2025, 00:21
fa5f297
Код
Авторство
О чём код?
// Copyright (c) 2011-present The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include <qt/transactionfilterproxy.h> #include <qt/transactiontablemodel.h> #include <qt/transactionrecord.h> #include <algorithm> #include <cstdlib> #include <optional> TransactionFilterProxy::TransactionFilterProxy(QObject* parent) : QSortFilterProxyModel(parent) { } bool TransactionFilterProxy::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); int status = index.data(TransactionTableModel::StatusRole).toInt(); if (!showInactive && status == TransactionStatus::Conflicted) return false; int type = index.data(TransactionTableModel::TypeRole).toInt(); if (!(TYPE(type) & typeFilter)) return false; QDateTime datetime = index.data(TransactionTableModel::DateRole).toDateTime(); if (dateFrom && datetime < *dateFrom) return false; if (dateTo && datetime > *dateTo) return false; QString address = index.data(TransactionTableModel::AddressRole).toString(); QString label = index.data(TransactionTableModel::LabelRole).toString(); QString txid = index.data(TransactionTableModel::TxHashRole).toString(); if (!address.contains(m_search_string, Qt::CaseInsensitive) && ! label.contains(m_search_string, Qt::CaseInsensitive) && ! txid.contains(m_search_string, Qt::CaseInsensitive)) { return false; } qint64 amount = llabs(index.data(TransactionTableModel::AmountRole).toLongLong()); if (amount < minAmount) return false; return true; } void TransactionFilterProxy::setDateRange(const std::optional<QDateTime>& from, const std::optional<QDateTime>& to) { #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) beginFilterChange(); #endif dateFrom = from; dateTo = to; #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) endFilterChange(QSortFilterProxyModel::Direction::Rows); #else invalidateFilter(); #endif } void TransactionFilterProxy::setSearchString(const QString &search_string) { if (m_search_string == search_string) return; #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) beginFilterChange(); #endif m_search_string = search_string; #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) endFilterChange(QSortFilterProxyModel::Direction::Rows); #else invalidateFilter(); #endif } void TransactionFilterProxy::setTypeFilter(quint32 modes) { #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) beginFilterChange(); #endif this->typeFilter = modes; #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) endFilterChange(QSortFilterProxyModel::Direction::Rows); #else invalidateFilter(); #endif } void TransactionFilterProxy::setMinAmount(const CAmount& minimum) { #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) beginFilterChange(); #endif this->minAmount = minimum; #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) endFilterChange(QSortFilterProxyModel::Direction::Rows); #else invalidateFilter(); #endif } void TransactionFilterProxy::setShowInactive(bool _showInactive) { #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) beginFilterChange(); #endif this->showInactive = _showInactive; #if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) endFilterChange(QSortFilterProxyModel::Direction::Rows); #else invalidateFilter(); #endif }