diff options
author | Marco Bubke <marco.bubke@digia.com> | 2012-10-22 16:07:17 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2012-10-23 10:44:51 +0200 |
commit | 6994079f96dd48a0dd015aa1d9a2ded53afa3bfd (patch) | |
tree | 3c57c03a6bffdd710a1058bd7019d46a87845e06 /share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp | |
parent | 9246e78d239dbe23572f2a29961c60ea1f27fe6c (diff) |
QmlDesigner.NodeInstance: Better content check
Fix rendering bug for repeaters.
Change-Id: I1c56bb63ff91cd8f58e349b0f8b038d1dd7d40e9
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp')
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp index 2daa455bd0..bcbd1ff612 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp @@ -66,7 +66,10 @@ QuickItemNodeInstance::~QuickItemNodeInstance() bool QuickItemNodeInstance::hasContent() const { - return m_hasContent; + if (m_hasContent) + return true; + + return childItemsHaveContent(quickItem()); } QList<ServerNodeInstance> QuickItemNodeInstance::childItems() const @@ -112,12 +115,22 @@ void QuickItemNodeInstance::setHasContent(bool hasContent) } -bool QuickItemNodeInstance::anyItemHasContent(QQuickItem *graphicsItem) +bool QuickItemNodeInstance::anyItemHasContent(QQuickItem *quickItem) { - if (graphicsItem->flags().testFlag(QQuickItem::ItemHasContents)) + if (quickItem->flags().testFlag(QQuickItem::ItemHasContents)) return true; - foreach (QQuickItem *childItem, graphicsItem->childItems()) { + foreach (QQuickItem *childItem, quickItem->childItems()) { + if (anyItemHasContent(childItem)) + return true; + } + + return false; +} + +bool QuickItemNodeInstance::childItemsHaveContent(QQuickItem *quickItem) +{ + foreach (QQuickItem *childItem, quickItem->childItems()) { if (anyItemHasContent(childItem)) return true; } |