From 8985babfe77c49423275b7c8a423ab349cae044e Mon Sep 17 00:00:00 2001 From: Kellermorph Date: Mon, 21 Sep 2026 21:45:03 +0200 Subject: [PATCH] fix: update composite text %{label} when folio changes DynamicElementTextItem::updateLabel() resolved %{label} in composite text using the stale value from elementInformations()["label"], which is only set once at load time and never updated when the folio/page number changes. Use element->actualLabel() instead, which resolves the label formula (including %F, %f, %id) against the current folio at call time. --- sources/qetgraphicsitem/dynamicelementtextitem.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sources/qetgraphicsitem/dynamicelementtextitem.cpp b/sources/qetgraphicsitem/dynamicelementtextitem.cpp index 3ece23de1..f11c6bd9c 100644 --- a/sources/qetgraphicsitem/dynamicelementtextitem.cpp +++ b/sources/qetgraphicsitem/dynamicelementtextitem.cpp @@ -1289,9 +1289,15 @@ void DynamicElementTextItem::updateLabel() if(m_text_from == ElementInfo && element) { - setPlainText(element->actualLabel()); + QString new_label = element->actualLabel(); + if (toPlainText() != new_label) { + setPlainText(new_label); + } } else if (m_text_from == CompositeText) { + // Use actualLabel() to ensure %{label} reflects the current + // resolved label (e.g. after a folio/page-number change) + dc.addValue(QStringLiteral("label"), element->actualLabel()); setPlainText(autonum::AssignVariables::replaceVariable(m_composite_text, dc)); } }