diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2018-06-27 16:16:19 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-07-10 04:33:05 +0000 |
commit | 1771d298f33543a3fe47decfe0fff10609b01ab1 (patch) | |
tree | 2f19e74f00c458a7a31afa6fe9ce21abba20f61a /tests | |
parent | ffbf089addcaab3e132f5dbb0685c1a46bd6d1ab (diff) |
Teach Rectangle's gradient property to accept QGradient::Preset
Change-Id: Id640b596c1d8d52221f2f2be8807d6e245971bdc
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tests')
4 files changed, 48 insertions, 8 deletions
diff --git a/tests/auto/quick/qquickdesignersupport/data/test.qml b/tests/auto/quick/qquickdesignersupport/data/test.qml index 1d43cb3b7e..6c89f15257 100644 --- a/tests/auto/quick/qquickdesignersupport/data/test.qml +++ b/tests/auto/quick/qquickdesignersupport/data/test.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick 2.11 Rectangle { objectName: "rootItem" @@ -13,7 +13,7 @@ Rectangle { Rectangle { objectName: "rectangleItem" - gradient: Gradient { + containmentMask: Item { } } diff --git a/tests/auto/quick/qquickdesignersupport/tst_qquickdesignersupport.cpp b/tests/auto/quick/qquickdesignersupport/tst_qquickdesignersupport.cpp index 96a11e16e9..3e0765552a 100644 --- a/tests/auto/quick/qquickdesignersupport/tst_qquickdesignersupport.cpp +++ b/tests/auto/quick/qquickdesignersupport/tst_qquickdesignersupport.cpp @@ -209,15 +209,15 @@ void tst_qquickdesignersupport::objectProperties() //Read gradient property as QObject - int propertyIndex = rectangleItem->metaObject()->indexOfProperty("gradient"); + int propertyIndex = rectangleItem->metaObject()->indexOfProperty("containmentMask"); QVERIFY(propertyIndex > 0); QMetaProperty metaProperty = rectangleItem->metaObject()->property(propertyIndex); QVERIFY(metaProperty.isValid()); QVERIFY(QQuickDesignerSupportProperties::isPropertyQObject(metaProperty)); - QObject*gradient = QQuickDesignerSupportProperties::readQObjectProperty(metaProperty, rectangleItem); - QVERIFY(gradient); + QObject *containmentItem = QQuickDesignerSupportProperties::readQObjectProperty(metaProperty, rectangleItem); + QVERIFY(containmentItem); //The width property is not a QObject @@ -450,7 +450,7 @@ void tst_qquickdesignersupport::testNotifyPropertyChangeCallBack() QQuickDesignerSupportMetaInfo::registerNotifyPropertyChangeCallBack(notifyPropertyChangeCallBackPointer); - rectangle->setProperty("gradient", QVariant::fromValue<QQuickGradient *>(gradient)); + rectangle->setProperty("gradient", QVariant::fromValue<QJSValue>(view->engine()->newQObject(gradient))); QVERIFY(s_object); QCOMPARE(s_object, rootItem); diff --git a/tests/auto/quick/qquickrectangle/data/gradient-preset.qml b/tests/auto/quick/qquickrectangle/data/gradient-preset.qml new file mode 100644 index 0000000000..b740bdd610 --- /dev/null +++ b/tests/auto/quick/qquickrectangle/data/gradient-preset.qml @@ -0,0 +1,16 @@ +import QtQuick 2.0 + +Item { + Rectangle { + objectName: "enum" + gradient: Gradient.NightFade + } + Rectangle { + objectName: "string" + gradient: "NightFade" + } + Rectangle { + objectName: "invalid" + gradient: -1 + } +} diff --git a/tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp b/tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp index 2aaad867bf..f6ca999cf5 100644 --- a/tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp +++ b/tests/auto/quick/qquickrectangle/tst_qquickrectangle.cpp @@ -49,6 +49,7 @@ private slots: void gradient_border(); void gradient_separate(); void gradient_multiple(); + void gradient_preset(); void antialiasing(); private: @@ -84,7 +85,7 @@ void tst_qquickrectangle::gradient() QQuickRectangle *rect = qobject_cast<QQuickRectangle*>(component.create()); QVERIFY(rect); - QQuickGradient *grad = rect->gradient(); + QQuickGradient *grad = qobject_cast<QQuickGradient *>(rect->gradient().toQObject()); QVERIFY(grad); QQmlListProperty<QQuickGradientStop> stops = grad->stops(); @@ -103,7 +104,7 @@ void tst_qquickrectangle::gradient() QMetaObject::invokeMethod(rect, "resetGradient"); - grad = rect->gradient(); + grad = qobject_cast<QQuickGradient *>(rect->gradient().toQObject()); QVERIFY(!grad); delete rect; @@ -174,6 +175,29 @@ void tst_qquickrectangle::gradient_multiple() QVERIFY(secondIsDirty); } +void tst_qquickrectangle::gradient_preset() +{ + QQuickView view; + view.setSource(testFileUrl("gradient-preset.qml")); + view.show(); + + QVERIFY(QTest::qWaitForWindowExposed(&view)); + + QQuickRectangle *enumRect = view.rootObject()->findChild<QQuickRectangle *>("enum"); + QVERIFY(enumRect); + QVERIFY(enumRect->gradient().isNumber()); + QCOMPARE(enumRect->gradient().toUInt(), QGradient::NightFade); + + QQuickRectangle *stringRect = view.rootObject()->findChild<QQuickRectangle *>("string"); + QVERIFY(stringRect); + QVERIFY(stringRect->gradient().isString()); + QCOMPARE(stringRect->gradient().toString(), QLatin1String("NightFade")); + + QQuickRectangle *invalidRect = view.rootObject()->findChild<QQuickRectangle *>("invalid"); + QVERIFY(invalidRect); + QVERIFY(invalidRect->gradient().isUndefined()); +} + void tst_qquickrectangle::antialiasing() { QQmlComponent component(&engine); |