LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
fixedstringfilterproxymodel.cpp
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#include "
fixedstringfilterproxymodel.h
"
10
#include <ranges>
11
12
namespace
LC::Util
13
{
14
FixedStringFilterProxyModel::FixedStringFilterProxyModel
(QObject *parent)
15
:
FixedStringFilterProxyModel
{ Qt::CaseInsensitive, parent }
16
{
17
}
18
19
FixedStringFilterProxyModel::FixedStringFilterProxyModel
(Qt::CaseSensitivity cs, QObject *parent)
20
: QSortFilterProxyModel { parent }
21
{
22
Filter_.setCaseSensitivity (cs);
23
setRecursiveFilteringEnabled (
true
);
24
}
25
26
void
FixedStringFilterProxyModel::SetCaseSensitivity
(Qt::CaseSensitivity cs)
27
{
28
if
(cs == Filter_.caseSensitivity ())
29
return
;
30
31
Filter_.setCaseSensitivity (cs);
32
invalidateFilter ();
33
}
34
35
Qt::CaseSensitivity
FixedStringFilterProxyModel::GetCaseSensitivity
()
const
36
{
37
return
Filter_.caseSensitivity ();
38
}
39
40
void
FixedStringFilterProxyModel::SetFilterRoles
(
const
QList<int>
& roles)
41
{
42
if
(roles == Roles_)
43
return
;
44
45
Roles_ = roles;
46
invalidateFilter ();
47
}
48
49
QList<int>
FixedStringFilterProxyModel::GetFilterRoles
()
const
50
{
51
return
Roles_;
52
}
53
54
void
FixedStringFilterProxyModel::SetFilterColumns
(
const
QList<int>
& columns)
55
{
56
if
(columns == Columns_)
57
return
;
58
59
Columns_ = columns;
60
invalidateFilter ();
61
}
62
63
QList<int>
FixedStringFilterProxyModel::GetFilterColumns
()
const
64
{
65
return
Columns_;
66
}
67
68
void
FixedStringFilterProxyModel::SetFilterString
(
const
QString& filter)
69
{
70
if
(Filter_.pattern () == filter)
71
return
;
72
73
Filter_.setPattern (filter);
74
invalidateFilter ();
75
}
76
77
QString
FixedStringFilterProxyModel::GetFilterString
()
const
78
{
79
return
Filter_.pattern ();
80
}
81
82
bool
FixedStringFilterProxyModel::IsFilterSet
()
const
83
{
84
return
!Filter_.patternView ().isEmpty ();
85
}
86
87
bool
FixedStringFilterProxyModel::IsMatch
(
const
QString& text)
const
88
{
89
return
Filter_.indexIn (text) >= 0;
90
}
91
92
bool
FixedStringFilterProxyModel::filterAcceptsRow
(
int
row,
const
QModelIndex& parent)
const
93
{
94
if
(!
IsFilterSet
())
95
return
true
;
96
97
const
auto
checkColumn = [&,
this
] (
int
col)
98
{
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 ()); });
102
};
103
104
return
Columns_.isEmpty () ?
105
std::ranges::any_of (std::views::iota (0, sourceModel ()->columnCount (parent)), checkColumn) :
106
std::ranges::any_of (Columns_, checkColumn);
107
}
108
}
LC::Util::FixedStringFilterProxyModel::GetFilterRoles
QList< int > GetFilterRoles() const
Definition
fixedstringfilterproxymodel.cpp:49
LC::Util::FixedStringFilterProxyModel::GetFilterString
QString GetFilterString() const
Definition
fixedstringfilterproxymodel.cpp:77
LC::Util::FixedStringFilterProxyModel::SetFilterColumns
void SetFilterColumns(const QList< int > &)
Definition
fixedstringfilterproxymodel.cpp:54
LC::Util::FixedStringFilterProxyModel::IsMatch
bool IsMatch(const QString &) const
Definition
fixedstringfilterproxymodel.cpp:87
LC::Util::FixedStringFilterProxyModel::SetFilterString
virtual void SetFilterString(const QString &)
Definition
fixedstringfilterproxymodel.cpp:68
LC::Util::FixedStringFilterProxyModel::SetFilterRoles
void SetFilterRoles(const QList< int > &)
Definition
fixedstringfilterproxymodel.cpp:40
LC::Util::FixedStringFilterProxyModel::GetCaseSensitivity
Qt::CaseSensitivity GetCaseSensitivity() const
Definition
fixedstringfilterproxymodel.cpp:35
LC::Util::FixedStringFilterProxyModel::SetCaseSensitivity
void SetCaseSensitivity(Qt::CaseSensitivity)
Definition
fixedstringfilterproxymodel.cpp:26
LC::Util::FixedStringFilterProxyModel::FixedStringFilterProxyModel
FixedStringFilterProxyModel(QObject *=nullptr)
Definition
fixedstringfilterproxymodel.cpp:14
LC::Util::FixedStringFilterProxyModel::IsFilterSet
bool IsFilterSet() const
Definition
fixedstringfilterproxymodel.cpp:82
LC::Util::FixedStringFilterProxyModel::GetFilterColumns
QList< int > GetFilterColumns() const
Definition
fixedstringfilterproxymodel.cpp:63
LC::Util::FixedStringFilterProxyModel::filterAcceptsRow
bool filterAcceptsRow(int row, const QModelIndex &parent) const override
Definition
fixedstringfilterproxymodel.cpp:92
QList
Definition
ianrulesstorage.h:14
fixedstringfilterproxymodel.h
LC::Util
Definition
icoreproxy.h:34
src
util
models
fixedstringfilterproxymodel.cpp
Generated by
1.17.0