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

@@ -1,27 +1,30 @@
/* /*
Copyright 2006-2020 The QElectroTech Team Copyright 2006-2020 The QElectroTech Team
This file is part of QElectroTech. This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or the Free Software Foundation, either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
QElectroTech is distributed in the hope that it will be useful, QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
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

@@ -1,42 +1,42 @@
/* /*
Copyright 2006-2020 The QElectroTech Team Copyright 2006-2020 The QElectroTech Team
This file is part of QElectroTech. This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or the Free Software Foundation, either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
QElectroTech is distributed in the hope that it will be useful, QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>. along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/ */
#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 &);
// methods // methods
public: public:
QValidator::State validate(QString &, int &) const override; QValidator::State validate(QString &, int &) const override;
signals: signals:
void validationFailed() const; void validationFailed() const;
}; };

View File

@@ -1,24 +1,24 @@
/* /*
Copyright 2006-2020 The QElectroTech Team Copyright 2006-2020 The QElectroTech Team
This file is part of QElectroTech. This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or the Free Software Foundation, either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
QElectroTech is distributed in the hope that it will be useful, QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>. along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/ */
#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

@@ -1,25 +1,25 @@
/* /*
Copyright 2006-2020 The QElectroTech Team Copyright 2006-2020 The QElectroTech Team
This file is part of QElectroTech. This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or the Free Software Foundation, either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
QElectroTech is distributed in the hope that it will be useful, QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>. along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/ */
#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
@@ -31,7 +31,7 @@ class QETRegExpValidator;
*/ */
class QFileNameEdit : public QLineEdit { class QFileNameEdit : public QLineEdit {
Q_OBJECT Q_OBJECT
// constructors, destructor // constructors, destructor
public: public:
QFileNameEdit(QWidget * = nullptr); QFileNameEdit(QWidget * = nullptr);
@@ -39,22 +39,22 @@ class QFileNameEdit : public QLineEdit {
~QFileNameEdit() override; ~QFileNameEdit() override;
private: private:
QFileNameEdit(const QFileNameEdit &); QFileNameEdit(const QFileNameEdit &);
// methods // methods
public: public:
bool isEmpty(); bool isEmpty();
bool isValid(); bool isValid();
private: private:
void init(); void init();
void displayToolTip(); void displayToolTip();
private slots: private slots:
void validationFailed(); void validationFailed();
// attributes // attributes
private: private:
QRegExp regexp_; QRegularExpression regexp_;
QETRegExpValidator *validator_; QETRegExpValidator *validator_;
QString tooltip_text_; QString tooltip_text_;
}; };