Clear stale xref data from PLC slave elementInformations on unlink and position change

This commit is contained in:
Kellermorph
2026-09-14 12:04:17 +02:00
parent 2785e25569
commit 00e75604b0
4 changed files with 42 additions and 0 deletions
@@ -59,6 +59,11 @@ ElementTextItemGroup::ElementTextItemGroup(const QString &name,
&Element::linkedElementChanged,
this,
&ElementTextItemGroup::updateXref);
if(parent->diagram())
connect(parent->diagram()->project(),
&QETProject::XRefPropertiesChanged,
this,
&ElementTextItemGroup::updateXref);
}
ElementTextItemGroup::~ElementTextItemGroup()
@@ -898,6 +903,25 @@ void ElementTextItemGroup::updateXref()
}
}
}
//Remove stale "xref" from elementInformations when no longer needed
if(m_parent_element->linkType() == Element::Slave &&
m_parent_element->diagram())
{
for(DynamicElementTextItem *deti : texts())
{
if(deti->textFrom() == DynamicElementTextItem::ElementInfo && deti->infoName() == "xref")
{
DiagramContext dc = m_parent_element->elementInformations();
if(!dc.value("xref").toString().isEmpty())
{
dc.remove("xref");
m_parent_element->setElementInformations(dc);
}
break;
}
}
}
}
void ElementTextItemGroup::adjustSlaveXrefPos(int slave_offset)