From f6c9aeb1778343c59eefb34afdde78e54083d26d Mon Sep 17 00:00:00 2001 From: Ramon Date: Mon, 19 Oct 2026 13:44:08 +0200 Subject: [PATCH] AssignVariables: open QSettings only for element formulas Every formula evaluation constructed a QSettings, although only element formulas read it (border-columns_0, for %c). Constructing QSettings is costly, on Windows a registry lookup, and conductor labels are evaluated in bulk: Conductor::refreshText() runs for every wire of a folio when it is built, and for every wire of every built folio when the project or a title block changes. Debug build, 40 folios with 4,280 numbered wires: - refreshText() of every wire: 1,136-1,264 ms before, 203-208 ms after - opening the project (database fill): 2.24-2.48 s before, 1.46-1.59 s after - building 39 lazy folios: 15.0-15.3 s before, 12.3-12.5 s after Co-Authored-By: Claude Opus 5.5 --- sources/autoNum/assignvariables.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/autoNum/assignvariables.cpp b/sources/autoNum/assignvariables.cpp index 6eed17367..37f83b4bb 100644 --- a/sources/autoNum/assignvariables.cpp +++ b/sources/autoNum/assignvariables.cpp @@ -415,9 +415,9 @@ namespace autonum m_assigned_label.replace("%M", m_context.plant); m_assigned_label.replace("%LM", m_context.locmach); - QSettings settings; if (m_context.has_element) { + QSettings settings; if (settings.value("border-columns_0", true).toBool()){ m_assigned_label.replace("%c", QString::number(m_context.element_position.number() - 1)); }else{