summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-03-25 12:48:49 +0100
committerLars Knoll <lars.knoll@qt.io>2020-03-30 11:33:11 +0100
commitadc1be3c33b4237a13e423c140bcb1c06aeb11d9 (patch)
treee2c5c1547a22bd99afe93478ec413d2dbdd38ed5
parent3532c0256d4a64f8493f9773f25b6ce7f12b2230 (diff)
Get rid of QRegExp usage in qfiledialog
and replace with QRegularExpression Change-Id: Ic692fc0ea24da84dd4b6bb4c8a846c0fcc62c3cb Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
-rw-r--r--src/widgets/dialogs/qfiledialog.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp
index ef6178c421..4d15d8ce85 100644
--- a/src/widgets/dialogs/qfiledialog.cpp
+++ b/src/widgets/dialogs/qfiledialog.cpp
@@ -68,6 +68,9 @@
#if QT_CONFIG(mimetype)
#include <qmimedatabase.h>
#endif
+#if QT_CONFIG(regularexpression)
+#include <qregularexpression.h>
+#endif
#include <qapplication.h>
#include <qstylepainter.h>
#include "ui_qfiledialog.h"
@@ -1413,18 +1416,22 @@ bool QFileDialog::isNameFilterDetailsVisible() const
*/
QStringList qt_strip_filters(const QStringList &filters)
{
+#if QT_CONFIG(regularexpression)
QStringList strippedFilters;
- QRegExp r(QString::fromLatin1(QPlatformFileDialogHelper::filterRegExp));
+ QRegularExpression r(QString::fromLatin1(QPlatformFileDialogHelper::filterRegExp));
const int numFilters = filters.count();
strippedFilters.reserve(numFilters);
for (int i = 0; i < numFilters; ++i) {
QString filterName;
- int index = r.indexIn(filters[i]);
- if (index >= 0)
- filterName = r.cap(1);
+ auto match = r.match(filters[i]);
+ if (match.hasMatch())
+ filterName = match.captured(1);
strippedFilters.append(filterName.simplified());
}
return strippedFilters;
+#else
+ return filters;
+#endif
}
@@ -4369,16 +4376,14 @@ QStringList QFSCompleter::splitPath(const QString &path) const
}
#endif
- QRegExp re(QLatin1Char('[') + QRegExp::escape(sep) + QLatin1Char(']'));
-
#if defined(Q_OS_WIN)
- QStringList parts = pathCopy.split(re, Qt::SkipEmptyParts);
+ QStringList parts = pathCopy.split(sep, Qt::SkipEmptyParts);
if (!doubleSlash.isEmpty() && !parts.isEmpty())
parts[0].prepend(doubleSlash);
if (pathCopy.endsWith(sep))
parts.append(QString());
#else
- QStringList parts = pathCopy.split(re);
+ QStringList parts = pathCopy.split(sep);
if (pathCopy[0] == sep[0]) // read the "/" at the beginning as the split removed it
parts[0] = sep[0];
#endif