From 03838decb9c104b8b8327ac90510472c830e0e91 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 23 Jun 2020 13:00:43 +0200 Subject: [PATCH] More QRegularExpression and include for Qt 6 Task-number: QTCREATORBUG-24098 Change-Id: Ia537e26efd3f37319c38d906e569b255768371f9 Reviewed-by: Eike Ziller --- .../artisticstyle/artisticstylesettings.cpp | 4 +-- src/plugins/git/commitdata.h | 4 +++ src/plugins/help/searchwidget.cpp | 4 +-- .../incredibuild/cmakecommandbuilder.cpp | 4 +-- .../incredibuild/makecommandbuilder.cpp | 9 ++++--- src/plugins/python/pythonproject.cpp | 11 ++++---- src/plugins/python/pythonrunconfiguration.cpp | 4 +-- .../qmakeprojectmanager/addlibrarywizard.cpp | 27 ++++++++++--------- 8 files changed, 38 insertions(+), 29 deletions(-) diff --git a/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp b/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp index 9a784610175..8a192288bde 100644 --- a/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp +++ b/src/plugins/beautifier/artisticstyle/artisticstylesettings.cpp @@ -74,8 +74,8 @@ static int parseVersion(const QString &text) const QRegularExpression rx("([2-9]{1})\\.([0-9]{2})(\\.[1-9]{1})?$"); const QRegularExpressionMatch match = rx.match(text); if (match.hasMatch()) { - const int major = match.capturedRef(1).toInt() * 100; - const int minor = match.capturedRef(2).toInt(); + const int major = match.captured(1).toInt() * 100; + const int minor = match.captured(2).toInt(); return major + minor; } return 0; diff --git a/src/plugins/git/commitdata.h b/src/plugins/git/commitdata.h index d044285de52..28c1029d95b 100644 --- a/src/plugins/git/commitdata.h +++ b/src/plugins/git/commitdata.h @@ -31,6 +31,10 @@ #include #include +QT_BEGIN_NAMESPACE +class QTextCodec; +QT_END_NAMESPACE + namespace Git { namespace Internal { diff --git a/src/plugins/help/searchwidget.cpp b/src/plugins/help/searchwidget.cpp index ea76d980daa..747a8a8fadb 100644 --- a/src/plugins/help/searchwidget.cpp +++ b/src/plugins/help/searchwidget.cpp @@ -49,7 +49,7 @@ #include #include #include -#include +#include #include #include #include @@ -263,7 +263,7 @@ void SearchWidget::contextMenuEvent(QContextMenuEvent *contextMenuEvent) QStringList SearchWidget::currentSearchTerms() const { - return searchEngine->searchInput().split(QRegExp("\\W+"), Utils::SkipEmptyParts); + return searchEngine->searchInput().split(QRegularExpression("\\W+"), Utils::SkipEmptyParts); } // #pragma mark -- SearchSideBarItem diff --git a/src/plugins/incredibuild/cmakecommandbuilder.cpp b/src/plugins/incredibuild/cmakecommandbuilder.cpp index 91d8a2901cd..e32dae75ec8 100644 --- a/src/plugins/incredibuild/cmakecommandbuilder.cpp +++ b/src/plugins/incredibuild/cmakecommandbuilder.cpp @@ -36,7 +36,7 @@ #include #include -#include +#include #include using namespace ProjectExplorer; @@ -96,7 +96,7 @@ QStringList CMakeCommandBuilder::defaultArguments() QString CMakeCommandBuilder::setMultiProcessArg(QString args) { - QRegExp regExp("\\s*\\-j\\s+\\d+"); + QRegularExpression regExp("\\s*\\-j\\s+\\d+"); args.remove(regExp); args.append(" -- -j 200"); diff --git a/src/plugins/incredibuild/makecommandbuilder.cpp b/src/plugins/incredibuild/makecommandbuilder.cpp index 4dff702c551..a2197222cc8 100644 --- a/src/plugins/incredibuild/makecommandbuilder.cpp +++ b/src/plugins/incredibuild/makecommandbuilder.cpp @@ -36,7 +36,7 @@ #include #include -#include +#include using namespace ProjectExplorer; @@ -84,13 +84,14 @@ QString MakeCommandBuilder::setMultiProcessArg(QString args) // jom -j 200 if (fileInfo.baseName().compare("jom", Qt::CaseSensitivity::CaseInsensitive) == 0) { - QRegExp regExp("\\s*\\-j\\s+\\d+"); + QRegularExpression regExp("\\s*\\-j\\s+\\d+"); args.remove(regExp); args.append(" -j 200"); } // make -j200 - else if ((fileInfo.baseName().compare("make", Qt::CaseSensitivity::CaseInsensitive) == 0) || (fileInfo.baseName().compare("gmake", Qt::CaseSensitivity::CaseInsensitive) == 0)) { - QRegExp regExp("\\s*\\-j\\d+"); + else if ((fileInfo.baseName().compare("make", Qt::CaseSensitivity::CaseInsensitive) == 0) + || (fileInfo.baseName().compare("gmake", Qt::CaseSensitivity::CaseInsensitive) == 0)) { + QRegularExpression regExp("\\s*\\-j\\d+"); args.remove(regExp); args.append(" -j200"); } diff --git a/src/plugins/python/pythonproject.cpp b/src/plugins/python/pythonproject.cpp index 3c3b225de96..3b53292d8c9 100644 --- a/src/plugins/python/pythonproject.cpp +++ b/src/plugins/python/pythonproject.cpp @@ -377,16 +377,17 @@ void PythonBuildSystem::parse() */ static void expandEnvironmentVariables(const QProcessEnvironment &env, QString &string) { - static QRegExp candidate(QLatin1String("\\$\\$\\((.+)\\)")); + const QRegularExpression candidate("\\$\\$\\((.+)\\)"); - int index = candidate.indexIn(string); + QRegularExpressionMatch match; + int index = string.indexOf(candidate, 0, &match); while (index != -1) { - const QString value = env.value(candidate.cap(1)); + const QString value = env.value(match.captured(1)); - string.replace(index, candidate.matchedLength(), value); + string.replace(index, match.capturedLength(), value); index += value.length(); - index = candidate.indexIn(string, index); + index = string.indexOf(candidate, index, &match); } } diff --git a/src/plugins/python/pythonrunconfiguration.cpp b/src/plugins/python/pythonrunconfiguration.cpp index 1b0db037b85..4a8b2dbd22e 100644 --- a/src/plugins/python/pythonrunconfiguration.cpp +++ b/src/plugins/python/pythonrunconfiguration.cpp @@ -86,7 +86,7 @@ private: if (match.hasMatch()) { const LinkSpec link(match.capturedStart(2), match.capturedLength(2), match.captured(2)); const auto fileName = FilePath::fromString(match.captured(3)); - const int lineNumber = match.capturedRef(4).toInt(); + const int lineNumber = match.captured(4).toInt(); m_tasks.append({Task::Warning, QString(), fileName, lineNumber, category}); return {Status::InProgress, {link}}; } @@ -121,7 +121,7 @@ private: if (!match.hasMatch()) return false; const QString fileName = match.captured(3); - const int lineNumber = match.capturedRef(4).toInt(); + const int lineNumber = match.captured(4).toInt(); Core::EditorManager::openEditorAt(fileName, lineNumber); return true; } diff --git a/src/plugins/qmakeprojectmanager/addlibrarywizard.cpp b/src/plugins/qmakeprojectmanager/addlibrarywizard.cpp index 20abff738b0..6ccb6970d5b 100644 --- a/src/plugins/qmakeprojectmanager/addlibrarywizard.cpp +++ b/src/plugins/qmakeprojectmanager/addlibrarywizard.cpp @@ -44,14 +44,13 @@ using namespace QmakeProjectManager::Internal; const char qt_file_dialog_filter_reg_exp[] = "^(.*)\\(([a-zA-Z0-9_.*? +;#\\-\\[\\]@\\{\\}/!<>\\$%&=^~:\\|]*)\\)$"; -// taken from qfiledialog.cpp -QStringList qt_clean_filter_list(const QString &filter) +static QStringList qt_clean_filter_list(const QString &filter) { - QRegExp regexp(QString::fromLatin1(qt_file_dialog_filter_reg_exp)); + const QRegularExpression regexp(qt_file_dialog_filter_reg_exp); + const QRegularExpressionMatch match = regexp.match(filter); QString f = filter; - int i = regexp.indexIn(f); - if (i >= 0) - f = regexp.cap(2); + if (match.hasMatch()) + f = match.captured(2); return f.split(QLatin1Char(' '), Utils::SkipEmptyParts); } @@ -65,12 +64,16 @@ static bool validateLibraryPath(const Utils::FilePath &filePath, const QString fileName = filePath.fileName(); - QStringList filters = qt_clean_filter_list(pathChooser->promptDialogFilter()); - for (int i = 0; i < filters.count(); i++) { - QRegExp regExp(filters.at(i)); - regExp.setCaseSensitivity(Utils::HostOsInfo::fileNameCaseSensitivity()); - regExp.setPatternSyntax(QRegExp::Wildcard); - if (regExp.exactMatch(fileName)) + QRegularExpression::PatternOption option = + Utils::HostOsInfo::fileNameCaseSensitivity() == Qt::CaseInsensitive + ? QRegularExpression::CaseInsensitiveOption + : QRegularExpression::NoPatternOption; + + const QStringList filters = qt_clean_filter_list(pathChooser->promptDialogFilter()); + for (const QString &filter : filters) { + QString pattern = QRegularExpression::wildcardToRegularExpression(filter); + QRegularExpression regExp(pattern, option); + if (regExp.match(fileName).hasMatch()) return true; } return false;