20 : QSortFilterProxyModel { parent }
22 Filter_.setCaseSensitivity (cs);
23 setRecursiveFilteringEnabled (
true);
28 if (cs == Filter_.caseSensitivity ())
31 Filter_.setCaseSensitivity (cs);
37 return Filter_.caseSensitivity ();
56 if (columns == Columns_)
70 if (Filter_.pattern () == filter)
73 Filter_.setPattern (filter);
79 return Filter_.pattern ();
84 return !Filter_.patternView ().isEmpty ();
89 return Filter_.indexIn (text) >= 0;
97 const auto checkColumn = [&,
this] (
int col)
99 const auto& idx = sourceModel ()->index (row, col, parent);
100 return std::ranges::any_of (Roles_,
101 [
this, &idx] (
int role) {
return IsMatch (idx.data (role).toString ()); });
104 return Columns_.isEmpty () ?
105 std::ranges::any_of (std::views::iota (0, sourceModel ()->columnCount (parent)), checkColumn) :
106 std::ranges::any_of (Columns_, checkColumn);
QString GetFilterString() const
void SetFilterRoles(const QList< int > &)
void SetFilterColumns(const QList< int > &)
Qt::CaseSensitivity GetCaseSensitivity() const
bool filterAcceptsRow(int row, const QModelIndex &parent) const override
FixedStringFilterProxyModel(QObject *=nullptr)
void SetCaseSensitivity(Qt::CaseSensitivity)
virtual void SetFilterString(const QString &)
QList< int > GetFilterRoles() const
QList< int > GetFilterColumns() const
bool IsMatch(const QString &) const