diff options
-rw-r--r-- | src/widgets/kernel/qlayout.h | 2 | ||||
-rw-r--r-- | tests/auto/widgets/kernel/qlayout/tst_qlayout.cpp | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/widgets/kernel/qlayout.h b/src/widgets/kernel/qlayout.h index 4686a999a5..5fd2aa2d63 100644 --- a/src/widgets/kernel/qlayout.h +++ b/src/widgets/kernel/qlayout.h @@ -64,7 +64,7 @@ class Q_WIDGETS_EXPORT QLayout : public QObject, public QLayoutItem Q_DECLARE_PRIVATE(QLayout) Q_PROPERTY(int spacing READ spacing WRITE setSpacing) - Q_PROPERTY(QMargins contentsMargins READ contentsMargins WRITE setContentsMargins) + Q_PROPERTY(QMargins contentsMargins READ contentsMargins WRITE setContentsMargins RESET unsetContentsMargins) Q_PROPERTY(SizeConstraint sizeConstraint READ sizeConstraint WRITE setSizeConstraint) public: enum SizeConstraint { diff --git a/tests/auto/widgets/kernel/qlayout/tst_qlayout.cpp b/tests/auto/widgets/kernel/qlayout/tst_qlayout.cpp index 2a497df084..01b7c8ef9c 100644 --- a/tests/auto/widgets/kernel/qlayout/tst_qlayout.cpp +++ b/tests/auto/widgets/kernel/qlayout/tst_qlayout.cpp @@ -30,6 +30,7 @@ #include <QTest> #include <qcoreapplication.h> +#include <qmetaobject.h> #include <qdebug.h> #include <qboxlayout.h> #include <qmenubar.h> @@ -248,6 +249,22 @@ void tst_QLayout::setContentsMargins() layout.setContentsMargins(52, 53, 54, 55); QVERIFY(!layout.invalidated); + + MyLayout otherLayout; // with default contents margins + QVERIFY(layout.contentsMargins() != otherLayout.contentsMargins()); + layout.unsetContentsMargins(); + QCOMPARE(layout.contentsMargins(), otherLayout.contentsMargins()); + + layout.setContentsMargins(10, 20, 30, 40); + QVERIFY(layout.contentsMargins() != otherLayout.contentsMargins()); + + int contentsMarginsPropertyIndex = QLayout::staticMetaObject.indexOfProperty("contentsMargins"); + QVERIFY(contentsMarginsPropertyIndex >= 0); + QMetaProperty contentsMarginsProperty = QLayout::staticMetaObject.property(contentsMarginsPropertyIndex); + QVERIFY(contentsMarginsProperty.isValid()); + QVERIFY(contentsMarginsProperty.isResettable()); + QVERIFY(contentsMarginsProperty.reset(&layout)); + QCOMPARE(layout.contentsMargins(), otherLayout.contentsMargins()); } class EventReceiver : public QObject |