/ proxyroles / regexprole.h
regexprole.h
 1  #ifndef REGEXPROLE_H
 2  #define REGEXPROLE_H
 3  
 4  #include "proxyrole.h"
 5  #include <QRegularExpression>
 6  
 7  namespace qqsfpm {
 8  
 9  class RegExpRole : public ProxyRole
10  {
11      Q_OBJECT
12      Q_PROPERTY(QString roleName READ roleName WRITE setRoleName NOTIFY roleNameChanged)
13      Q_PROPERTY(QString pattern READ pattern WRITE setPattern NOTIFY patternChanged)
14      Q_PROPERTY(Qt::CaseSensitivity caseSensitivity READ caseSensitivity WRITE setCaseSensitivity NOTIFY caseSensitivityChanged)
15  
16  public:
17      using ProxyRole::ProxyRole;
18  
19      QString roleName() const;
20      void setRoleName(const QString& roleName);
21  
22      QString pattern() const;
23      void setPattern(const QString& pattern);
24  
25      Qt::CaseSensitivity caseSensitivity() const;
26      void setCaseSensitivity(Qt::CaseSensitivity caseSensitivity);
27  
28      QStringList names() override;
29  
30  Q_SIGNALS:
31      void roleNameChanged();
32      void patternChanged();    
33      void caseSensitivityChanged();
34  
35  private:
36      QString m_roleName;
37      QRegularExpression m_regularExpression;
38      QVariant data(const QModelIndex &sourceIndex, const QQmlSortFilterProxyModel &proxyModel, const QString &name) override;
39  };
40  
41  }
42  
43  #endif // REGEXPROLE_H