summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/widgets/kernel/qlayout.h2
-rw-r--r--tests/auto/widgets/kernel/qlayout/tst_qlayout.cpp17
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