aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qquickiconimage/tst_qquickiconimage.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-25 17:05:57 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-04-26 07:34:19 +0000
commit86f546dc658106eab9ef489b5473a5407ff8c3c0 (patch)
treeed473cb9f016d9716b3bc38a93d30787d33d3351 /tests/auto/qquickiconimage/tst_qquickiconimage.cpp
parent8b9f4364ba05c51ba4a0d8edcd53ea411824a590 (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.cpp28
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);