aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-03-26 12:04:00 +1000
committerQt by Nokia <qt-info@nokia.com>2012-03-26 04:42:15 +0200
commit6cdfad980d760ef87b8f425cf1affda16fa76a62 (patch)
tree0a8308a6a4192b3657294e6003e28435729818bc
parentd120c3c383d7db7a7c7f1602ba27f04cebb8abfa (diff)
Update item anchors when the baseline offset changes.
Task-number: QTBUG-24303 Change-Id: I75fb8eb8afb48a3f40fa159d914ac12ab6bc9ffe Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
-rw-r--r--src/quick/items/qquickitem.cpp4
-rw-r--r--tests/auto/quick/qquickanchors/data/baselineOffset.qml15
-rw-r--r--tests/auto/quick/qquickanchors/tst_qquickanchors.cpp24
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"