Terminal: rename potential separation to function separation

The checkbox of a terminal element was an all-or-nothing switch: while
it was unticked every conductor property (function, wire colour,
section, number...) crossed to the other side of the terminal, and
once it was ticked nothing did at all.

Rename it to "Function separation" and let one property still cross:
the voltage / protocol, which describes the electrical node itself
rather than one side of it. Conductor::functionSeparatedConductors()
returns the conductors reachable only by crossing such a terminal --
the potential computed with the separations ignored, minus the one
that respects them -- and
ConductorProperties::applyTensionProtocolChange() gives them that one
property, in the conductor properties dialog, the selection panel
multi-edit, the script API and search/replace.

The stored element information stays "potential_isolating", so
existing symbols and projects keep their setting, and the existing
sub-case of terminals sharing a potential-group identifier is
untouched. The German translation of the new label is deliberately
left out of this commit and belongs with the other .ts updates.
This commit is contained in:
Kellermorph
2026-10-11 14:57:42 +02:00
parent 1f70ddb666
commit 561ddc29bf
15 changed files with 275 additions and 26 deletions
+10 -5
View File
@@ -346,7 +346,10 @@ void ConductorPropertiesEditorWidget::updateUi()
When "apply to all" is ticked, every conductor on the same potential as
an edited one is updated too, in the same undo step (one undo reverts
them all), as the modal dialog does
(ConductorPropertiesDialog::PropertiesDialog).
(ConductorPropertiesDialog::PropertiesDialog). A terminal element with
its function separation enabled is not crossed by any of that -- its
other side keeps its own text, function, color... -- but the voltage /
protocol still crosses (@see Conductor::functionSeparatedConductors).
*/
QUndoCommand *ConductorPropertiesEditorWidget::associatedUndo() const
{
@@ -360,10 +363,12 @@ QUndoCommand *ConductorPropertiesEditorWidget::associatedUndo() const
if (c)
selected << c.data();
return ConductorMultiEdit::undo(
ConductorMultiEdit::targets(
selected, m_apply_all_cb && m_apply_all_cb->isChecked()),
m_shown, edited);
QSet<Conductor *> function_separated;
const QList<Conductor *> targets = ConductorMultiEdit::targets(
selected, m_apply_all_cb && m_apply_all_cb->isChecked(),
&function_separated);
return ConductorMultiEdit::undo(targets, m_shown, edited, function_separated);
}
/**