diff options
-rw-r--r-- | src/qml/qml/qqmlengine.cpp | 4 | ||||
-rw-r--r-- | tests/auto/quick/qquickimageprovider/tst_qquickimageprovider.cpp | 28 |
2 files changed, 30 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 64662138e1..b36f35f3eb 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -1065,7 +1065,7 @@ QQmlImageProviderBase *QQmlEngine::imageProvider(const QString &providerId) cons { Q_D(const QQmlEngine); QMutexLocker locker(&d->mutex); - return d->imageProviders.value(providerId).data(); + return d->imageProviders.value(providerId.toLower()).data(); } /*! @@ -1077,7 +1077,7 @@ void QQmlEngine::removeImageProvider(const QString &providerId) { Q_D(QQmlEngine); QMutexLocker locker(&d->mutex); - d->imageProviders.take(providerId); + d->imageProviders.take(providerId.toLower()); } /*! diff --git a/tests/auto/quick/qquickimageprovider/tst_qquickimageprovider.cpp b/tests/auto/quick/qquickimageprovider/tst_qquickimageprovider.cpp index a790c7b9de..3eea3c955c 100644 --- a/tests/auto/quick/qquickimageprovider/tst_qquickimageprovider.cpp +++ b/tests/auto/quick/qquickimageprovider/tst_qquickimageprovider.cpp @@ -71,6 +71,9 @@ private slots: void removeProvider_data(); void removeProvider(); + void imageProviderId_data(); + void imageProviderId(); + void threadTest(); private: @@ -372,6 +375,31 @@ void tst_qquickimageprovider::removeProvider() delete obj; } +void tst_qquickimageprovider::imageProviderId_data() +{ + QTest::addColumn<QString>("providerId"); + + QTest::newRow("lowercase") << QStringLiteral("imageprovider"); + QTest::newRow("CamelCase") << QStringLiteral("ImageProvider"); + QTest::newRow("UPPERCASE") << QStringLiteral("IMAGEPROVIDER"); +} + +void tst_qquickimageprovider::imageProviderId() +{ + QFETCH(QString, providerId); + + QQmlEngine engine; + + bool deleteWatch = false; + TestQImageProvider *provider = new TestQImageProvider(&deleteWatch); + + engine.addImageProvider(providerId, provider); + QVERIFY(engine.imageProvider(providerId) != 0); + + engine.removeImageProvider(providerId); + QVERIFY(deleteWatch); +} + class TestThreadProvider : public QQuickImageProvider { public: |