A submenu under View (Affichage > Afficher) with one tick per kind:
symbol texts, wire texts, free texts, shapes, pictures, tables and
cross-references. Unticking one hides it on every folio of every open
project; the status bar says how many kinds are hidden. Session only,
not saved in the project.
Each item is tagged with its kind by its constructor (ShownKinds::tag),
so an item created while its kind is hidden starts hidden whatever
created it. A tag rather than type(): the cross-reference under a
contact's label is a plain QGraphicsTextItem.
Items that already hide themselves (wire text switched off, one text per
potential, a cross-reference snapped elsewhere) now go through
ShownKinds::setVisible(): the kind state can only veto a show, and
apply() re-shows only what it hid itself (hidden_key), never what an
item hid. Conductor::updateTextVisibility() replaces the same visibility
rule pasted in diagrampropertiesdialog.cpp and qetscriptapi.cpp.
Hidden items are not selectable (Qt), so Select All, copy and delete
skip them. Print, PDF and image export render the scene and leave them
out; the DXF export walks items itself and skips them through
ShownKinds::isHidden(). CrossRefItem::linkedChanged() keeps following
its slaves while hidden only by kind, so its label is right when shown.
Known limitation: QGraphicsScene::itemsBoundingRect() still counts hidden
items, so Zoom to fit and borderless image export keep their space.
Verified: tst_shownkinds (12 cases, two mutation checks) and ctest 55/55;
GUI hide/show of symbol texts, wire texts (incl. one text per potential),
free texts, shapes and cross-references returns pixel-identical folios;
with nothing hidden, --export-dxf of the 24 examples is byte-identical to
master (133 files) and --export-pdf renders identically (133 pages).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015FPuYPS4T7QuEwjNu22rXD
A wire read "nan" or "inf" for its position, its segment lengths and
its label position without checking them: QString::toDouble() accepts
all three as numbers. PR #792 and #996 closed this gap for elements,
terminals and texts; wires were left out.
The worst case is a segment length: a single "nan" passes the check
that the segments add up to the distance between the two terminals,
because every comparison with NaN is false. The whole path then turns
to NaN: on 2612_ats_singlephase.qet one bad length out of six was saved
back as six "nan" vertical segments, and the next save dropped them and
routed the wire automatically, so each save changed the file.
Now:
- a non-finite segment length is skipped like any unreadable one, so
the path fails the coherence check and the wire is routed
automatically at load, as already happens for "inf";
- a non-finite wire position is read as 0;
- a non-finite label position or rotation is ignored, as if the label
had not been moved or rotated.
Found by the mutation sweep (python3 -m simulator sweep, mutators
inject_nan_coordinate / inject_inf_coordinate). The 24 example projects
resave byte-identical with and without this change.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Texts snapped to the folio grid, so the first drag of an off-grid label
pulled it sideways by up to half a grid step (discussion #1020). Texts
now snap to a fraction of the folio grid, chosen from a "Textes 1:N"
button in the View toolbar and a menu under Affichage: Off, 1:1, 1:2,
1:2.5, 1:5, 1:10. Because the step divides the folio grid, texts on
different elements still line up. Ctrl still places a text freely.
1:1 is the default and matches the previous behaviour. The setting is
stored in QSettings; nothing changes in saved projects.
All five text movers switch together: element texts, text groups,
texts moved with a selection, conductor texts and independent texts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2d2Zi8BfrYRPX88zhaoFG
-Cette ligne, et les suivantes ci-dessous, seront ignorées--
M sources/aboutqet.cpp
M sources/bordertitleblock.cpp
M sources/conductorproperties.h
M sources/configdialog.cpp
M sources/configpages.cpp
M sources/configpages.h
M sources/createdxf.h
M sources/diagram.cpp
M sources/diagram.h
M sources/diagramcommands.cpp
M sources/diagramcommands.h
M sources/diagramprintdialog.cpp
M sources/diagramprintdialog.h
M sources/diagramschooser.cpp
M sources/diagramschooser.h
M sources/diagramview.cpp
M sources/diagramview.h
M sources/dvevent/dveventaddimage.cpp
M sources/dvevent/dveventaddshape.cpp
M sources/editor/arceditor.cpp
M sources/editor/arceditor.h
M sources/editor/editorcommands.cpp
M sources/editor/editorcommands.h
M sources/editor/elementitemeditor.h
M sources/editor/elementprimitivedecorator.cpp
M sources/editor/elementscene.cpp
M sources/editor/elementscene.h
M sources/editor/elementview.cpp
M sources/editor/ellipseeditor.cpp
M sources/editor/ellipseeditor.h
M sources/editor/esevent/eseventaddtext.cpp
M sources/editor/esevent/eseventaddtextfield.cpp
M sources/editor/esevent/eseventinterface.cpp
M sources/editor/graphicspart/customelementpart.h
M sources/editor/graphicspart/parttext.cpp
M sources/editor/graphicspart/parttext.h
M sources/editor/graphicspart/parttextfield.cpp
M sources/editor/graphicspart/parttextfield.h
M sources/editor/lineeditor.cpp
M sources/editor/lineeditor.h
M sources/editor/polygoneditor.cpp
M sources/editor/qetelementeditor.cpp
M sources/editor/qetelementeditor.h
M sources/editor/rectangleeditor.cpp
M sources/editor/rectangleeditor.h
M sources/editor/styleeditor.cpp
M sources/editor/styleeditor.h
M sources/editor/terminaleditor.cpp
M sources/editor/terminaleditor.h
M sources/editor/texteditor.cpp
M sources/editor/texteditor.h
M sources/editor/textfieldeditor.cpp
M sources/editor/textfieldeditor.h
M sources/editor/ui/elementpropertieseditorwidget.cpp
M sources/elementdefinition.cpp
M sources/elementdeleter.cpp
M sources/elementdeleter.h
M sources/elementdialog.cpp
M sources/elementscategorieslist.h
M sources/elementscategorieswidget.cpp
M sources/elementscategorieswidget.h
M sources/elementscategory.cpp
M sources/elementscategorydeleter.cpp
M sources/elementscategorydeleter.h
M sources/elementscategoryeditor.cpp
M sources/elementscategoryeditor.h
M sources/elementscollection.cpp
M sources/elementscollectioncache.cpp
M sources/elementspanel.cpp
M sources/elementspanel.h
M sources/elementspanelwidget.cpp
M sources/elementspanelwidget.h
M sources/elementtextsmover.h
M sources/exportdialog.cpp
M sources/exportdialog.h
M sources/exportproperties.cpp
M sources/exportpropertieswidget.cpp
M sources/exportpropertieswidget.h
M sources/genericpanel.cpp
M sources/integrationmoveelementshandler.cpp
M sources/integrationmoveelementshandler.h
M sources/interactivemoveelementshandler.cpp
M sources/nameslistwidget.cpp
M sources/nameslistwidget.h
M sources/newelementwizard.cpp
M sources/newelementwizard.h
M sources/nomenclature.cpp
M sources/nomenclature.h
M sources/projectconfigpages.cpp
M sources/projectview.cpp
M sources/projectview.h
M sources/qet.cpp
M sources/qetapp.cpp
M sources/qetapp.h
M sources/qetdiagrameditor.cpp
M sources/qetdiagrameditor.h
M sources/qetgraphicsitem/conductor.cpp
M sources/qetgraphicsitem/conductortextitem.cpp
M sources/qetgraphicsitem/customelement.cpp
M sources/qetgraphicsitem/diagramimageitem.cpp
M sources/qetgraphicsitem/diagramtextitem.cpp
M sources/qetgraphicsitem/diagramtextitem.h
M sources/qetgraphicsitem/element.cpp
M sources/qetgraphicsitem/ghostelement.cpp
M sources/qetgraphicsitem/qetshapeitem.cpp
M sources/qetgraphicsitem/terminal.cpp
M sources/qetgraphicsitem/terminal.h
M sources/qeticons.cpp
M sources/qeticons.h
M sources/qetmainwindow.cpp
M sources/qetmessagebox.cpp
M sources/qetmessagebox.h
M sources/qetprintpreviewdialog.cpp
M sources/qetprintpreviewdialog.h
M sources/qetproject.cpp
M sources/qetsingleapplication.cpp
M sources/qettabbar.h
M sources/qfilenameedit.cpp
M sources/qtextorientationspinboxwidget.cpp
M sources/qtextorientationspinboxwidget.h
M sources/qtextorientationwidget.cpp
M sources/qtextorientationwidget.h
M sources/richtext/richtexteditor.cpp
M sources/richtext/richtexteditor_p.h
M sources/richtext/ui_addlinkdialog.h
M sources/titleblock/dimensionwidget.h
M sources/titleblock/gridlayoutanimation.h
M sources/titleblock/helpercell.h
M sources/titleblock/integrationmovetemplateshandler.cpp
M sources/titleblock/integrationmovetemplateshandler.h
M sources/titleblock/qettemplateeditor.cpp
M sources/titleblock/qettemplateeditor.h
M sources/titleblock/templatecellsset.h
M sources/titleblock/templatecellwidget.cpp
M sources/titleblock/templatecellwidget.h
M sources/titleblock/templatecommands.cpp
M sources/titleblock/templatedeleter.cpp
M sources/titleblock/templatedeleter.h
M sources/titleblock/templatelocationchooser.cpp
M sources/titleblock/templatelocationchooser.h
M sources/titleblock/templatelocationsaver.cpp
M sources/titleblock/templatelocationsaver.h
M sources/titleblock/templatelogomanager.cpp
M sources/titleblock/templatelogomanager.h
M sources/titleblock/templateview.cpp
M sources/titleblock/templatevisualcell.h
M sources/titleblockcell.cpp
M sources/titleblocktemplate.cpp
M sources/treecoloranimation.h
M sources/ui/conductorpropertieswidget.cpp
M sources/ui/diagrampropertiesdialog.cpp
M sources/ui/diagramselection.cpp
M sources/ui/dialogautonum.cpp
M sources/ui/dialogwaiting.cpp
M sources/ui/elementpropertieswidget.cpp
M sources/ui/elementselectorwidget.cpp
M sources/ui/linksingleelementwidget.cpp
M sources/ui/masterpropertieswidget.cpp
M sources/ui/potentialtextsdialog.cpp
M sources/ui/projectpropertiesdialog.cpp
M sources/ui/selectautonumw.cpp
M sources/ui/titleblockpropertieswidget.cpp
M sources/ui/xrefpropertieswidget.cpp
M sources/undocommand/changeelementinformationcommand.cpp
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3783 bfdf4180-ca20-0410-9c96-a3a8aa849046
When mouse over a element, coonductor, text, the graphic symbol draw his bounding box.
and draw a tooltip with his name
For conductor the conductor size change.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3490 bfdf4180-ca20-0410-9c96-a3a8aa849046