diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-05-27 10:51:48 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-05-27 12:23:21 +0000 |
commit | bbf596890f5c351241cda4cd2a9dc050ceda3e51 (patch) | |
tree | 333a9ce1fa58275e9d41c11b3875e90d53900012 | |
parent | 5c08fed2641ecd1071db2e3320a40f37ffa0b110 (diff) |
Expose QFileSelectorPrivate::selectionHelper()
Let QQuickStyleSelector in Qt Quick Controls 2 re-use the same
selection helper implementation.
Change-Id: I34cbba0aa178e342bb4004313e7ff56811e6be19
Reviewed-by: Liang Qi <liang.qi@qt.io>
-rw-r--r-- | src/corelib/io/qfileselector.cpp | 11 | ||||
-rw-r--r-- | src/corelib/io/qfileselector_p.h | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/corelib/io/qfileselector.cpp b/src/corelib/io/qfileselector.cpp index 7026d3403b..f0db3d1ae3 100644 --- a/src/corelib/io/qfileselector.cpp +++ b/src/corelib/io/qfileselector.cpp @@ -55,8 +55,6 @@ QT_BEGIN_NAMESPACE //Environment variable to allow tooling full control of file selectors static const char env_override[] = "QT_NO_BUILTIN_SELECTORS"; -static const ushort selectorIndicator = '+'; - Q_GLOBAL_STATIC(QFileSelectorSharedData, sharedData); static QBasicMutex sharedDataMutex; @@ -267,7 +265,7 @@ QUrl QFileSelector::select(const QUrl &filePath) const return ret; } -static QString selectionHelper(const QString &path, const QString &fileName, const QStringList &selectors) +QString QFileSelectorPrivate::selectionHelper(const QString &path, const QString &fileName, const QStringList &selectors, const QChar &indicator) { /* selectionHelper does a depth-first search of possible selected files. Because there is strict selector ordering in the API, we can stop checking as soon as we find the file in a directory @@ -276,12 +274,15 @@ static QString selectionHelper(const QString &path, const QString &fileName, con Q_ASSERT(path.isEmpty() || path.endsWith(QLatin1Char('/'))); for (const QString &s : selectors) { - QString prospectiveBase = path + QLatin1Char(selectorIndicator) + s + QLatin1Char('/'); + QString prospectiveBase = path; + if (!indicator.isNull()) + prospectiveBase += indicator; + prospectiveBase += s + QLatin1Char('/'); QStringList remainingSelectors = selectors; remainingSelectors.removeAll(s); if (!QDir(prospectiveBase).exists()) continue; - QString prospectiveFile = selectionHelper(prospectiveBase, fileName, remainingSelectors); + QString prospectiveFile = selectionHelper(prospectiveBase, fileName, remainingSelectors, indicator); if (!prospectiveFile.isEmpty()) return prospectiveFile; } diff --git a/src/corelib/io/qfileselector_p.h b/src/corelib/io/qfileselector_p.h index f93eb0ccb3..024d0b190d 100644 --- a/src/corelib/io/qfileselector_p.h +++ b/src/corelib/io/qfileselector_p.h @@ -70,6 +70,8 @@ public: static void updateSelectors(); static QStringList platformSelectors(); static void addStatics(const QStringList &); //For loading GUI statics from other Qt modules + static QString selectionHelper(const QString &path, const QString &fileName, + const QStringList &selectors, const QChar &indicator = QLatin1Char('+')); QFileSelectorPrivate(); QString select(const QString &filePath) const; |