diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2021-08-24 12:36:58 +0200 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2021-08-26 14:18:37 +0000 |
commit | 30827fe4016cbbc62d4eb0291d4af7c5dc54d007 (patch) | |
tree | 12339129b14b1557fc244286a7c06ae83634ba12 /share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp | |
parent | 90027cd298359a70f35b6feca98609a3c7fc67e3 (diff) |
QmlDesigner: Implement visibility for unified render path
If the item is set to invisible we set visible to false in
the render and preview puppets. This will have no effect on the
value in the property editor.
Changing the actual value of visible can have side-effects on
the rendering in some rare cases.
Task-number: QDS-4932
Change-Id: I5ce0925ebff8f5e4e64bc71fd5d33d6154b85f91
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
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, 21 insertions, 0 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp index 51b1dcd1c0..ab38b33aaf 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp @@ -295,6 +295,27 @@ bool QuickItemNodeInstance::unifiedRenderPathOrQt6() #endif } +void QuickItemNodeInstance::setHiddenInEditor(bool hide) +{ + ObjectNodeInstance::setHiddenInEditor(hide); + if (s_unifiedRenderPath && !nodeInstanceServer()->isInformationServer()) { + QQmlProperty property(object(), "visible", context()); + + if (!property.isValid()) + return; + + bool visible = property.read().toBool(); + + if (hide && visible) { + setPropertyVariant("visible", false); + m_hidden = true; + } else if (!hide && !visible && m_hidden) { + setPropertyVariant("visible", true); + m_hidden = false; + } + } +} + QRectF QuickItemNodeInstance::contentItemBoundingBox() const { if (contentItem()) { |