[LyX/master] Remove use of QRegExp

Jean-Marc Lasgouttes lasgouttes at lyx.org
Fri Mar 3 08:50:39 UTC 2023


commit 263da2fa20ba30b60a4c752b692c6cb822664585
Author: Jean-Marc Lasgouttes <lasgouttes at lyx.org>
Date:   Mon Feb 20 17:38:59 2023 +0100

    Remove use of QRegExp
    
    QRegexp has been replaced with QRegularExpression in Qt5. Now that we
    have dropped support for Qt4, there is no need for keeping it around.
---
 src/frontends/qt/CategorizedCombo.cpp |    7 --
 src/frontends/qt/GuiAbout.cpp         |    5 --
 src/frontends/qt/GuiApplication.cpp   |   13 +----
 src/frontends/qt/GuiDocument.cpp      |    5 --
 src/frontends/qt/GuiListings.cpp      |    8 ---
 src/frontends/qt/GuiLog.cpp           |   41 -------------
 src/frontends/qt/GuiLog.h             |    7 --
 src/frontends/qt/GuiPrefs.cpp         |    8 ---
 src/frontends/qt/GuiTabular.cpp       |    4 -
 src/frontends/qt/GuiThesaurus.cpp     |   28 ---------
 src/frontends/qt/LaTeXHighlighter.cpp |  104 ---------------------------------
 src/frontends/qt/LayoutBox.cpp        |    5 --
 src/frontends/qt/Validator.cpp        |    4 -
 src/support/qstring_helpers.cpp       |   12 ++--
 14 files changed, 8 insertions(+), 243 deletions(-)

diff --git a/src/frontends/qt/CategorizedCombo.cpp b/src/frontends/qt/CategorizedCombo.cpp
index 81cf89a..43ce6cb 100644
--- a/src/frontends/qt/CategorizedCombo.cpp
+++ b/src/frontends/qt/CategorizedCombo.cpp
@@ -34,9 +34,6 @@
 #include <QSortFilterProxyModel>
 #include <QStandardItemModel>
 #include <QTextFrame>
-#if QT_VERSION >= 0x060000
-#include <QtCore5Compat/QRegExp>
-#endif
 
 using namespace lyx::support;
 
@@ -273,11 +270,7 @@ QString CCItemDelegate::underlineFilter(QString const & s) const
 	if (f.isEmpty())
 		return s;
 	QString r(s);
-#if QT_VERSION < 0x060000
-	QRegExp pattern(charFilterRegExpC(f));
-#else
 	QRegularExpression pattern(charFilterRegExpC(f));
-#endif
 	r.replace(pattern, "<u><b>\\1</b></u>");
 	return r;
 }
diff --git a/src/frontends/qt/GuiAbout.cpp b/src/frontends/qt/GuiAbout.cpp
index 35375c9..539739b 100644
--- a/src/frontends/qt/GuiAbout.cpp
+++ b/src/frontends/qt/GuiAbout.cpp
@@ -127,13 +127,8 @@ static QString release_notes()
 					continue;
 
 				// detect links to the tracker
-#if QT_VERSION < 0x060000
-				line.replace(QRegExp("(bug )(\\#)(\\d+)*"),
-					     "<a href=\"http://www.lyx.org/trac/ticket/\\3\">\\1\\3</a>");
-#else
 				line.replace(QRegularExpression("(bug )(\\#)(\\d+)*"),
 					     "<a href=\"http://www.lyx.org/trac/ticket/\\3\">\\1\\3</a>");
-#endif
 
 				// headings
 				if (line.startsWith("!!!")) {
diff --git a/src/frontends/qt/GuiApplication.cpp b/src/frontends/qt/GuiApplication.cpp
index 25ca4b2..5750df9 100644
--- a/src/frontends/qt/GuiApplication.cpp
+++ b/src/frontends/qt/GuiApplication.cpp
@@ -111,7 +111,6 @@
 #if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
 #include <QRandomGenerator>
 #endif
-#include <QRegExp>
 #include <QSessionManager>
 #include <QSettings>
 #include <QSocketNotifier>
@@ -2623,16 +2622,6 @@ void GuiApplication::createView(QString const & geometry_arg, bool autoShow,
 		int x, y;
 		int w, h;
 		QChar sx, sy;
-#if QT_VERSION < 0x060000
-		QRegExp re( "[=]*(?:([0-9]+)[xX]([0-9]+)){0,1}[ ]*(?:([+-][0-9]*)){0,1}(?:([+-][0-9]*)){0,1}" );
-		re.indexIn(geometry_arg);
-		w = re.cap(1).toInt();
-		h = re.cap(2).toInt();
-		x = re.cap(3).toInt();
-		y = re.cap(4).toInt();
-		sx = re.cap(3).isEmpty() ? '+' : re.cap(3).at(0);
-		sy = re.cap(4).isEmpty() ? '+' : re.cap(4).at(0);
-#else
 		QRegularExpression re( "[=]*(?:([0-9]+)[xX]([0-9]+)){0,1}[ ]*(?:([+-][0-9]*)){0,1}(?:([+-][0-9]*)){0,1}" );
 		QRegularExpressionMatch match = re.match(geometry_arg);
 		w = match.captured(1).toInt();
@@ -2641,7 +2630,7 @@ void GuiApplication::createView(QString const & geometry_arg, bool autoShow,
 		y = match.captured(4).toInt();
 		sx = match.captured(3).isEmpty() ? '+' : match.captured(3).at(0);
 		sy = match.captured(4).isEmpty() ? '+' : match.captured(4).at(0);
-#endif
+
 		// Set initial geometry such that we can get the frame size.
 		view->setGeometry(x, y, w, h);
 		int framewidth = view->geometry().x() - view->x();
diff --git a/src/frontends/qt/GuiDocument.cpp b/src/frontends/qt/GuiDocument.cpp
index a9a9ef4..8af5606 100644
--- a/src/frontends/qt/GuiDocument.cpp
+++ b/src/frontends/qt/GuiDocument.cpp
@@ -4002,13 +4002,8 @@ void GuiDocument::applyView()
 		pdf.pagemode.clear();
 	pdf.quoted_options = pdf.quoted_options_check(
 				fromqstr(pdfSupportModule->optionsTE->toPlainText()));
-#if QT_VERSION < 0x060000
-	bp_.document_metadata = qstring_to_ucs4(pdfSupportModule->metadataTE->toPlainText()
-						.trimmed().replace(QRegExp("\n+"), "\n"));
-#else
 	bp_.document_metadata = qstring_to_ucs4(pdfSupportModule->metadataTE->toPlainText()
 						.trimmed().replace(QRegularExpression("\n+"), "\n"));
-#endif
 
 	// change tracking
 	bp_.track_changes = changesModule->trackChangesCB->isChecked();
diff --git a/src/frontends/qt/GuiListings.cpp b/src/frontends/qt/GuiListings.cpp
index b1a1e8c..246cc2f 100644
--- a/src/frontends/qt/GuiListings.cpp
+++ b/src/frontends/qt/GuiListings.cpp
@@ -30,11 +30,7 @@
 #include <QLineEdit>
 #include <QPushButton>
 #include <QValidator>
-#if QT_VERSION < 0x060000
-#include <QRegExpValidator>
-#else
 #include <QRegularExpressionValidator>
-#endif
 
 using namespace std;
 using namespace lyx::support;
@@ -236,11 +232,7 @@ GuiListings::GuiListings(GuiView & lv)
 	numberStepLE->setValidator(new QIntValidator(0, 1000000, this));
 	firstlineLE->setValidator(new QIntValidator(0, 1000000, this));
 	lastlineLE->setValidator(new QIntValidator(0, 1000000, this));
-#if QT_VERSION < 0x060000
-	placementLE->setValidator(new QRegExpValidator(QRegExp("[\\*tbph]*"), this));
-#else
 	placementLE->setValidator(new QRegularExpressionValidator(QRegularExpression("[\\*tbph]*"), this));
-#endif
 
 	bc().setPolicy(ButtonPolicy::NoRepeatedApplyReadOnlyPolicy);
 	bc().setOK(buttonBox->button(QDialogButtonBox::Ok));
diff --git a/src/frontends/qt/GuiLog.cpp b/src/frontends/qt/GuiLog.cpp
index f908c8f..9ad1673 100644
--- a/src/frontends/qt/GuiLog.cpp
+++ b/src/frontends/qt/GuiLog.cpp
@@ -41,21 +41,12 @@ namespace frontend {
 // Regular expressions needed at several places
 // FIXME: These regexes are incomplete. It would be good if we could collect those used in LaTeX::scanLogFile
 //        and LaTeX::scanBlgFile and re-use them here!(spitz, 2013-05-27)
-#if QT_VERSION < 0x060000
-// Information
-QRegExp exprInfo("^(Document Class:|LaTeX Font Info:|File:|Package:|Language:|.*> INFO - |\\(|\\\\).*$");
-// Warnings
-QRegExp exprWarning("^(## Warning|LaTeX Warning|LaTeX Font Warning|Package [\\w\\.]+ Warning|Class \\w+ Warning|Warning--|Underfull|Overfull|.*> WARN - ).*$");
-// Errors
-QRegExp exprError("^(ERROR: |!|.*---line [0-9]+ of file|.*> FATAL - |.*> ERROR - |Missing character: There is no ).*$");
-#else
 // Information
 QRegularExpression exprInfo("^(Document Class:|LaTeX Font Info:|File:|Package:|Language:|.*> INFO - |\\(|\\\\).*$");
 // Warnings
 QRegularExpression exprWarning("^(## Warning|LaTeX Warning|LaTeX Font Warning|Package [\\w\\-\\.]+ Warning|Class \\w+ Warning|Warning--|Underfull|Overfull|.*> WARN - ).*$");
 // Errors
 QRegularExpression exprError("^(ERROR: |!|.*---line [0-9]+ of file|.*> FATAL - |.*> ERROR - |Missing character: There is no ).*$");
-#endif
 
 
 /////////////////////////////////////////////////////////////////////
@@ -91,29 +82,6 @@ LogHighlighter::LogHighlighter(QTextDocument * parent)
 
 void LogHighlighter::highlightBlock(QString const & text)
 {
-#if QT_VERSION < 0x060000
-	// Info
-	int index = exprInfo.indexIn(text);
-	while (index >= 0) {
-		int length = exprInfo.matchedLength();
-		setFormat(index, length, infoFormat);
-		index = exprInfo.indexIn(text, index + length);
-	}
-	// LaTeX Warning:
-	index = exprWarning.indexIn(text);
-	while (index >= 0) {
-		int length = exprWarning.matchedLength();
-		setFormat(index, length, warningFormat);
-		index = exprWarning.indexIn(text, index + length);
-	}
-	// ! error
-	index = exprError.indexIn(text);
-	while (index >= 0) {
-		int length = exprError.matchedLength();
-		setFormat(index, length, errorFormat);
-		index = exprError.indexIn(text, index + length);
-	}
-#else
 	// Info
 	QRegularExpressionMatch match = exprInfo.match(text);
 	int index = match.capturedStart(1);
@@ -141,7 +109,6 @@ void LogHighlighter::highlightBlock(QString const & text)
 		match = exprError.match(text, index + length);
 		index = match.capturedStart(1);
 	}
-#endif
 }
 
 
@@ -234,11 +201,7 @@ void GuiLog::on_openDirPB_clicked()
 }
 
 
-#if QT_VERSION < 0x060000
-void GuiLog::goTo(QRegExp const & exp) const
-#else
 void GuiLog::goTo(QRegularExpression const & exp) const
-#endif
 {
 	QTextCursor const newc =
 		logTB->document()->find(exp, logTB->textCursor());
@@ -246,11 +209,7 @@ void GuiLog::goTo(QRegularExpression const & exp) const
 }
 
 
-#if QT_VERSION < 0x060000
-bool GuiLog::contains(QRegExp const & exp) const
-#else
 bool GuiLog::contains(QRegularExpression const & exp) const
-#endif
 {
 	return !logTB->document()->find(exp, logTB->textCursor()).isNull();
 }
diff --git a/src/frontends/qt/GuiLog.h b/src/frontends/qt/GuiLog.h
index cd62390..0ceb8d5 100644
--- a/src/frontends/qt/GuiLog.h
+++ b/src/frontends/qt/GuiLog.h
@@ -66,17 +66,10 @@ private:
 	docstring title() const;
 	/// put the log file into the ostream
 	void getContents(std::ostream & ss) const;
-#if QT_VERSION < 0x060000
-	/// go to the next occurrence of the RegExp
-	void goTo(QRegExp const & exp) const;
-	/// does the document after cursor position contain the RegExp?
-	bool contains(QRegExp const & exp) const;
-#else
 	/// go to the next occurrence of the RegExp
 	void goTo(QRegularExpression const & exp) const;
 	/// does the document after cursor position contain the RegExp?
 	bool contains(QRegularExpression const & exp) const;
-#endif
 
 private:
 	/// Recognized log file-types
diff --git a/src/frontends/qt/GuiPrefs.cpp b/src/frontends/qt/GuiPrefs.cpp
index 9480dc2..4368b68 100644
--- a/src/frontends/qt/GuiPrefs.cpp
+++ b/src/frontends/qt/GuiPrefs.cpp
@@ -189,11 +189,7 @@ QString browseRelToSub(QString const & filename, QString const & relpath,
 		toqstr(makeRelPath(qstring_to_ucs4(outname), qstring_to_ucs4(relpath)));
 
 	QString testname = reloutname;
-#if QT_VERSION < 0x060000
-	testname.remove(QRegExp("^(\\.\\./)+"));
-#else
 	testname.remove(QRegularExpression("^(\\.\\./)+"));
-#endif
 
 	if (testname.contains("/"))
 		return outname;
@@ -2469,11 +2465,7 @@ PrefLanguage::PrefLanguage(GuiPreferences * form)
 	startCommandED->setValidator(new NoNewLineValidator(startCommandED));
 	endCommandED->setValidator(new NoNewLineValidator(endCommandED));
 
-#if QT_VERSION < 0x060000
-	defaultDecimalSepED->setValidator(new QRegExpValidator(QRegExp("\\S"), this));
-#else
 	defaultDecimalSepED->setValidator(new QRegularExpressionValidator(QRegularExpression("\\S"), this));
-#endif
 	defaultDecimalSepED->setMaxLength(1);
 
 	defaultLengthUnitCO->addItem(lyx::qt_(unit_name_gui[Length::CM]), Length::CM);
diff --git a/src/frontends/qt/GuiTabular.cpp b/src/frontends/qt/GuiTabular.cpp
index ddb6942..84012be 100644
--- a/src/frontends/qt/GuiTabular.cpp
+++ b/src/frontends/qt/GuiTabular.cpp
@@ -178,11 +178,7 @@ GuiTabular::GuiTabular(QWidget * parent)
 	connect(tabularWidthED, SIGNAL(textEdited(const QString &)),
 		this, SLOT(checkEnabled()));
 
-#if QT_VERSION < 0x060000
-	decimalPointED->setValidator(new QRegExpValidator(QRegExp("\\S"), this));
-#else
 	decimalPointED->setValidator(new QRegularExpressionValidator(QRegularExpression("\\S"), this));
-#endif
 	decimalPointED->setMaxLength(1);
 
 	// initialize the length validator
diff --git a/src/frontends/qt/GuiThesaurus.cpp b/src/frontends/qt/GuiThesaurus.cpp
index f321956..e888cbf 100644
--- a/src/frontends/qt/GuiThesaurus.cpp
+++ b/src/frontends/qt/GuiThesaurus.cpp
@@ -124,22 +124,9 @@ void GuiThesaurus::selectionChanged()
 	QString item = meaningsTV->currentItem()->text(col);
 	// cut out the classification in brackets:
 	// "hominid (generic term)" -> "hominid"
-#if QT_VERSION < 0x060000
-	QRegExp re("^([^\\(\\)]+)\\b\\(?.*\\)?.*$");
-#else
 	QRegularExpression re("^([^\\(\\)]+)\\b\\(?.*\\)?.*$");
-#endif
 	// This is for items with classifications at the beginning:
 	// "(noun) man" -> "man"; "(noun) male (generic term)" -> "male"
-#if QT_VERSION < 0x060000
-	QRegExp rex("^(\\(.+\\))\\s*([^\\(\\)]+)\\s*\\(?.*\\)?.*$");
-	int pos = re.indexIn(item);
-	if (pos > -1)
-		item = re.cap(1).trimmed();
-	pos = rex.indexIn(item);
-	if (pos > -1)
-		item = rex.cap(2).trimmed();
-#else
 	QRegularExpression rex("^(\\(.+\\))\\s*([^\\(\\)]+)\\s*\\(?.*\\)?.*$");
 	QRegularExpressionMatch match = re.match(item);
 	if (match.hasMatch())
@@ -147,7 +134,6 @@ void GuiThesaurus::selectionChanged()
 	match = rex.match(item);
 	if (match.hasMatch())
 		item = match.captured(2).trimmed();
-#endif
 	replaceED->setText(item);
 	replacePB->setEnabled(!isBufferReadonly());
 	changed();
@@ -165,22 +151,9 @@ void GuiThesaurus::selectionClicked(QTreeWidgetItem * item, int col)
 	QString str = item->text(col);
 	// cut out the classification in brackets:
 	// "hominid (generic term)" -> "hominid"
-#if QT_VERSION < 0x060000
-	QRegExp re("^([^\\(\\)]+)\\b\\(?.*\\)?.*$");
-#else
 	QRegularExpression re("^([^\\(\\)]+)\\b\\(?.*\\)?.*$");
-#endif
 	// This is for items with classifications at the beginning:
 	// "(noun) man" -> "man"; "(noun) male (generic term)" -> "male"
-#if QT_VERSION < 0x060000
-	QRegExp rex("^(\\(.+\\))\\s*([^\\(\\)]+)\\s*\\(?.*\\)?.*$");
-	int pos = re.indexIn(str);
-	if (pos > -1)
-		str = re.cap(1).trimmed();
-	pos = rex.indexIn(str);
-	if (pos > -1)
-		str = rex.cap(2).trimmed();
-#else
 	QRegularExpression rex("^(\\(.+\\))\\s*([^\\(\\)]+)\\s*\\(?.*\\)?.*$");
 	QRegularExpressionMatch match = re.match(str);
 	if (match.hasMatch())
@@ -188,7 +161,6 @@ void GuiThesaurus::selectionClicked(QTreeWidgetItem * item, int col)
 	match = rex.match(str);
 	if (match.hasMatch())
 		str = match.captured(2).trimmed();
-#endif
 	entryCO->insertItem(0, str);
 	entryCO->setCurrentIndex(0);
 
diff --git a/src/frontends/qt/LaTeXHighlighter.cpp b/src/frontends/qt/LaTeXHighlighter.cpp
index 80e7a09..8336f7a 100644
--- a/src/frontends/qt/LaTeXHighlighter.cpp
+++ b/src/frontends/qt/LaTeXHighlighter.cpp
@@ -46,109 +46,6 @@ LaTeXHighlighter::LaTeXHighlighter(QTextDocument * parent, bool at_letter, bool
 
 void LaTeXHighlighter::highlightBlock(QString const & text)
 {
-#if QT_VERSION < 0x060000
-	// keyval
-	if (keyval_) {
-		// Highlight key-val options. Used in some option widgets.
-		static const QRegExp exprKeyvalkey("[^=,]+");
-		static const QRegExp exprKeyvalval("[^,]+");
-		int kvindex = exprKeyvalkey.indexIn(text);
-		while (kvindex >= 0) {
-			int length = exprKeyvalkey.matchedLength();
-			setFormat(kvindex, length, keyFormat);
-			int kvvindex = exprKeyvalval.indexIn(text, kvindex + length);
-			if (kvvindex > 0) {
-				length += exprKeyvalval.matchedLength();
-				setFormat(kvvindex, length, valFormat);
-			}
-			kvindex = exprKeyvalkey.indexIn(text, kvindex + length);
-		}
-	}
-	// $ $
-	static const QRegExp exprMath("\\$[^\\$]*\\$");
-	int index = exprMath.indexIn(text);
-	while (index >= 0) {
-		int length = exprMath.matchedLength();
-		setFormat(index, length, mathFormat);
-		index = exprMath.indexIn(text, index + length);
-	}
-	// [ ]
-	static const QRegExp exprStartDispMath("(\\\\\\[|"
-		"\\\\begin\\{equation\\**\\}|"
-		"\\\\begin\\{eqnarray\\**\\}|"
-		"\\\\begin\\{align(ed|at)*\\**\\}|"
-		"\\\\begin\\{flalign\\**\\}|"
-		"\\\\begin\\{gather\\**\\}|"
-		"\\\\begin\\{multline\\**\\}|"
-		"\\\\begin\\{array\\**\\}|"
-		"\\\\begin\\{cases\\**\\}"
-		")");
-	static const QRegExp exprEndDispMath("(\\\\\\]|"
-		"\\\\end\\{equation\\**\\}|"
-		"\\\\end\\{eqnarray\\**\\}|"
-		"\\\\end\\{align(ed|at)*\\**\\}|"
-		"\\\\end\\{flalign\\**\\}|"
-		"\\\\end\\{gather\\**\\}|"
-		"\\\\end\\{multline\\**\\}|"
-		"\\\\end\\{array\\**\\}|"
-		"\\\\end\\{cases\\**\\}"
-		")");
-	int startIndex = 0;
-	// if previous block was in 'disp math'
-	// start search from 0 (for end disp math)
-	// otherwise, start search from 'begin disp math'
-	if (previousBlockState() != 1)
-		startIndex = exprStartDispMath.indexIn(text);
-	while (startIndex >= 0) {
-		int endIndex = exprEndDispMath.indexIn(text, startIndex);
-		int length;
-		if (endIndex == -1) {
-			setCurrentBlockState(1);
-			length = text.length() - startIndex;
-		} else {
-			length = endIndex - startIndex + exprEndDispMath.matchedLength();
-		}
-		setFormat(startIndex, length, mathFormat);
-		startIndex = exprStartDispMath.indexIn(text, startIndex + length);
-	}
-	// \whatever
-	static const QRegExp exprKeywordAtOther("\\\\[A-Za-z]+");
-	// \wh at tever
-	static const QRegExp exprKeywordAtLetter("\\\\[A-Za-z@]+");
-	QRegExp const & exprKeyword = at_letter_ ? exprKeywordAtLetter
-	                                         : exprKeywordAtOther;
-	index = exprKeyword.indexIn(text);
-	while (index >= 0) {
-		int length = exprKeyword.matchedLength();
-		setFormat(index, length, keywordFormat);
-		index = exprKeyword.indexIn(text, index + length);
-	}
-	// %comment
-	// Treat a line as a comment starting at a percent sign
-	// * that is the first character in a line
-	// * that is preceded by
-	// ** an even number of backslashes
-	// ** any character other than a backslash
-	QRegExp exprComment("(?:^|[^\\\\])(?:\\\\\\\\)*(%).*$");
-	exprComment.indexIn(text);
-	index = exprComment.pos(1);
-	while (index >= 0) {
-		int const length = exprComment.matchedLength()
-				 - (index - exprComment.pos(0));
-		setFormat(index, length, commentFormat);
-		exprComment.indexIn(text, index + length);
-		index = exprComment.pos(1);
-	}
-	// <LyX Warning: ...>
-	QString lyxwarn = qt_("LyX Warning: ");
-	QRegExp exprWarning("<" + lyxwarn + "[^<]*>");
-	index = exprWarning.indexIn(text);
-	while (index >= 0) {
-		int length = exprWarning.matchedLength();
-		setFormat(index, length, warningFormat);
-		index = exprWarning.indexIn(text, index + length);
-	}
-#else
 	// keyval
 	if (keyval_) {
 		// Highlight key-val options. Used in some option widgets.
@@ -264,7 +161,6 @@ void LaTeXHighlighter::highlightBlock(QString const & text)
 		match = exprWarning.match(text, index + length);
 		index = match.capturedStart(0);
 	}
-#endif
 }
 
 } // namespace frontend
diff --git a/src/frontends/qt/LayoutBox.cpp b/src/frontends/qt/LayoutBox.cpp
index 5b15e98..573ec27 100644
--- a/src/frontends/qt/LayoutBox.cpp
+++ b/src/frontends/qt/LayoutBox.cpp
@@ -43,7 +43,6 @@
 #include <QHeaderView>
 #include <QItemDelegate>
 #include <QPainter>
-#include <QRegExp>
 #include <QSortFilterProxyModel>
 #include <QStandardItemModel>
 #include <QTextFrame>
@@ -300,11 +299,7 @@ QString LayoutItemDelegate::underlineFilter(QString const & s) const
 	if (f.isEmpty())
 		return s;
 	QString r(s);
-#if QT_VERSION < 0x060000
-	QRegExp pattern(charFilterRegExpC(f));
-#else
 	QRegularExpression pattern(charFilterRegExpC(f));
-#endif
 	r.replace(pattern, "<u><b>\\1</b></u>");
 	return r;
 }
diff --git a/src/frontends/qt/Validator.cpp b/src/frontends/qt/Validator.cpp
index 8ad1831..9e8d8d0 100644
--- a/src/frontends/qt/Validator.cpp
+++ b/src/frontends/qt/Validator.cpp
@@ -192,11 +192,7 @@ NoNewLineValidator::NoNewLineValidator(QWidget * parent)
 
 QValidator::State NoNewLineValidator::validate(QString & qtext, int &) const
 {
-#if QT_VERSION < 0x060000
-	qtext.remove(QRegExp("[\\n\\r]"));
-#else
 	qtext.remove(QRegularExpression("[\\n\\r]"));
-#endif
 	return QValidator::Acceptable;
 }
 
diff --git a/src/support/qstring_helpers.cpp b/src/support/qstring_helpers.cpp
index fadca76..e39dc7f 100644
--- a/src/support/qstring_helpers.cpp
+++ b/src/support/qstring_helpers.cpp
@@ -18,7 +18,7 @@
 #include "support/docstring.h"
 #include "support/qstring_helpers.h"
 
-#include <QRegExp>
+#include <QRegularExpression>
 #include <QLocale>
 #include <QString>
 #include <QVector>
@@ -83,9 +83,10 @@ QString charFilterRegExp(QString const & filter)
 	QString re = ".*";
 	for (QChar const & c : filter) {
 		if (c.isLower())
-			re +=  "["+ QRegExp::escape(c) + QRegExp::escape(c.toUpper()) + "]";
+			re +=  "[" + QRegularExpression::escape(c)
+			           + QRegularExpression::escape(c.toUpper()) + "]";
 		else
-			re +=  QRegExp::escape(c);
+			re +=  QRegularExpression::escape(c);
 	}
 	return re;
 }
@@ -95,9 +96,10 @@ QString charFilterRegExpC(QString const & filter)
 	QString re = "(";
 	for (QChar const & c : filter) {
 		if (c.isLower())
-			re +=  "["+ QRegExp::escape(c) + QRegExp::escape(c.toUpper()) + "]";
+			re +=  "[" + QRegularExpression::escape(c)
+		               + QRegularExpression::escape(c.toUpper()) + "]";
 		else
-			re +=  QRegExp::escape(c);
+			re +=  QRegularExpression::escape(c);
 	}
 	return re + ")";
 }


More information about the lyx-cvs mailing list