diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-25 17:05:57 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-26 07:34:19 +0000 |
commit | 86f546dc658106eab9ef489b5473a5407ff8c3c0 (patch) | |
tree | ed473cb9f016d9716b3bc38a93d30787d33d3351 /tests/auto/qquickiconimage/tst_qquickiconimage.cpp | |
parent | 8b9f4364ba05c51ba4a0d8edcd53ea411824a590 (diff) |
QQuickIconImage: fix file selectors for named theme icons
QQuickIconImage needs to be associated with a QML context to be able
to call QQmlContext::resolvedUrl(), which in turn passes it to the URL
interceptor aka. QQmlFileSelector.
Change-Id: Iff34fb8316c765ac0ff04d5d7a6ab23002b31385
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests/auto/qquickiconimage/tst_qquickiconimage.cpp')
-rw-r--r-- | tests/auto/qquickiconimage/tst_qquickiconimage.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/qquickiconimage/tst_qquickiconimage.cpp b/tests/auto/qquickiconimage/tst_qquickiconimage.cpp index 86bd2f2c..4e4afb13 100644 --- a/tests/auto/qquickiconimage/tst_qquickiconimage.cpp +++ b/tests/auto/qquickiconimage/tst_qquickiconimage.cpp @@ -32,6 +32,7 @@ #include <QtCore/qmath.h> #include <QtQml/qqmlengine.h> #include <QtQml/qqmlcomponent.h> +#include <QtQml/qqmlfileselector.h> #include <QtQuick/qquickitem.h> #include <QtQuick/qquickview.h> #include <QtQuick/qquickitemgrabresult.h> @@ -65,6 +66,7 @@ private slots: void svgNoSizes(); void svgSourceBindingSourceSize(); void color(); + void fileSelectors(); private: void setTheme(); @@ -452,6 +454,32 @@ void tst_qquickiconimage::changeSourceSize() iconImage->setSourceSize(sourceSize); } + +void tst_qquickiconimage::fileSelectors() +{ + SKIP_IF_DPR_TOO_HIGH(); + + QQuickView view; + QQmlFileSelector* fileSelector = new QQmlFileSelector(view.engine()); + fileSelector->setExtraSelectors(QStringList() << "testselector"); + view.setSource(testFileUrl("fileSelectors.qml")); + QCOMPARE(view.status(), QQuickView::Ready); + view.show(); + view.requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(&view)); + + QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); + QVERIFY(iconImage); + + QQuickItem *image = view.rootObject()->childItems().at(1); + QVERIFY(image); + + QImage iconImageWindowGrab = grabItemToImage(iconImage); + QCOMPARE(iconImageWindowGrab, grabItemToImage(image)); + + QCOMPARE(iconImageWindowGrab.pixelColor(iconImageWindowGrab.width() / 2, iconImageWindowGrab.height() / 2), QColor(Qt::blue)); +} + int main(int argc, char *argv[]) { QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); |