aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@digia.com>2012-10-22 16:07:17 +0200
committerThomas Hartmann <Thomas.Hartmann@digia.com>2012-10-23 10:44:51 +0200
commit6994079f96dd48a0dd015aa1d9a2ded53afa3bfd (patch)
tree3c57c03a6bffdd710a1058bd7019d46a87845e06 /share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
parent9246e78d239dbe23572f2a29961c60ea1f27fe6c (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.cpp21
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;
}