From 5be4f95d952135d185f2a5c52b0472f17c0adf48 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 12 Feb 2016 13:05:28 +0100 Subject: Fix QFileSelectorPrivate::addStatics() It must clear the previously cached sharedData->staticSelectors, or else QFileSelectorPrivate::updateSelectors() does nothing and the newly added static selectors end up being ignored. Change-Id: If6997664629199be9f00de64c5dd01de2bf0a044 Reviewed-by: Mitch Curtis --- src/corelib/io/qfileselector.cpp | 1 + tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/corelib/io/qfileselector.cpp b/src/corelib/io/qfileselector.cpp index 7a9a4b581c..4ac12fc9ea 100644 --- a/src/corelib/io/qfileselector.cpp +++ b/src/corelib/io/qfileselector.cpp @@ -396,6 +396,7 @@ void QFileSelectorPrivate::addStatics(const QStringList &statics) { QMutexLocker locker(&sharedDataMutex); sharedData->preloadedStatics << statics; + sharedData->staticSelectors.clear(); } QT_END_NAMESPACE diff --git a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp index 4c5ca1a7bb..e5ede1ad06 100644 --- a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp +++ b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp @@ -55,6 +55,8 @@ private slots: void urlConvenience_data(); void urlConvenience(); + + void addStatics(); }; void tst_QFileSelector::basicTest_data() @@ -224,5 +226,14 @@ void tst_QFileSelector::urlConvenience() QCOMPARE(fs.select(testUrl), expectedUrl); } +void tst_QFileSelector::addStatics() +{ + QFileSelector fs; + QCOMPARE(fs.select(QStringLiteral(":/extras/test")), QStringLiteral(":/extras/test")); + + QFileSelectorPrivate::addStatics(QStringList() << QStringLiteral("custom1")); + QCOMPARE(fs.select(QStringLiteral(":/extras/test")), QStringLiteral(":/extras/+custom1/test")); +} + QTEST_MAIN(tst_QFileSelector) #include "tst_qfileselector.moc" -- cgit v1.2.3