diff options
-rw-r--r-- | src/quick/items/qquickitem.cpp | 4 | ||||
-rw-r--r-- | tests/auto/quick/qquickanchors/data/baselineOffset.qml | 15 | ||||
-rw-r--r-- | tests/auto/quick/qquickanchors/tst_qquickanchors.cpp | 24 |
3 files changed, 43 insertions, 0 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 201496c20f..9eae661ed1 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -3312,6 +3312,10 @@ void QQuickItem::setBaselineOffset(qreal offset) anchor->updateVerticalAnchors(); } } + + if (d->_anchors && (d->_anchors->usedAnchors() & QQuickAnchors::BaselineAnchor)) + QQuickAnchorsPrivate::get(d->_anchors)->updateVerticalAnchors(); + emit baselineOffsetChanged(offset); } diff --git a/tests/auto/quick/qquickanchors/data/baselineOffset.qml b/tests/auto/quick/qquickanchors/data/baselineOffset.qml new file mode 100644 index 0000000000..8bae61d16d --- /dev/null +++ b/tests/auto/quick/qquickanchors/data/baselineOffset.qml @@ -0,0 +1,15 @@ +import QtQuick 2.0 + +Item { + width: 200 + height: 200 + + Item { + objectName: "baselineAnchored" + + width: 200 + height: 10 + + anchors.baseline: parent.verticalCenter + } +} diff --git a/tests/auto/quick/qquickanchors/tst_qquickanchors.cpp b/tests/auto/quick/qquickanchors/tst_qquickanchors.cpp index dd1f9f77ae..7b748f6191 100644 --- a/tests/auto/quick/qquickanchors/tst_qquickanchors.cpp +++ b/tests/auto/quick/qquickanchors/tst_qquickanchors.cpp @@ -84,6 +84,7 @@ private slots: void margins(); void marginsRTL(); void stretch(); + void baselineOffset(); }; void tst_qquickanchors::basicAnchors() @@ -705,6 +706,29 @@ void tst_qquickanchors::stretch() delete view; } +void tst_qquickanchors::baselineOffset() +{ + QQmlEngine engine; + QQmlComponent component(&engine, testFileUrl("baselineOffset.qml")); + QScopedPointer<QObject> object(component.create()); + + QQuickItem *item = qobject_cast<QQuickItem *>(object.data()); + QVERIFY(item); + + QQuickItem *anchoredItem = findItem<QQuickItem>(item, QLatin1String("baselineAnchored")); + + QCOMPARE(anchoredItem->baselineOffset(), 0.0); + QCOMPARE(anchoredItem->y(), 100.0); + + anchoredItem->setBaselineOffset(5); + QCOMPARE(anchoredItem->baselineOffset(), 5.0); + QCOMPARE(anchoredItem->y(), 95.0); + + anchoredItem->setBaselineOffset(10); + QCOMPARE(anchoredItem->baselineOffset(), 10.0); + QCOMPARE(anchoredItem->y(), 90.0); +} + QTEST_MAIN(tst_qquickanchors) #include "tst_qquickanchors.moc" |