![]() |
LibrePCB Developers Documentation
|
The UndoCommand class represents a command which you can undo/redo. More...
#include <undocommand.h>
Public Member Functions | |
UndoCommand ()=delete | |
UndoCommand (const UndoCommand &other)=delete | |
UndoCommand (const QString &text) noexcept | |
virtual | ~UndoCommand () noexcept |
const QString & | getText () const noexcept |
bool | wasEverExecuted () const noexcept |
This method shows whether that command was ever executed (execute() called successfully) More... | |
bool | wasEverReverted () const noexcept |
This method shows whether that command was ever reverted (undo() called at least one time) More... | |
bool | isCurrentlyExecuted () const noexcept |
This method shows whether that command is currently executed (redo() called one time more than undo()) More... | |
virtual bool | execute () final |
Execute the command (must only be called once) More... | |
virtual void | undo () final |
Undo the command. More... | |
virtual void | redo () final |
Redo the command. More... | |
UndoCommand & | operator= (const UndoCommand &rhs)=delete |
Protected Member Functions | |
virtual bool | performExecute ()=0 |
Execute the command the first time. More... | |
virtual void | performUndo ()=0 |
Undo the command. More... | |
virtual void | performRedo ()=0 |
Redo the command. More... | |
Private Attributes | |
QString | mText |
bool | mIsExecuted |
Shows whether execute() was called or not. More... | |
int | mRedoCount |
Counter of how often redo() was called. More... | |
int | mUndoCount |
Counter of how often undo() was called. More... | |
The UndoCommand class represents a command which you can undo/redo.
See description of librepcb::editor::UndoStack for more details about the whole concept.
|
delete |
|
delete |
|
explicitnoexcept |
|
virtualnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
This method shows whether that command was ever executed (execute() called successfully)
|
inlinenoexcept |
This method shows whether that command was ever reverted (undo() called at least one time)
|
inlinenoexcept |
|
finalvirtual |
Execute the command (must only be called once)
true | If the command has done some changes |
false | If the command has done nothing (the command can be deleted) |
|
finalvirtual |
Undo the command.
|
finalvirtual |
Redo the command.
|
delete |
|
protectedpure virtual |
Execute the command the first time.
true | If the command has done some changes |
false | If the command has done nothing (the command can be deleted) |
Implemented in CmdRemoveBoardItems, CmdDragSelectedBoardItems, CmdStrokeTextEdit, CmdFootprintPadEdit, CmdDragSelectedFootprintItems, CmdBoardStrokeTextEdit, CmdTextEdit, UndoCommandGroup, CmdCircleEdit, CmdDragSelectedSymbolItems, CmdPolygonEdit, CmdBoardPolygonEdit, CmdHoleEdit, CmdSymbolPinEdit, CmdBoardPlaneEdit, CmdZoneEdit, CmdBoardZoneEdit, CmdAddDeviceToBoard, CmdBoardEdit, CmdBoardHoleEdit, CmdBoardNetSegmentAddElements, CmdDeviceInstanceEdit, CmdComponentSymbolVariantItemEdit, CmdLibraryBaseElementEdit, CmdAddSymbolToSchematic, CmdBoardViaEdit, CmdDragSelectedSchematicItems, CmdProjectEdit, CmdComponentSymbolVariantEdit, CmdFootprintEdit, CmdPasteFootprintItems, CmdAddComponentToCircuit, CmdComponentInstanceAdd, CmdPasteBoardItems, CmdAttributeEdit, CmdComponentPinSignalMapItemEdit, CmdComponentSignalEdit, CmdComponentInstanceEdit, CmdPasteSchematicItems, CmdPasteSymbolItems, CmdSchematicNetLabelEdit, CmdSchematicNetSegmentAddElements, CmdSymbolInstanceEdit, CmdDevicePadSignalMapItemEdit, CmdAssemblyVariantEdit, CmdCombineSchematicNetSegments, CmdNetSignalAdd, CmdPackagePadEdit, CmdListElementInsert< T, P, OnEditedArgs >, CmdDeviceEdit, CmdPackageModelAdd, CmdPackageModelEdit, CmdPartEdit, CmdCombineBoardNetSegments, CmdSchematicNetPointEdit, CmdListElementRemove< T, P, OnEditedArgs >, CmdComponentEdit, CmdLibraryEdit, CmdPackageModelRemove, CmdBoardNetPointEdit, CmdBoardNetSegmentRemoveElements, CmdChangeNetSignalOfSchematicNetSegment, CmdRemoveSelectedSchematicItems, CmdSchematicEdit, CmdAssemblyVariantAdd, CmdAssemblyVariantRemove, CmdBoardAdd, CmdBoardNetLineEdit, CmdBoardSplitNetLine, CmdCombineAllNetSignalsUnderSchematicNetPoint, CmdSchematicAdd, CmdSchematicNetSegmentAdd, CmdLibraryElementEdit, CmdRemoveSelectedFootprintItems, CmdRemoveSelectedSymbolItems, CmdBoardNetSegmentAdd, CmdNetClassAdd, CmdNetSignalEdit, CmdReplaceDevice, CmdSchematicNetSegmentRemoveElements, CmdListElementsSwap< T, P, OnEditedArgs >, CmdLibraryCategoryEdit, CmdPackageEdit, CmdNetClassEdit, CmdRemoveSelectedBoardItems, CmdSchematicPolygonRemove, CmdBoardHoleAdd, CmdBoardNetSegmentEdit, CmdBoardStrokeTextAdd, CmdFlipSelectedBoardItems, CmdProjectLibraryAddElement< ElementType >, CmdSchematicNetSegmentEdit, CmdSchematicPolygonAdd, CmdSchematicTextRemove, CmdDeviceInstanceAdd, CmdSchematicNetLabelAdd, CmdSchematicTextAdd, CmdCombineNetSignals, CmdCompSigInstSetNetSignal, CmdProjectLibraryRemoveElement< ElementType >, CmdSchematicNetLabelRemove, CmdSymbolInstanceAdd, CmdBoardHoleRemove, CmdBoardNetSegmentRemove, CmdBoardPlaneAdd, CmdBoardPlaneRemove, CmdBoardPolygonAdd, CmdBoardPolygonRemove, CmdBoardRemove, CmdBoardStrokeTextRemove, CmdBoardZoneAdd, CmdBoardZoneRemove, CmdComponentInstanceRemove, CmdDeviceInstanceRemove, CmdDeviceStrokeTextAdd, CmdDeviceStrokeTextRemove, CmdNetSignalRemove, CmdRemoveUnusedNetSignals, CmdSchematicNetSegmentRemove, CmdSchematicRemove, CmdSymbolInstanceRemove, CmdSymbolInstanceTextAdd, CmdSymbolInstanceTextRemove, CmdDeviceStrokeTextsReset, CmdNetClassRemove, CmdSymbolInstanceTextsReset, and CmdRemoveUnusedLibraryElements.
|
protectedpure virtual |
Undo the command.
Implemented in CmdStrokeTextEdit, CmdFootprintPadEdit, CmdBoardStrokeTextEdit, CmdTextEdit, UndoCommandGroup, CmdCircleEdit, CmdPolygonEdit, CmdBoardPolygonEdit, CmdHoleEdit, CmdSymbolPinEdit, CmdBoardPlaneEdit, CmdZoneEdit, CmdBoardZoneEdit, CmdBoardEdit, CmdBoardHoleEdit, CmdBoardNetSegmentAddElements, CmdDeviceInstanceEdit, CmdComponentSymbolVariantItemEdit, CmdLibraryBaseElementEdit, CmdBoardViaEdit, CmdProjectEdit, CmdComponentSymbolVariantEdit, CmdFootprintEdit, CmdComponentInstanceAdd, CmdAttributeEdit, CmdListElementInsert< T, P, OnEditedArgs >, CmdListElementRemove< T, P, OnEditedArgs >, CmdComponentPinSignalMapItemEdit, CmdComponentSignalEdit, CmdComponentInstanceEdit, CmdSchematicNetLabelEdit, CmdSchematicNetSegmentAddElements, CmdSymbolInstanceEdit, CmdDevicePadSignalMapItemEdit, CmdAssemblyVariantEdit, CmdNetSignalAdd, CmdPackagePadEdit, CmdDeviceEdit, CmdPackageModelAdd, CmdPackageModelEdit, CmdPartEdit, CmdSchematicNetPointEdit, CmdListElementsSwap< T, P, OnEditedArgs >, CmdComponentEdit, CmdLibraryEdit, CmdPackageModelRemove, CmdBoardNetPointEdit, CmdBoardNetSegmentRemoveElements, CmdSchematicEdit, CmdAssemblyVariantAdd, CmdAssemblyVariantRemove, CmdBoardAdd, CmdBoardNetLineEdit, CmdSchematicAdd, CmdSchematicNetSegmentAdd, CmdLibraryElementEdit, CmdBoardNetSegmentAdd, CmdNetClassAdd, CmdNetSignalEdit, CmdSchematicNetSegmentRemoveElements, CmdLibraryCategoryEdit, CmdPackageEdit, CmdNetClassEdit, CmdRemoveSelectedBoardItems, CmdSchematicPolygonRemove, CmdBoardHoleAdd, CmdBoardNetSegmentEdit, CmdBoardStrokeTextAdd, CmdProjectLibraryAddElement< ElementType >, CmdSchematicNetSegmentEdit, CmdSchematicPolygonAdd, CmdSchematicTextRemove, CmdDeviceInstanceAdd, CmdSchematicNetLabelAdd, CmdSchematicTextAdd, CmdCompSigInstSetNetSignal, CmdProjectLibraryRemoveElement< ElementType >, CmdSchematicNetLabelRemove, CmdSymbolInstanceAdd, CmdBoardHoleRemove, CmdBoardNetSegmentRemove, CmdBoardPlaneAdd, CmdBoardPlaneRemove, CmdBoardPolygonAdd, CmdBoardPolygonRemove, CmdBoardRemove, CmdBoardStrokeTextRemove, CmdBoardZoneAdd, CmdBoardZoneRemove, CmdComponentInstanceRemove, CmdDeviceInstanceRemove, CmdDeviceStrokeTextAdd, CmdDeviceStrokeTextRemove, CmdNetSignalRemove, CmdSchematicNetSegmentRemove, CmdSchematicRemove, CmdSymbolInstanceRemove, CmdSymbolInstanceTextAdd, CmdSymbolInstanceTextRemove, and CmdNetClassRemove.
|
protectedpure virtual |
Redo the command.
Implemented in CmdStrokeTextEdit, CmdFootprintPadEdit, CmdBoardStrokeTextEdit, CmdTextEdit, UndoCommandGroup, CmdCircleEdit, CmdPolygonEdit, CmdBoardPolygonEdit, CmdHoleEdit, CmdSymbolPinEdit, CmdBoardPlaneEdit, CmdZoneEdit, CmdBoardZoneEdit, CmdBoardEdit, CmdBoardHoleEdit, CmdBoardNetSegmentAddElements, CmdDeviceInstanceEdit, CmdComponentSymbolVariantItemEdit, CmdLibraryBaseElementEdit, CmdBoardViaEdit, CmdProjectEdit, CmdComponentSymbolVariantEdit, CmdFootprintEdit, CmdComponentInstanceAdd, CmdAttributeEdit, CmdListElementInsert< T, P, OnEditedArgs >, CmdListElementRemove< T, P, OnEditedArgs >, CmdComponentPinSignalMapItemEdit, CmdComponentSignalEdit, CmdComponentInstanceEdit, CmdSchematicNetLabelEdit, CmdSchematicNetSegmentAddElements, CmdSymbolInstanceEdit, CmdDevicePadSignalMapItemEdit, CmdAssemblyVariantEdit, CmdNetSignalAdd, CmdPackagePadEdit, CmdDeviceEdit, CmdPackageModelAdd, CmdPackageModelEdit, CmdPartEdit, CmdSchematicNetPointEdit, CmdListElementsSwap< T, P, OnEditedArgs >, CmdComponentEdit, CmdLibraryEdit, CmdPackageModelRemove, CmdBoardNetPointEdit, CmdBoardNetSegmentRemoveElements, CmdSchematicEdit, CmdAssemblyVariantAdd, CmdAssemblyVariantRemove, CmdBoardAdd, CmdBoardNetLineEdit, CmdSchematicAdd, CmdSchematicNetSegmentAdd, CmdLibraryElementEdit, CmdBoardNetSegmentAdd, CmdNetClassAdd, CmdNetSignalEdit, CmdSchematicNetSegmentRemoveElements, CmdLibraryCategoryEdit, CmdPackageEdit, CmdNetClassEdit, CmdRemoveSelectedBoardItems, CmdSchematicPolygonRemove, CmdBoardHoleAdd, CmdBoardNetSegmentEdit, CmdBoardStrokeTextAdd, CmdProjectLibraryAddElement< ElementType >, CmdSchematicNetSegmentEdit, CmdSchematicPolygonAdd, CmdSchematicTextRemove, CmdDeviceInstanceAdd, CmdSchematicNetLabelAdd, CmdSchematicTextAdd, CmdCompSigInstSetNetSignal, CmdProjectLibraryRemoveElement< ElementType >, CmdSchematicNetLabelRemove, CmdSymbolInstanceAdd, CmdBoardHoleRemove, CmdBoardNetSegmentRemove, CmdBoardPlaneAdd, CmdBoardPlaneRemove, CmdBoardPolygonAdd, CmdBoardPolygonRemove, CmdBoardRemove, CmdBoardStrokeTextRemove, CmdBoardZoneAdd, CmdBoardZoneRemove, CmdComponentInstanceRemove, CmdDeviceInstanceRemove, CmdDeviceStrokeTextAdd, CmdDeviceStrokeTextRemove, CmdNetSignalRemove, CmdSchematicNetSegmentRemove, CmdSchematicRemove, CmdSymbolInstanceRemove, CmdSymbolInstanceTextAdd, CmdSymbolInstanceTextRemove, and CmdNetClassRemove.
|
private |
|
private |
Shows whether execute() was called or not.
|
private |
Counter of how often redo() was called.
|
private |
Counter of how often undo() was called.