diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-21 08:37:07 +0300 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-21 15:15:26 +0000 |
commit | 20d1bdc650dfcaa1c84d297f412fe7c836972990 (patch) | |
tree | fc765aec3bcc3a3db75a9451e8ca0146bd54d0f5 /src | |
parent | 7301f73ce019aca49e7c9367e22733022bc3680c (diff) |
Fix QQuickPopup::isComponentComplete()
It has to default to true to ensure that a QQuickPopup instantiated in
C++ is not stuck to false forever. When instantiated by the QML engine,
it is set to false during the QML component initialization phase from
classBegin() to componentComple().
NOTE: QQuickPopupItem's visibility has to be now set outside of
QQuickPopupItem constructor, because QQuickPopupItem::itemChange()
calls back to QQuickPopup::itemChange(). At that point
QQuickPopupPrivate::popupItem should be set.
Change-Id: I96fa4ab4b2f29344c4a0d5bce5f8c7642e9db1a6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 4 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopupitem.cpp | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 1598bb1b..f03e8182 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -210,7 +210,7 @@ QQuickPopupPrivate::QQuickPopupPrivate() dim(false), hasDim(false), visible(false), - complete(false), + complete(true), positioning(false), hasWidth(false), hasHeight(false), @@ -259,6 +259,7 @@ void QQuickPopupPrivate::init() { Q_Q(QQuickPopup); popupItem = new QQuickPopupItem(q); + popupItem->setVisible(false); q->setParentItem(qobject_cast<QQuickItem *>(parent)); QObject::connect(popupItem, &QQuickControl::paddingChanged, q, &QQuickPopup::paddingChanged); positioner = new QQuickPopupPositioner(q); @@ -1810,6 +1811,7 @@ void QQuickPopup::forceActiveFocus(Qt::FocusReason reason) void QQuickPopup::classBegin() { Q_D(QQuickPopup); + d->complete = false; d->popupItem->classBegin(); } diff --git a/src/quicktemplates2/qquickpopupitem.cpp b/src/quicktemplates2/qquickpopupitem.cpp index abcb86aa..3a770bf7 100644 --- a/src/quicktemplates2/qquickpopupitem.cpp +++ b/src/quicktemplates2/qquickpopupitem.cpp @@ -102,7 +102,6 @@ QQuickPopupItem::QQuickPopupItem(QQuickPopup *popup) : QQuickControl(*(new QQuickPopupItemPrivate(popup)), nullptr) { setParent(popup); - setVisible(false); setFlag(ItemIsFocusScope); setAcceptedMouseButtons(Qt::AllButtons); #if QT_CONFIG(cursor) |