diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-05-18 18:12:22 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-05-20 07:00:19 +0000 |
commit | ea043d5d838f638e4bc5461aa23fb69a1a9e1eb6 (patch) | |
tree | 7acc76c536361009c3c36336cbd96ad2bcb075d4 /src/quickcontrols2/qquickstyleselector.cpp | |
parent | 2b20122b223f7619c7a1ba7b4a4a65194bd2a270 (diff) |
QQuickStyleSelector: fix built-in file selectors
While selecting style files, the standard built-in platform and local
file selectors ("+linux", "+macos", "+windows"...) must be prefixed
with the standard file selector indicator ("+"). Previously the style
selector would not pick up platform-specific style files unless they
were supplied without the prefix.
[ChangeLog][Controls][Styles] Fixed the style selection mechanism so
that now it is possible to organize platform and locale-specific files
into sub-directories, such as "+linux", "+macos", and "+windows".
Change-Id: Ia44b6f14fd0247943486fd27609147827bda9666
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/quickcontrols2/qquickstyleselector.cpp')
-rw-r--r-- | src/quickcontrols2/qquickstyleselector.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/quickcontrols2/qquickstyleselector.cpp b/src/quickcontrols2/qquickstyleselector.cpp index 6d04c190..0e403dc1 100644 --- a/src/quickcontrols2/qquickstyleselector.cpp +++ b/src/quickcontrols2/qquickstyleselector.cpp @@ -65,13 +65,21 @@ static QString ensureSlash(const QString &path) return path + QLatin1Char('/'); } +static QStringList prefixedPlatformSelectors(const QChar &prefix) +{ + QStringList selectors = QFileSelectorPrivate::platformSelectors(); + for (int i = 0; i < selectors.count(); ++i) + selectors[i].prepend(prefix); + return selectors; +} + static QStringList allSelectors(const QString &style = QString()) { - static const QStringList platformSelectors = QFileSelectorPrivate::platformSelectors(); + static const QStringList platformSelectors = prefixedPlatformSelectors(QLatin1Char('+')); QStringList selectors = platformSelectors; const QString locale = QLocale().name(); if (!locale.isEmpty()) - selectors += locale; + selectors += QLatin1Char('+') + locale; if (!style.isEmpty()) selectors.prepend(style); return selectors; |