The zipped project (.qetz) is the format QElectroTech saves.
- Save As and the first Save of a new project offer .qetz first
("untitled.qetz"); .qet can still be chosen.
- A project read from a .qet is saved as a .qetz beside it, the .qet left
as it is (QETProject::write(), so Save, autosave, a script's save and the
assistant's live save all do it). The project then works on the .qetz.
A path chosen afterwards (Save As, a script naming one) is saved to as it
is. The editor says so before the first such save, and asks before
replacing a .qetz already there.
- File > Save a copy for an older QElectroTech writes a .qet copy, for a
version that cannot open a .qetz; the project keeps its own file.
- The operating systems know the file: a freedesktop MIME type
application/x-qelectrotech-project+zip (*.qetz, and by its mimetype
entry when the name says nothing), the desktop file, macOS's document
types and the Windows installer's association.
Crash backups stay XML, written beside the project as before.
tst_resaveunchanged::qetSavedAsQetzBeside: a .qet saved where it is leaves
the .qet byte for byte and writes a .qetz beside it holding what a plain
save of the .qet holds; it fails when the switch is off. In a real window:
Ctrl+S on perceuse.qet shows the notice, writes perceuse.qetz and leaves
perceuse.qet's md5 unchanged; the copy for an older version (reached by
command search) equals a plain save but for time_spent; a new project's
Save offers untitled.qetz. xdg-mime finds the type by name and by content.
ctest 96/96 with and without QET_LAZY_FOLIOS=1; srclint R-C clean.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Three new QUndoCommand subclasses (AddDiagramCommand, RemoveDiagramCommand,
MoveDiagramCommand) pushed onto the project's existing (already
project-scoped) undo stack, so folio structure edits are undoable
alongside every item-level edit already on that stack.
- QETProject::addDiagram()/detachDiagram() are the shared attach/detach
primitives: they mutate the diagram list, connect/disconnect the two
per-diagram signals set up at add time, and emit diagramAdded/
diagramRemoved. AddDiagramCommand and RemoveDiagramCommand call these
(via friend access) for both redo and undo, so a removed diagram is
parked rather than destroyed -- it's only actually deleted if the
command itself falls out of undo history while still detached.
- ProjectView reacts to diagramRemoved the same way it already reacted to
diagramAdded (tearing down/rebuilding the tab), so both directions of
both commands go through the same reactive path every other diagram
listener (project database, cross-references, generic panel) already
relies on.
- MoveDiagramCommand wraps a new ProjectView::setDiagramPosition(), which
performs the tab move and the project's diagramOrderChanged() list
reorder synchronously in one step, instead of relying on the queued
tabMoved connection (needed for interactive drag-and-drop) to catch up
later -- avoiding a second, redundant reorder from that queued call.
- Multi-folio delete and multi-folio move (QETDiagramEditor::removeDiagrams()
and the moveDiagram*(QList<Diagram*>) batch slots) wrap their per-diagram
loop in QUndoStack::beginMacro()/endMacro(), so a multi-select action is
one undo step, matching current UX.
- Softened the delete confirmation's "this change is irreversible" wording
now that it no longer is.
Verified headlessly (Xvfb + xdotool + scrot): add/undo/redo, delete/undo/
redo (single and multi-select, single undo step for the batch), and
move/undo/redo all behave correctly against a 7-folio project.
Disable the QTabWidget internal scroll buttons and add own buttons for
scroll 'one page left' and scroll 'one page right'. The scrolled
diagrams will be activated.
Like previous commit, in the method loadDiadrams() we call the method
diagramAdded(), in this method we call rebuildDiagramsMap()
updateAllTabsTitle() and these methods operate a loop for each existing
DiagramView.
Now loadDiagrams don't call diagramAdded (which must be used only when
user add a diagram during the use of QElectroTech) but make operations
itself and when all DiagramView are added, call rebuildDiagramsMap()
updateAllTabsTitle() only once.
Before this commit :
ElementPropertiesWidget emit a signal of Diagram to edit an element, and
the signal goes up from Diagram -> DiagramView -> ProjectView ->
QetDiagramEditor and QetDiagramEditor call a static function.
Now :
ElementPropertiesWidget call the static function itself and that all.
All unnecessary signals are removed.
When user finish the element pose mode, the element under the cursor is deleted, but continue to be show by the widget.
So, click on this element in the widget cause a crash.
This case come when user add element and go to another diagram without finish the pose mode, and open Xref link widget from an element in this other diagram.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4993 bfdf4180-ca20-0410-9c96-a3a8aa849046
the feature "clean project" does not clean unused elements yet
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4561 bfdf4180-ca20-0410-9c96-a3a8aa849046
Remove qetabwidget and qettabBar because are unused since this comit.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3809 bfdf4180-ca20-0410-9c96-a3a8aa849046
-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