From 57a710467b123e11b651eec951eb87558ea40c25 Mon Sep 17 00:00:00 2001 From: Samuel Gaist Date: Sat, 21 Jan 2017 22:57:20 +0100 Subject: Example: migrate settingseditor example to use QRegularExpression Update the settingseditor example to use the new QRegularExpression class in place of the deprecated QRegExp. Change-Id: I07e34bf916bdde161c4253fca70b853061cd589b Reviewed-by: Sze Howe Koh --- .../tools/settingseditor/variantdelegate.cpp | 39 +++++++++++----------- .../widgets/tools/settingseditor/variantdelegate.h | 28 ++++++++-------- 2 files changed, 34 insertions(+), 33 deletions(-) (limited to 'examples/widgets/tools') diff --git a/examples/widgets/tools/settingseditor/variantdelegate.cpp b/examples/widgets/tools/settingseditor/variantdelegate.cpp index e8552b66f2..266754ca4d 100644 --- a/examples/widgets/tools/settingseditor/variantdelegate.cpp +++ b/examples/widgets/tools/settingseditor/variantdelegate.cpp @@ -56,14 +56,14 @@ VariantDelegate::VariantDelegate(QObject *parent) : QItemDelegate(parent) { boolExp.setPattern("true|false"); - boolExp.setCaseSensitivity(Qt::CaseInsensitive); + boolExp.setPatternOptions(QRegularExpression::CaseInsensitiveOption); byteArrayExp.setPattern("[\\x00-\\xff]*"); charExp.setPattern("."); - colorExp.setPattern("\\(([0-9]*),([0-9]*),([0-9]*),([0-9]*)\\)"); + colorExp.setPattern("^\\(([0-9]*),([0-9]*),([0-9]*),([0-9]*)\\)$"); doubleExp.setPattern(""); - pointExp.setPattern("\\((-?[0-9]*),(-?[0-9]*)\\)"); - rectExp.setPattern("\\((-?[0-9]*),(-?[0-9]*),(-?[0-9]*),(-?[0-9]*)\\)"); + pointExp.setPattern("^\\((-?[0-9]*),(-?[0-9]*)\\)$"); + rectExp.setPattern("^\\((-?[0-9]*),(-?[0-9]*),(-?[0-9]*),(-?[0-9]*)\\)$"); signedIntegerExp.setPattern("-?[0-9]*"); sizeExp = pointExp; unsignedIntegerExp.setPattern("[0-9]*"); @@ -104,7 +104,7 @@ QWidget *VariantDelegate::createEditor(QWidget *parent, QLineEdit *lineEdit = new QLineEdit(parent); lineEdit->setFrame(false); - QRegExp regExp; + QRegularExpression regExp; switch (originalValue.type()) { case QVariant::Bool: @@ -152,8 +152,8 @@ QWidget *VariantDelegate::createEditor(QWidget *parent, ; } - if (!regExp.isEmpty()) { - QValidator *validator = new QRegExpValidator(regExp, lineEdit); + if (regExp.isValid()) { + QValidator *validator = new QRegularExpressionValidator(regExp, lineEdit); lineEdit->setValidator(validator); } @@ -185,17 +185,18 @@ void VariantDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, QVariant originalValue = index.model()->data(index, Qt::UserRole); QVariant value; + QRegularExpressionMatch match; switch (originalValue.type()) { case QVariant::Char: value = text.at(0); break; case QVariant::Color: - colorExp.exactMatch(text); - value = QColor(qMin(colorExp.cap(1).toInt(), 255), - qMin(colorExp.cap(2).toInt(), 255), - qMin(colorExp.cap(3).toInt(), 255), - qMin(colorExp.cap(4).toInt(), 255)); + match = colorExp.match(text); + value = QColor(qMin(match.captured(1).toInt(), 255), + qMin(match.captured(2).toInt(), 255), + qMin(match.captured(3).toInt(), 255), + qMin(match.captured(4).toInt(), 255)); break; case QVariant::Date: { @@ -214,17 +215,17 @@ void VariantDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, } break; case QVariant::Point: - pointExp.exactMatch(text); - value = QPoint(pointExp.cap(1).toInt(), pointExp.cap(2).toInt()); + match = pointExp.match(text); + value = QPoint(match.captured(1).toInt(), match.captured(2).toInt()); break; case QVariant::Rect: - rectExp.exactMatch(text); - value = QRect(rectExp.cap(1).toInt(), rectExp.cap(2).toInt(), - rectExp.cap(3).toInt(), rectExp.cap(4).toInt()); + match = rectExp.match(text); + value = QRect(match.captured(1).toInt(), match.captured(2).toInt(), + match.captured(3).toInt(), match.captured(4).toInt()); break; case QVariant::Size: - sizeExp.exactMatch(text); - value = QSize(sizeExp.cap(1).toInt(), sizeExp.cap(2).toInt()); + match = sizeExp.match(text); + value = QSize(match.captured(1).toInt(), match.captured(2).toInt()); break; case QVariant::StringList: value = text.split(','); diff --git a/examples/widgets/tools/settingseditor/variantdelegate.h b/examples/widgets/tools/settingseditor/variantdelegate.h index a15228fdf9..7cd9fa9ee8 100644 --- a/examples/widgets/tools/settingseditor/variantdelegate.h +++ b/examples/widgets/tools/settingseditor/variantdelegate.h @@ -52,7 +52,7 @@ #define VARIANTDELEGATE_H #include -#include +#include class VariantDelegate : public QItemDelegate { @@ -73,19 +73,19 @@ public: static QString displayText(const QVariant &value); private: - mutable QRegExp boolExp; - mutable QRegExp byteArrayExp; - mutable QRegExp charExp; - mutable QRegExp colorExp; - mutable QRegExp dateExp; - mutable QRegExp dateTimeExp; - mutable QRegExp doubleExp; - mutable QRegExp pointExp; - mutable QRegExp rectExp; - mutable QRegExp signedIntegerExp; - mutable QRegExp sizeExp; - mutable QRegExp timeExp; - mutable QRegExp unsignedIntegerExp; + mutable QRegularExpression boolExp; + mutable QRegularExpression byteArrayExp; + mutable QRegularExpression charExp; + mutable QRegularExpression colorExp; + mutable QRegularExpression dateExp; + mutable QRegularExpression dateTimeExp; + mutable QRegularExpression doubleExp; + mutable QRegularExpression pointExp; + mutable QRegularExpression rectExp; + mutable QRegularExpression signedIntegerExp; + mutable QRegularExpression sizeExp; + mutable QRegularExpression timeExp; + mutable QRegularExpression unsignedIntegerExp; }; #endif -- cgit v1.2.3