diff options
Diffstat (limited to 'src/corelib/io/qdir.cpp')
-rw-r--r-- | src/corelib/io/qdir.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 10aee73a2f..7df461ddce 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -48,7 +48,9 @@ #include "qdiriterator.h" #include "qdatetime.h" #include "qstring.h" -#include "qregexp.h" +#if QT_CONFIG(regularexpression) +# include <qregularexpression.h> +#endif #include "qvector.h" #include "qvarlengtharray.h" #include "qfilesystementry_p.h" @@ -72,7 +74,7 @@ static QString driveSpec(const QString &path) if (path.size() < 2) return QString(); char c = path.at(0).toLatin1(); - if (c < 'a' && c > 'z' && c < 'A' && c > 'Z') + if ((c < 'a' || c > 'z') && (c < 'A' || c > 'Z')) return QString(); if (path.at(1).toLatin1() != ':') return QString(); @@ -1038,7 +1040,8 @@ QStringList QDir::nameFilters() const list of filters specified by \a nameFilters. Each name filter is a wildcard (globbing) filter that understands - \c{*} and \c{?} wildcards. (See \l{QRegExp wildcard matching}.) + \c{*} and \c{?} wildcards. See \l{QRegularExpression#Wildcard matching} + {QRegularExpression Wildcard Matching}. For example, the following code sets three name filters on a QDir to ensure that only files with extensions typically used for C++ @@ -2059,7 +2062,7 @@ QString QDir::homePath() Returns the system's temporary directory. - The directory is constructed using the absolute path of the temporary directory, + The directory is constructed using the absolute canonical path of the temporary directory, ensuring that its path() will be the same as its absolutePath(). See tempPath() for details. @@ -2068,7 +2071,7 @@ QString QDir::homePath() */ /*! - Returns the absolute path of the system's temporary directory. + Returns the absolute canonical path of the system's temporary directory. On Unix/Linux systems this is the path in the \c TMPDIR environment variable or \c{/tmp} if \c TMPDIR is not defined. On Windows this is @@ -2110,7 +2113,7 @@ QString QDir::rootPath() return QFileSystemEngine::rootPath(); } -#ifndef QT_NO_REGEXP +#if QT_CONFIG(regularexpression) /*! \overload @@ -2118,13 +2121,18 @@ QString QDir::rootPath() patterns in the list of \a filters; otherwise returns \c false. The matching is case insensitive. - \sa {QRegExp wildcard matching}, QRegExp::exactMatch(), entryList(), entryInfoList() + \sa {QRegularExpression#Wildcard matching}{QRegularExpression Wildcard Matching}, + entryList(), entryInfoList() */ bool QDir::match(const QStringList &filters, const QString &fileName) { for (QStringList::ConstIterator sit = filters.constBegin(); sit != filters.constEnd(); ++sit) { - QRegExp rx(*sit, Qt::CaseInsensitive, QRegExp::Wildcard); - if (rx.exactMatch(fileName)) + QString wildcard = QRegularExpression::wildcardToRegularExpression(*sit); + // Insensitive exact match + // (see Notes for QRegExp Users in QRegularExpression's documentation) + QRegularExpression rx(QRegularExpression::anchoredPattern(wildcard), + QRegularExpression::CaseInsensitiveOption); + if (rx.match(fileName).hasMatch()) return true; } return false; @@ -2136,13 +2144,14 @@ bool QDir::match(const QStringList &filters, const QString &fileName) contain multiple patterns separated by spaces or semicolons. The matching is case insensitive. - \sa {QRegExp wildcard matching}, QRegExp::exactMatch(), entryList(), entryInfoList() + \sa {QRegularExpression#Wildcard matching}{QRegularExpression Wildcard Matching}, + entryList(), entryInfoList() */ bool QDir::match(const QString &filter, const QString &fileName) { return match(nameFiltersFromString(filter), fileName); } -#endif // QT_NO_REGEXP +#endif // QT_CONFIG(regularexpression) /*! \internal |