Deepen the element editor and Search & Replace pages
Both documented less than their subject. The element editor is a whole
second application in 137 lines; Search & Replace listed six conductor
fields where the code edits nineteen.
Element editor, four new sections from the source:
- the Parties and Profondeur panels, and the X/Y readout -- with the
gotcha that the parts list stops generating past 200 primitives and
shows a count instead, which is a setting
(elementeditor/max-parts-element-editor-list) rather than a limit on
the element;
- getting drawings in and out: import an element to resize, import DXF,
export SVG, and reload, which warns before discarding changes;
- read-only editing, and that Save as is the way out;
- reshaping handles, pointing at mouse_modifiers rather than repeating
it, since Alt turning a rectangle into a polygon matters most here.
Search & Replace: the conductor row now lists what applyChange()
actually writes, and says what it does not. Cable and Bus are the only
conductor properties it skips, in both the simple and advanced paths --
which is precisely the field you would want to rename across forty wires
at once. Linked to discussion #934, where adding them is item one.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CaKympWT3owLotCpEN2CFj
Document Search & Replace and the nomenclature/summary query builder
Both were confirmed still-real gaps from the survey: Search & Replace
(sources/SearchAndReplace/, ~3,180 lines) was a single features.md bullet,
and the query-builder UI (sources/dataBase/ui/, ~1,088 lines) was only
named once inside project_database.md as a pointer to ElementQueryWidget,
with no workflow documentation.
## Search & Replace
The name is misleading and worth correcting up front: this is not text
find/replace. SearchAndReplaceWorker::applyChange() shows the real
semantics -- an empty field leaves a property untouched, a filled field
replaces it wholesale (never a substring swap), and a reserved sentinel
string (set via a per-field checkbox, never typed by the user) explicitly
clears a field. Three states per field, not two. Traced through
setupLineEdit()'s own doc comment and applyChange()'s three-branch
behavior to be sure of this before writing it down.
## Nomenclature / summary query builder
ElementQueryWidget (element_nomenclature_view) and SummaryQueryWidget
(project_summary_view) are a visual SELECT builder: two-list column
picker, seven filter modes with their exact SQL traced from
on_m_filter_le_textEdited()'s switch statement (No filter/Not empty/
Empty/Contains/Does not contain/Is equal/Is not equal), group-by and
count, an "Edit SQL query" escape hatch, and named saved configurations.
Explicit about what it is not: not a general SQL client (bound to one
view, can't change the FROM even in raw-SQL mode), and not the same
column set as --export-bom, which was verified to hardcode its own fixed
list in cli_export.cpp rather than sharing this widget's choices.
Links the existing one-line Search & Replace mentions in features (all
three languages) to the new page. EN/FR/DE for both.