QmlDesigner: Add meta hint if item renders children directly

In some cases items render their children directly using an effect.
In this case we do not want to hide the children when calling
refFromEffectItem().
If the hint takesOverRenderingOfChildren is set in the .metainfo hints
for a parent item we forward a flag to the puppet and refFromEffectItem()
is not hiding this item,

Change-Id: I37a8c0ad8a15bc914c220e03b1b744779431d655
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Thomas Hartmann
2018-03-02 15:29:26 +01:00
parent 98889e1a38
commit 8a8b8c4602
10 changed files with 116 additions and 20 deletions

View File

@@ -44,9 +44,24 @@ InstanceContainer::InstanceContainer()
{
}
InstanceContainer::InstanceContainer(qint32 instanceId, const TypeName &type, int majorNumber, int minorNumber, const QString &componentPath, const QString &nodeSource, NodeSourceType nodeSourceType, NodeMetaType metaType)
: m_instanceId(instanceId), m_type(properDelemitingOfType(type)), m_majorNumber(majorNumber), m_minorNumber(minorNumber), m_componentPath(componentPath),
m_nodeSource(nodeSource), m_nodeSourceType(nodeSourceType), m_metaType(metaType)
InstanceContainer::InstanceContainer(qint32 instanceId,
const TypeName &type,
int majorNumber,
int minorNumber,
const QString &componentPath,
const QString &nodeSource,
NodeSourceType nodeSourceType,
NodeMetaType metaType,
NodeFlags metaFlags)
: m_instanceId(instanceId)
,m_type(properDelemitingOfType(type))
,m_majorNumber(majorNumber)
,m_minorNumber(minorNumber)
,m_componentPath(componentPath)
,m_nodeSource(nodeSource)
,m_nodeSourceType(nodeSourceType)
,m_metaType(metaType)
,m_metaFlags(metaFlags)
{
}
@@ -90,6 +105,16 @@ InstanceContainer::NodeMetaType InstanceContainer::metaType() const
return static_cast<NodeMetaType>(m_metaType);
}
InstanceContainer::NodeFlags InstanceContainer::metaFlags() const
{
return m_metaFlags;
}
bool InstanceContainer::checkFlag(NodeFlag flag) const
{
return NodeFlags(m_metaFlags).testFlag(flag);
}
QDataStream &operator<<(QDataStream &out, const InstanceContainer &container)
{
out << container.instanceId();
@@ -100,6 +125,7 @@ QDataStream &operator<<(QDataStream &out, const InstanceContainer &container)
out << container.nodeSource();
out << qint32(container.nodeSourceType());
out << qint32(container.metaType());
out << qint32(container.metaFlags());
return out;
}
@@ -115,6 +141,7 @@ QDataStream &operator>>(QDataStream &in, InstanceContainer &container)
in >> container.m_nodeSource;
in >> container.m_nodeSourceType;
in >> container.m_metaType;
in >> container.m_metaFlags;
return in;
}