aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-21 08:37:07 +0300
committerJ-P Nurmi <jpnurmi@qt.io>2017-04-21 15:15:26 +0000
commit20d1bdc650dfcaa1c84d297f412fe7c836972990 (patch)
treefc765aec3bcc3a3db75a9451e8ca0146bd54d0f5 /src/quicktemplates2
parent7301f73ce019aca49e7c9367e22733022bc3680c (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/quicktemplates2')
-rw-r--r--src/quicktemplates2/qquickpopup.cpp4
-rw-r--r--src/quicktemplates2/qquickpopupitem.cpp1
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)