QLayout: mark unsetContentsMargins as the RESET function

contentsMargins is a Q_PROPERTY on a QLayout. Qt 6.1 introduced
QLayout::unsetContentsMargins() to reset the contents margins to the
"default" ones (that the user can't know); that's the textbook
description of a RESET function for the property.

Add some tests also for unsetContentsMargins.

[ChangeLog][QtWidgets][QLayout] The unsetContentsMargins() function now
acts as the RESET function for the contentsMargins property.

Change-Id: I463d88363c11f4a15ad3d6af71401d8698de1d41
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Giuseppe D'Angelo 2021-04-21 15:25:49 +02:00
parent 1a65a4faf5
commit 284d4e7125
2 changed files with 18 additions and 1 deletions

View File

@ -64,7 +64,7 @@ class Q_WIDGETS_EXPORT QLayout : public QObject, public QLayoutItem
Q_DECLARE_PRIVATE(QLayout) Q_DECLARE_PRIVATE(QLayout)
Q_PROPERTY(int spacing READ spacing WRITE setSpacing) 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) Q_PROPERTY(SizeConstraint sizeConstraint READ sizeConstraint WRITE setSizeConstraint)
public: public:
enum SizeConstraint { enum SizeConstraint {

View File

@ -30,6 +30,7 @@
#include <QTest> #include <QTest>
#include <qcoreapplication.h> #include <qcoreapplication.h>
#include <qmetaobject.h>
#include <qdebug.h> #include <qdebug.h>
#include <qboxlayout.h> #include <qboxlayout.h>
#include <qmenubar.h> #include <qmenubar.h>
@ -248,6 +249,22 @@ void tst_QLayout::setContentsMargins()
layout.setContentsMargins(52, 53, 54, 55); layout.setContentsMargins(52, 53, 54, 55);
QVERIFY(!layout.invalidated); 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 class EventReceiver : public QObject