/ 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