summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/layouts/qquickgridlayoutengine_p.h5
-rw-r--r--tests/auto/controls/data/tst_rowlayout.qml31
2 files changed, 34 insertions, 2 deletions
diff --git a/src/layouts/qquickgridlayoutengine_p.h b/src/layouts/qquickgridlayoutengine_p.h
index 67b0257b..29317ffb 100644
--- a/src/layouts/qquickgridlayoutengine_p.h
+++ b/src/layouts/qquickgridlayoutengine_p.h
@@ -111,8 +111,9 @@ public:
void setGeometry(const QRectF &rect)
{
- m_item->setPosition(rect.topLeft());
- m_item->setSize(rect.size());
+ const QRect r(rect.toRect());
+ m_item->setPosition(r.topLeft());
+ m_item->setSize(r.size());
}
QQuickItem *layoutItem() const { return m_item; }
diff --git a/tests/auto/controls/data/tst_rowlayout.qml b/tests/auto/controls/data/tst_rowlayout.qml
index 1b9573e0..505b3517 100644
--- a/tests/auto/controls/data/tst_rowlayout.qml
+++ b/tests/auto/controls/data/tst_rowlayout.qml
@@ -543,5 +543,36 @@ Item {
layout.destroy();
}
+
+
+ Component {
+ id: layout_alignToPixelGrid_Component
+ RowLayout {
+ spacing: 2
+ Rectangle {
+ implicitWidth: 10
+ implicitHeight: 10
+ Layout.alignment: Qt.AlignVCenter
+ }
+ Rectangle {
+ implicitWidth: 10
+ implicitHeight: 10
+ Layout.alignment: Qt.AlignVCenter
+ }
+ }
+ }
+ function test_alignToPixelGrid()
+ {
+ var layout = layout_alignToPixelGrid_Component.createObject(container)
+ layout.width = 21
+ layout.height = 21
+ var r0 = layout.children[0]
+ compare(r0.x, 0) // 0.0
+ compare(r0.y, 6) // 5.5
+ var r1 = layout.children[1]
+ compare(r1.x, 12) // 11.5
+ compare(r1.y, 6) // 5.5
+ layout.destroy();
+ }
}
}