diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-06-21 19:16:11 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-06-22 11:36:52 +0000 |
commit | 697658ab9a6f68cd76a5cd2bb8185b2a6ab06844 (patch) | |
tree | f7e3369bef29ef684123da99a4867ae5cc1b295c | |
parent | 1ffede10a0b2d2f0dc64fcce4f54263d9d30e57e (diff) |
Add Popup::enabled
[ChangeLog][Controls][Popup] Added "enabled" property.
Change-Id: Icc1b2be2a0e73c392189efcd67167da4177cbe9e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 21 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopup_p.h | 5 | ||||
-rw-r--r-- | tests/auto/popup/tst_popup.cpp | 21 |
3 files changed, 47 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 9e0015fa..18579b90 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -260,6 +260,7 @@ void QQuickPopupPrivate::init() popupItem = new QQuickPopupItem(q); popupItem->setVisible(false); q->setParentItem(qobject_cast<QQuickItem *>(parent)); + QObject::connect(popupItem, &QQuickItem::enabledChanged, q, &QQuickPopup::enabledChanged); QObject::connect(popupItem, &QQuickControl::paddingChanged, q, &QQuickPopup::paddingChanged); positioner = new QQuickPopupPositioner(q); } @@ -1736,6 +1737,26 @@ void QQuickPopup::setVisible(bool visible) /*! \since QtQuick.Controls 2.3 (Qt 5.10) + \qmlproperty bool QtQuick.Controls::Popup::enabled + + This property holds whether the popup is enabled. The default value is \c true. + + \sa visible, Item::enabled +*/ +bool QQuickPopup::isEnabled() const +{ + Q_D(const QQuickPopup); + return d->popupItem->isEnabled(); +} + +void QQuickPopup::setEnabled(bool enabled) +{ + Q_D(QQuickPopup); + d->popupItem->setEnabled(enabled); +} + +/*! + \since QtQuick.Controls 2.3 (Qt 5.10) \qmlproperty bool QtQuick.Controls::Popup::opened This property holds whether the popup is fully open. The popup is considered opened diff --git a/src/quicktemplates2/qquickpopup_p.h b/src/quicktemplates2/qquickpopup_p.h index bf41e7d0..803be911 100644 --- a/src/quicktemplates2/qquickpopup_p.h +++ b/src/quicktemplates2/qquickpopup_p.h @@ -110,6 +110,7 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopup : public QObject, public QQml Q_PROPERTY(bool modal READ isModal WRITE setModal NOTIFY modalChanged FINAL) Q_PROPERTY(bool dim READ dim WRITE setDim RESET resetDim NOTIFY dimChanged FINAL) Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL) + Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL REVISION 3) Q_PROPERTY(bool opened READ isOpened NOTIFY openedChanged FINAL REVISION 3) Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity NOTIFY opacityChanged FINAL) Q_PROPERTY(qreal scale READ scale WRITE setScale NOTIFY scaleChanged FINAL) @@ -247,6 +248,9 @@ public: bool isVisible() const; virtual void setVisible(bool visible); + bool isEnabled() const; + void setEnabled(bool enabled); + bool isOpened() const; qreal opacity() const; @@ -331,6 +335,7 @@ Q_SIGNALS: void modalChanged(); void dimChanged(); void visibleChanged(); + Q_REVISION(3) void enabledChanged(); Q_REVISION(3) void openedChanged(); void opacityChanged(); void scaleChanged(); diff --git a/tests/auto/popup/tst_popup.cpp b/tests/auto/popup/tst_popup.cpp index 1b4f0aca..0193b769 100644 --- a/tests/auto/popup/tst_popup.cpp +++ b/tests/auto/popup/tst_popup.cpp @@ -79,6 +79,7 @@ private slots: void cursorShape(); void componentComplete(); void closeOnEscapeWithNestedPopups(); + void enabled(); }; void tst_popup::initTestCase() @@ -906,6 +907,26 @@ void tst_popup::closeOnEscapeWithNestedPopups() QCOMPARE(stackView->depth(), 1); } +void tst_popup::enabled() +{ + QQuickPopup popup; + QVERIFY(popup.isEnabled()); + QVERIFY(popup.popupItem()->isEnabled()); + + QSignalSpy enabledSpy(&popup, &QQuickPopup::enabledChanged); + QVERIFY(enabledSpy.isValid()); + + popup.setEnabled(false); + QVERIFY(!popup.isEnabled()); + QVERIFY(!popup.popupItem()->isEnabled()); + QCOMPARE(enabledSpy.count(), 1); + + popup.popupItem()->setEnabled(true); + QVERIFY(popup.isEnabled()); + QVERIFY(popup.popupItem()->isEnabled()); + QCOMPARE(enabledSpy.count(), 2); +} + QTEST_MAIN(tst_popup) #include "tst_popup.moc" |