From 4f1fb09ed70c69e73f2e19f28f4299f4cfbc90dc Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 23 Jan 2016 14:34:11 +0100 Subject: Add Popup::setVisible() This allows nice bindings such as: Slider { id: slider Popup { y: -height - 1 x: -width / 2 + slider.handle.width / 2 parent: slider.handle visible: slider.pressed // <--- Label { text: slider.position.toFixed(2) } } } Change-Id: Iebde004205636de31d0f0dd0f6404f0755aaf0df Reviewed-by: J-P Nurmi --- src/templates/qquickpopup.cpp | 8 ++++++++ src/templates/qquickpopup_p.h | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/templates/qquickpopup.cpp b/src/templates/qquickpopup.cpp index 7df828ae..e613adec 100644 --- a/src/templates/qquickpopup.cpp +++ b/src/templates/qquickpopup.cpp @@ -1085,6 +1085,14 @@ bool QQuickPopup::isVisible() const return d->overlay != Q_NULLPTR /*&& !d->transitionManager.isRunning()*/; } +void QQuickPopup::setVisible(bool visible) +{ + if (visible) + open(); + else + close(); +} + /*! \qmlproperty Transition Qt.labs.controls::Popup::enter diff --git a/src/templates/qquickpopup_p.h b/src/templates/qquickpopup_p.h index 74a11647..a9094f92 100644 --- a/src/templates/qquickpopup_p.h +++ b/src/templates/qquickpopup_p.h @@ -89,7 +89,7 @@ class Q_LABSTEMPLATES_EXPORT QQuickPopup : public QObject, public QQmlParserStat Q_PROPERTY(QQmlListProperty contentChildren READ contentChildren NOTIFY contentChildrenChanged FINAL) Q_PROPERTY(bool focus READ hasFocus WRITE setFocus NOTIFY focusChanged) Q_PROPERTY(bool modal READ isModal WRITE setModal NOTIFY modalChanged) - Q_PROPERTY(bool visible READ isVisible NOTIFY visibleChanged) + Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged) Q_PROPERTY(QQuickTransition *enter READ enter WRITE setEnter NOTIFY enterChanged FINAL) Q_PROPERTY(QQuickTransition *exit READ exit WRITE setExit NOTIFY exitChanged FINAL) Q_CLASSINFO("DefaultProperty", "contentData") @@ -166,6 +166,7 @@ public: void setModal(bool modal); bool isVisible() const; + void setVisible(bool visible); QQuickTransition *enter() const; void setEnter(QQuickTransition *transition); -- cgit v1.2.3