LeechCraft 0.6.70-17793-g6e56308e78
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
fixedstringfilterproxymodel.h
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#pragma once
10
11#include <QSortFilterProxyModel>
12#include "modelsconfig.h"
13
14namespace LC::Util
15{
16 class UTIL_MODELS_API FixedStringFilterProxyModel : public QSortFilterProxyModel
17 {
18 QStringMatcher Filter_;
19 QList<int> Columns_ {};
20 QList<int> Roles_ { Qt::DisplayRole };
21 public:
22 explicit FixedStringFilterProxyModel (QObject* = nullptr);
23 explicit FixedStringFilterProxyModel (Qt::CaseSensitivity, QObject* = nullptr);
24
25 virtual void SetFilterString (const QString&);
26 QString GetFilterString () const;
27
28 bool IsFilterSet () const;
29
30 void SetCaseSensitivity (Qt::CaseSensitivity);
31 Qt::CaseSensitivity GetCaseSensitivity () const;
32
33 void SetFilterRoles (const QList<int>&);
35
36 void SetFilterColumns (const QList<int>&);
38 protected:
39 bool IsMatch (const QString&) const;
40
41 bool filterAcceptsRow (int row, const QModelIndex& parent) const override;
42 private:
43 using QSortFilterProxyModel::setFilterFixedString;
44 };
45}
bool filterAcceptsRow(int row, const QModelIndex &parent) const override
#define UTIL_MODELS_API