Fix deprecated QRegExp

Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
This commit is contained in:
Simon De Backer 2020-09-18 23:05:42 +02:00
parent 271fd096e2
commit 402d2fbf4a
4 changed files with 44 additions and 36 deletions

View File

@ -16,12 +16,15 @@
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>. along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "qetregexpvalidator.h" #include "qetregexpvalidator.h"
#include <QRegularExpression>
/** /**
Constructeur Constructeur
@param parent QObject parent @param parent QObject parent
*/ */
QETRegExpValidator::QETRegExpValidator(QObject *parent) : QRegExpValidator(parent) { QETRegExpValidator::QETRegExpValidator(QObject *parent)
: QRegularExpressionValidator(parent)
{
} }
/** /**
@ -29,7 +32,10 @@ QETRegExpValidator::QETRegExpValidator(QObject *parent) : QRegExpValidator(paren
@param regexp Expression reguliere a valider @param regexp Expression reguliere a valider
@param parent QObject parent @param parent QObject parent
*/ */
QETRegExpValidator::QETRegExpValidator(const QRegExp &regexp, QObject *parent) : QRegExpValidator(regexp, parent) { QETRegExpValidator::QETRegExpValidator(
const QRegularExpression &regexp, QObject *parent) :
QRegularExpressionValidator(regexp, parent)
{
} }
/** /**
@ -40,13 +46,15 @@ QETRegExpValidator::~QETRegExpValidator()
} }
/** /**
@see QRegExpValidator::validate @see QRegularExpressionValidator::validate
@see validationFailed() @see validationFailed()
Emet le signal validationFailed si la validation echoue Emet le signal validationFailed si la validation echoue
*/ */
QValidator::State QETRegExpValidator::validate(QString &input, int &pos) const QValidator::State QETRegExpValidator::validate(QString &input, int &pos) const
{ {
QValidator::State result = QRegExpValidator::validate(input, pos); QValidator::State result = QRegularExpressionValidator::validate(
if (result == QValidator::Invalid) emit(validationFailed()); input, pos);
if (result == QValidator::Invalid)
emit(validationFailed());
return(result); return(result);
} }

View File

@ -17,18 +17,18 @@
*/ */
#ifndef QET_REGEXP_VALIDATOR_H #ifndef QET_REGEXP_VALIDATOR_H
#define QET_REGEXP_VALIDATOR_H #define QET_REGEXP_VALIDATOR_H
#include <QRegExpValidator> #include <QRegularExpressionValidator>
/** /**
This class acts like a QRegExpValidator except it emits a signal when the This class acts like a QRegularExpressionValidator
input validation fails. except it emits a signal when the input validation fails.
*/ */
class QETRegExpValidator : public QRegExpValidator { class QETRegExpValidator : public QRegularExpressionValidator {
Q_OBJECT Q_OBJECT
// constructors, destructor // constructors, destructor
public: public:
QETRegExpValidator(QObject *); QETRegExpValidator(QObject *);
QETRegExpValidator(const QRegExp &, QObject *); QETRegExpValidator(const QRegularExpression &, QObject *);
~QETRegExpValidator() override; ~QETRegExpValidator() override;
private: private:
QETRegExpValidator(const QETRegExpValidator &); QETRegExpValidator(const QETRegExpValidator &);

View File

@ -18,7 +18,7 @@
#include "qfilenameedit.h" #include "qfilenameedit.h"
#include "qetregexpvalidator.h" #include "qetregexpvalidator.h"
#include <QKeyEvent> #include <QKeyEvent>
#include <QRegExp> #include <QRegularExpression>
#include <QToolTip> #include <QToolTip>
/** /**
@ -36,7 +36,7 @@ QFileNameEdit::QFileNameEdit(QWidget *parent) : QLineEdit(parent) {
*/ */
QFileNameEdit::QFileNameEdit(const QString &contents, QWidget *parent) : QLineEdit(parent) { QFileNameEdit::QFileNameEdit(const QString &contents, QWidget *parent) : QLineEdit(parent) {
init(); init();
if (!contents.isEmpty() && regexp_.exactMatch(contents)) { if (!contents.isEmpty() && regexp_==QRegularExpression(contents)) {
setText(contents); setText(contents);
} }
} }
@ -61,7 +61,7 @@ bool QFileNameEdit::isEmpty()
*/ */
bool QFileNameEdit::isValid() bool QFileNameEdit::isValid()
{ {
return(regexp_.exactMatch(text())); return(regexp_==QRegularExpression(text()));
} }
/** /**
@ -69,7 +69,7 @@ bool QFileNameEdit::isValid()
*/ */
void QFileNameEdit::init() void QFileNameEdit::init()
{ {
regexp_ = QRegExp("^[0-9a-z_\\-\\.]+$", Qt::CaseSensitive); regexp_ = QRegularExpression("^[0-9a-z_\\-\\.]+$");
validator_ = new QETRegExpValidator(regexp_, this); validator_ = new QETRegExpValidator(regexp_, this);
setValidator(validator_); setValidator(validator_);
tooltip_text_ = QString( tooltip_text_ = QString(

View File

@ -18,8 +18,8 @@
#ifndef Q_FILENAME_EDIT_H #ifndef Q_FILENAME_EDIT_H
#define Q_FILENAME_EDIT_H #define Q_FILENAME_EDIT_H
#include <QLineEdit> #include <QLineEdit>
#include <QRegExp>
#include <QString> #include <QString>
#include <QRegularExpression>
class QETRegExpValidator; class QETRegExpValidator;
/** /**
This class represents a textfield dedicated to input a portable filename (not This class represents a textfield dedicated to input a portable filename (not
@ -54,7 +54,7 @@ class QFileNameEdit : public QLineEdit {
// attributes // attributes
private: private:
QRegExp regexp_; QRegularExpression regexp_;
QETRegExpValidator *validator_; QETRegExpValidator *validator_;
QString tooltip_text_; QString tooltip_text_;
}; };