diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-12-19 11:20:15 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-12-19 18:35:05 +0000 |
commit | 27a7cb2b36a2e23845f3b91c55b6254681f40545 (patch) | |
tree | 909e78c71b2aaeaddb1f869d0a1b3e4d9774a8de /src/templates/qquickoverlay.cpp | |
parent | 6b1bc337410dcfcafc6ceecaa268464f6214ea33 (diff) |
Just tidy up QQuickPopup a bit
Change-Id: Ibc8097299f0796f943682f0c1de628a8da87e430
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/templates/qquickoverlay.cpp')
-rw-r--r-- | src/templates/qquickoverlay.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/templates/qquickoverlay.cpp b/src/templates/qquickoverlay.cpp index a3f9b573..949715c4 100644 --- a/src/templates/qquickoverlay.cpp +++ b/src/templates/qquickoverlay.cpp @@ -138,7 +138,6 @@ void QQuickOverlay::itemChange(ItemChange change, const ItemChangeData &data) Q_D(QQuickOverlay); QQuickItem::itemChange(change, data); - QQuickItem *contentItem = const_cast<QQuickItem *>(data.item); QQuickPopup *popup = Q_NULLPTR; if (change == ItemChildAddedChange || change == ItemChildRemovedChange) { QQuickDrawer *drawer = qobject_cast<QQuickDrawer *>(data.item); @@ -152,7 +151,7 @@ void QQuickOverlay::itemChange(ItemChange change, const ItemChangeData &data) } d->updateBackground(); } else { - popup = qobject_cast<QQuickPopup *>(contentItem->parent()); + popup = qobject_cast<QQuickPopup *>(data.item->parent()); } setVisible(!childItems().isEmpty()); } @@ -160,27 +159,27 @@ void QQuickOverlay::itemChange(ItemChange change, const ItemChangeData &data) return; if (change == ItemChildAddedChange) { - if (QQuickPopup *prevPopup = d->popups.value(contentItem)) { - qmlInfo(popup).nospace() << "Popup is sharing item " << contentItem << " with " << prevPopup + if (QQuickPopup *prevPopup = d->popups.value(data.item)) { + qmlInfo(popup).nospace() << "Popup is sharing item " << data.item << " with " << prevPopup << ". This is not supported and strange things are about to happen."; return; } - d->popups.insert(contentItem, popup); + d->popups.insert(data.item, popup); if (popup->isModal()) ++d->modalPopups; connect(this, &QQuickOverlay::pressed, popup, &QQuickPopup::pressedOutside); connect(this, &QQuickOverlay::released, popup, &QQuickPopup::releasedOutside); } else if (change == ItemChildRemovedChange) { - Q_ASSERT(popup == d->popups.value(contentItem)); + Q_ASSERT(popup == d->popups.value(data.item)); disconnect(this, &QQuickOverlay::pressed, popup, &QQuickPopup::pressedOutside); disconnect(this, &QQuickOverlay::released, popup, &QQuickPopup::releasedOutside); if (popup->isModal()) --d->modalPopups; - d->popups.remove(contentItem); + d->popups.remove(data.item); } d->updateBackground(); |