LeechCraft  0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
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 
14 namespace 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>&);
34  QList<int> GetFilterRoles () const;
35 
36  void SetFilterColumns (const QList<int>&);
37  QList<int> GetFilterColumns () const;
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 }
#define UTIL_MODELS_API
Definition: modelsconfig.h:16