diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-07-11 00:16:09 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-07-11 09:42:04 +0000 |
commit | c3431db7a3eb6b0c6e325e2d1e16eb6def9a4b4d (patch) | |
tree | ed713abd9e13d05de3d93504f131f278311bd0e3 /src | |
parent | 8efc7cc41eaafcdbb83c0b7ce00a0af0636175fb (diff) |
QQuickPopup: add reset-method for closePolicy
Change-Id: I05357bf0605eb152531ded3788437b1d52022528
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 13 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopup_p.h | 3 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopup_p_p.h | 1 |
3 files changed, 15 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 143075e6..6927699c 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -203,6 +203,8 @@ QT_BEGIN_NAMESPACE \sa closed() */ +static const QQuickPopup::ClosePolicy DefaultClosePolicy = QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutside; + QQuickPopupPrivate::QQuickPopupPrivate() : focus(false), modal(false), @@ -225,6 +227,7 @@ QQuickPopupPrivate::QQuickPopupPrivate() allowHorizontalResize(true), hadActiveFocusBeforeExitTransition(false), interactive(true), + hasClosePolicy(false), touchId(-1), x(0), y(0), @@ -238,7 +241,7 @@ QQuickPopupPrivate::QQuickPopupPrivate() contentWidth(0), contentHeight(0), transitionState(QQuickPopupPrivate::NoTransition), - closePolicy(QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutside), + closePolicy(DefaultClosePolicy), parentItem(nullptr), dimmer(nullptr), window(nullptr), @@ -1962,6 +1965,7 @@ QQuickPopup::ClosePolicy QQuickPopup::closePolicy() const void QQuickPopup::setClosePolicy(ClosePolicy policy) { Q_D(QQuickPopup); + d->hasClosePolicy = true; if (d->closePolicy == policy) return; d->closePolicy = policy; @@ -1974,6 +1978,13 @@ void QQuickPopup::setClosePolicy(ClosePolicy policy) emit closePolicyChanged(); } +void QQuickPopup::resetClosePolicy() +{ + Q_D(QQuickPopup); + setClosePolicy(DefaultClosePolicy); + d->hasClosePolicy = false; +} + /*! \qmlproperty enumeration QtQuick.Controls::Popup::transformOrigin diff --git a/src/quicktemplates2/qquickpopup_p.h b/src/quicktemplates2/qquickpopup_p.h index c22ed638..90006193 100644 --- a/src/quicktemplates2/qquickpopup_p.h +++ b/src/quicktemplates2/qquickpopup_p.h @@ -115,7 +115,7 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopup : public QObject, public QQml 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) - Q_PROPERTY(ClosePolicy closePolicy READ closePolicy WRITE setClosePolicy NOTIFY closePolicyChanged FINAL) + Q_PROPERTY(ClosePolicy closePolicy READ closePolicy WRITE setClosePolicy RESET resetClosePolicy NOTIFY closePolicyChanged FINAL) Q_PROPERTY(TransformOrigin transformOrigin READ transformOrigin WRITE setTransformOrigin FINAL) Q_PROPERTY(QQuickTransition *enter READ enter WRITE setEnter NOTIFY enterChanged FINAL) Q_PROPERTY(QQuickTransition *exit READ exit WRITE setExit NOTIFY exitChanged FINAL) @@ -275,6 +275,7 @@ public: ClosePolicy closePolicy() const; void setClosePolicy(ClosePolicy policy); + void resetClosePolicy(); // keep in sync with Item.TransformOrigin enum TransformOrigin { diff --git a/src/quicktemplates2/qquickpopup_p_p.h b/src/quicktemplates2/qquickpopup_p_p.h index ae0bf7cd..6890fdac 100644 --- a/src/quicktemplates2/qquickpopup_p_p.h +++ b/src/quicktemplates2/qquickpopup_p_p.h @@ -163,6 +163,7 @@ public: bool allowHorizontalResize; bool hadActiveFocusBeforeExitTransition; bool interactive; + bool hasClosePolicy; int touchId; qreal x; qreal y; |