aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-06-21 19:16:11 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-06-22 11:36:52 +0000
commit697658ab9a6f68cd76a5cd2bb8185b2a6ab06844 (patch)
treef7e3369bef29ef684123da99a4867ae5cc1b295c
parent1ffede10a0b2d2f0dc64fcce4f54263d9d30e57e (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.cpp21
-rw-r--r--src/quicktemplates2/qquickpopup_p.h5
-rw-r--r--tests/auto/popup/tst_popup.cpp21
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"