QCAD
Open Source 2D CAD
EAction Class Reference

Base class for all ECMAScript based actions. More...

Inheritance diagram for EAction:
RActionAdapter RAction Batch2Pdf Block BlockExamples ChangeFontToArial CommandLine CommandLineExamples ConvertUnit Counter Cross DefaultAction DevDebug Dimension Draw DrawBasedOnRectanglePP DrawBasedOnRectangleSize DrawBasedOnThreeCircles DrawBoundingBox DrawExamples EcmaScriptShell Edit ExDirListing ExExportListener ExLineDove ExMandelbrot ExMinimal ExMinimal2 ExThreePoints ExWidget ExXmlExport ExXmlImport File FlipHorizontal FlipVertical FlushBackLog HatchFromSelection Help ImportPoints Information InputPreferences IOExamples LanguagePreferences Layer LayerCompatibility LayerExamples LayerList LineBoxJoint LineDove LineRadicalAxis ListenerExamples MathExamples MenusAndToolBars Misc MiscModify Modify ModifyExamples MyScripts Nesting NestingQuantity Offset PointPole PolylineBreakSymbol PropertyEditor QtExamples ReloadLinetypes Reset RunScript ScMirrored ScPrepare Select SelectByColor SelectByHandle ShowToolDialog Snap SnapXManual SnapYManual StatusBar TextPreferences ThemePreferences ToolBarPreferences UiPreferences View Widgets Window Zoom

Public Member Functions

void applyCommand (void event, void preview)
 High level event triggered when a command line command should be applied or previewed. More...
 
void applyOperation ()
 Applies the operation returned by this.getOperation(). More...
 
void beginEvent ()
 Called when the user starts this action by clicking a button, choosing a menu, entering a command, etc. More...
 
void commandEvent (void event)
 Default implementation. More...
 
void commandEventPreview (void event)
 Default implementation. More...
 
void complementOperation (void op)
 Can be reimplemented to complement the operation of an action. More...
 
void coordinateEvent (void event)
 Default implementation. More...
 
void coordinateEventPreview (void event)
 Default implementation. More...
 
void createDialog (void uiFile, void parent)
 Creates a new dialog based on the given UI file with the given parent. More...
 
void createWidget (void uiFile, void parent)
 Creates a new widget based on the given UI file with the given parent. More...
 
void EAction (void guiAction)
 
void enterEvent ()
 Called when user presses enter. More...
 
void entityPickEvent (void event)
 Default implementation. More...
 
void entityPickEventPreview (void event)
 Default implementation. More...
 
void escapeEvent ()
 Called when the user presses Escape or clicks the right mouse button. More...
 
void finishEvent ()
 Called when this action is terminated. More...
 
void getAuxPreview ()
 Called by updatePreview. More...
 
void getDocumentInterface ()
 
void getEntityId (void event, void preview, void selectable)
 
void getGraphicsView ()
 
void getGraphicsViews ()
 
void getHighlightedEntities ()
 Called by updatePreview. More...
 
void getOperation (void preview)
 Called by updatePreview. More...
 
void getScales ()
 
void getToolTitle ()
 
void handlePreviewError ()
 Called by updatePreview. More...
 
void hideOptionsToolBarWidgets (void widgets, void noSyncWidgets)
 Hides all widgets in the options tool bar which are shown in the tool dialog instead. More...
 
void hideUiOptions (void saveToSettings)
 Hides the UI options of this action. More...
 
void initDialog (void dialog)
 Called before dialog is shown. More...
 
void initState ()
 Called to initialize a new state of this action. More...
 
void initUiOptions (void resume, void optionsToolBar)
 Overwrite to initialize combo boxes and other UI elements of the options tool bar. More...
 
void isEntityEditable (void e)
 
void isEntitySnappable (void e)
 
void keyPressEvent (void event)
 Called when the user presses a key. More...
 
void keyReleaseEvent (void event)
 Called when the user releases a key. More...
 
void mouseDoubleClickEvent (void event)
 
void mousePressEvent (void event)
 Does nothing. More...
 
void mouseReleaseEvent (void event)
 
void pickCoordinate (void event, void preview)
 High level event triggered when a coordinate was specified by the user of a coordinate specification should be previewed. More...
 
void pickEntity (void event, void preview)
 High level event triggered when an entity was picked by the user or to preview picking an entity. More...
 
void propertyChangeEvent (void event)
 Allows all actions to handle property change events. More...
 
void resumeEvent ()
 Called whenever the action resumes its operation, for example after it was temporary suspended for another action. More...
 
void setArrowCursor ()
 Sets the current cursor of the current document interface (all views attached to it) to the normal arrow cursor. More...
 
void setCommandPrompt (void prompt)
 
void setCrosshairCursor ()
 Sets the current cursor of the current document interface (all views attached to it) to crosshair cursor. More...
 
void setCursor (void cursor, void name)
 
void setLeftMouseTip (void tip)
 
void setRightMouseTip (void tip)
 
void setState (void state)
 Set the state of this action. More...
 
void setUiOptions (void uiFile, void split)
 Sets the UI options toolbar content for this tool. More...
 
void showDialog ()
 Show dialog to enter some or all of the options. More...
 
void showUiOptions (void resume, void restoreFromSettings)
 Shows the UI options of this action if this.uiFile is set. More...
 
void simulateMouseMoveEvent ()
 
void slotReset ()
 Called if the user clicks the reset button of an action. More...
 
void suspendEvent ()
 Called whenever the action is suspended, for example if another action is started while this action is active. More...
 
void updatePreview (void clear)
 Updates the preview based on the operation returned by getOperation and the auxiliary construction returned be getAuxPreview. More...
 
- Public Member Functions inherited from RActionAdapter
virtual void commandEvent (RCommandEvent &)
 Called when a command is entered in the command line. More...
 
virtual void commandEventPreview (RCommandEvent &)
 Called when a command is being edited in the command line. More...
 
virtual void coordinateEvent (RCoordinateEvent &)
 Called for every coordinate event. More...
 
virtual void coordinateEventPreview (RCoordinateEvent &)
 Called if the action is in PickCoordinate mode and the mouse is moved around. More...
 
virtual void entityPickEvent (REntityPickEvent &)
 
virtual void entityPickEventPreview (REntityPickEvent &)
 
virtual void keyPressEvent (QKeyEvent &)
 
virtual void keyReleaseEvent (QKeyEvent &)
 
virtual void mouseDoubleClickEvent (RMouseEvent &)
 Called on mouse double click events. More...
 
virtual void mouseMoveEvent (RMouseEvent &)
 Called on mouse move events. More...
 
virtual void mousePressEvent (RMouseEvent &)
 Called on mouse press events. More...
 
virtual void mouseReleaseEvent (RMouseEvent &)
 Called on mouse release events. More...
 
virtual void panGestureEvent (QPanGesture &)
 Called on pan gesture events. More...
 
virtual void pinchGestureEvent (QPinchGesture &)
 Called on pinch gesture events. More...
 
virtual void propertyChangeEvent (RPropertyEvent &)
 Called when the value of a property is modified while this action is active. More...
 
 RActionAdapter (RGuiAction *guiAction=NULL)
 
virtual void setGraphicsView (RGraphicsView *)
 Called if this action is set as a navigation action of a graphics view. More...
 
virtual void swipeGestureEvent (QSwipeGesture &)
 Called on swipe gesture events. More...
 
virtual void tabletEvent (RTabletEvent &)
 Called on tablet events. More...
 
virtual void wheelEvent (RWheelEvent &)
 Called on mouse wheel events. More...
 
virtual void zoomChangeEvent (RGraphicsView &)
 Called when the zoom factor or offset changed in the given view. More...
 
virtual ~RActionAdapter ()
 
- Public Member Functions inherited from RAction
RAction::ClickMode getClickMode ()
 
RDocumentgetDocument ()
 
RDocumentInterfacegetDocumentInterface ()
 
QList< RGraphicsScene * > getGraphicsScenes ()
 
virtual RGuiActiongetGuiAction ()
 
RActiongetOverrideBase ()
 
RStoragegetStorage ()
 
QString getUniqueGroup ()
 
bool hasNoState ()
 
bool isOverride ()
 
bool isTerminated ()
 
 RAction (RGuiAction *guiAction=NULL)
 Copyright (c) 2011-2018 by Andrew Mustun. More...
 
void setClickMode (RAction::ClickMode m)
 Sets the current click mode. More...
 
void setDocumentInterface (RDocumentInterface *di)
 
void setGuiAction (RGuiAction *guiAction)
 
void setNoState (bool on=true)
 
void setOverride ()
 
void setOverrideBase (RAction *base)
 
void setUniqueGroup (const QString &ug)
 
RVector snap (RMouseEvent &event)
 Uses the currently active snap function to snap to the closest object or grid point. More...
 
void terminate ()
 Terminates the action. More...
 
virtual ~RAction ()
 

Public Attributes

int additionalOptionsToolBars
 
int delegate
 
int dialogUiFile
 
int guiAction
 
int includeBasePath
 
int optionsToolBarEnabled
 
int optOutRelativeZeroResume
 
int relativeZeroPos
 
int resuming
 
int settingsGroup
 
int splitUiOptions
 
int state
 
int uiFile
 
int useDialog
 
int waitingForContextMenu
 

Additional Inherited Members

- Public Types inherited from RAction
enum  ClickMode { PickCoordinate, PickCoordinateNoSnap, PickEntity, PickingDisabled }
 Current mouse click mode. More...
 
- Protected Attributes inherited from RAction
RAction::ClickMode clickMode
 
RDocumentInterfacedocumentInterface
 
RGuiActionguiAction
 
bool noState
 Indicates whether this action is stateless (i.e. More...
 
bool override
 
RActionoverrideBase
 
bool terminated
 
QString uniqueGroup
 

Detailed Description

Base class for all ECMAScript based actions.

Constructor & Destructor Documentation

◆ EAction()

void EAction::EAction ( void  guiAction)
inline

Member Function Documentation

◆ applyCommand()

void EAction::applyCommand ( void  event,
void  preview 
)
inline

High level event triggered when a command line command should be applied or previewed.

◆ applyOperation()

void EAction::applyOperation ( )
inlinevirtual

Applies the operation returned by this.getOperation().

Reimplemented from RActionAdapter.

Reimplemented in ClipboardOperation, Reverse, and Delete.

◆ beginEvent()

void EAction::beginEvent ( )
inlinevirtual

Called when the user starts this action by clicking a button, choosing a menu, entering a command, etc.

Shows the GUI elements that refer to this action as checked. Displays GUI options if this.uiFile is set to a valid UI file. Displays tool help in Help Viewer if available.

Reimplemented from RActionAdapter.

Reimplemented in Print, PropertyEditor, BlockList, AbstractPreferences, LayerList, Projection, Stretch, Information, InfoArcCircleArea, ExRegisterFileExporter, ScMirrored, BreakOutManual, BreakOut, Nesting, File, FlexPainter, Select, SnapCoordinate, DevDebug, Counter, CommandLine, Bevel, IsometricGridTop, Explode, FlipHorizontal, Scale, PanZoom, LibraryBrowser, ClipboardOperation, PolylineBreakSymbol, RestrictAngleLength, SnapDistance, Layer, WindowZoom, CheckForUpdates, ToFront, DrawingPreferences, Esc, BitmapExport, RecentFiles, SvgImport, BrowseUserManual, FAQ, Forum, ReportBug, ReportTranslationError, ShowReadme, Website, MolImport, MenusAndToolBars, MyAction, PersistentWidgets, ToBack, FlipVertical, Modify, CommandLineFocus, DisplayDistanceAngle, OptionsToolBarFocus, ToolMatrixFocus, AutoZoom, PreviousView, ZoomIn, ZoomOut, ZoomToSelection, CloseAll, NextWindow, PreviousWindow, LineDove, InfoPolylineArea, LineBoxJoint, Translate, SelectContour, SnapIntersectionManual, AntialiasingMode, DraftMode, ExRegisterFileImporter, LineRadicalAxis, EditText, Offset, Rotate, Trim, Edit, About, InfoDistanceEE, Misc, TextAlong, EditHatch, Rotate2, Snap, View, Zoom, Lengthen, Divide, SelectIntersectedEntities, SnapMiddleManual, SnapXManual, ImportFile, EditLayer, ExAddBlock, ExMandelbrot, Mirror, NewFile, InfoAngle, InfoDistanceEP, ExDrawColors, ExMathSpiral, EcmaScriptShell, PointPole, InfoArea, InfoDistancePP, InfoPosition, ExXmlImport, BreakOutGap, OffsetThrough, SelectLayerByEntity, SnapDistanceManual, SnapYManual, AddLayer, SelectLayer, ExLineDove, ExTransactionListener, BlockFixNames, DrawBoundingBox, SelectByColor, SnapCoordinatePolar, ToggleGrid, ConvertUnit, Delete, Duplicate, Paste, DeselectLayer, HideAllLayers, LockAllLayers, ShowAllLayers, ToggleLayerLock, ToggleLayerVisibility, UnlockAllLayers, ExThreePoints, ExDumpPolyline, ExXmlExport, ExDirListing, ExResizeWindow, Cross, ImportPoints, SelectByHandle, IsometricProjection, DeselectAll, SelectAll, SelectRectangle, LockRelativeZero, SetRelativeZero, Redo, Undo, OpenFile, Save, RemoveLayer, ShowActiveLayer, ExDrawFonts, ExText, ExAddLayer, ExLayerCustomProperty, ExMainWindow, ExProcess, ExWidget, BlockListAttributes, BlockListExport, RunScript, ModifyCorner, Reverse, TrimBoth, NestingQuantity, InvertSelection, RestrictHorizontal, RestrictOff, RestrictOrthogonal, RestrictVertical, SnapAuto, SnapCenter, SnapEnd, SnapFree, SnapGrid, SnapIntersection, SnapMiddle, SnapOnEntity, SnapPerpendicular, SnapReference, SnapSelectionCenter, SnapTangential, PrintCurrentView, ExDeleteObject, Reset, CloseFile, PdfExport, SaveAs, ChangeFontToArial, FlushBackLog, ReloadLinetypes, SplineToLine, ScPrepare, StatusBar, LinetypeMode, Batch2Pdf, ExMinimal, and ExMinimal2.

◆ commandEvent()

void EAction::commandEvent ( void  event)
inline

Default implementation.

Calls applyCommand(event, false)

◆ commandEventPreview()

void EAction::commandEventPreview ( void  event)
inline

Default implementation.

Calls applyCommand(event, true)

◆ complementOperation()

void EAction::complementOperation ( void  op)
inline

Can be reimplemented to complement the operation of an action.

◆ coordinateEvent()

void EAction::coordinateEvent ( void  event)
inline

Default implementation.

Calls pickCoordinate(event, false)

◆ coordinateEventPreview()

void EAction::coordinateEventPreview ( void  event)
inline

Default implementation.

Calls pickCoordinate(event, true)

◆ createDialog()

void EAction::createDialog ( void  uiFile,
void  parent 
)
inline

Creates a new dialog based on the given UI file with the given parent.

This is a helper function for WidgetFactory.createDialog.

◆ createWidget()

void EAction::createWidget ( void  uiFile,
void  parent 
)
inline

Creates a new widget based on the given UI file with the given parent.

This is a helper function for WidgetFactory.createWidget.

◆ enterEvent()

void EAction::enterEvent ( )
inlinevirtual

Called when user presses enter.

Default implementation calls showDialog if configured.

Reimplemented from RActionAdapter.

Reimplemented in Nesting.

◆ entityPickEvent()

void EAction::entityPickEvent ( void  event)
inline

Default implementation.

Calls pickEntity(event, false)

◆ entityPickEventPreview()

void EAction::entityPickEventPreview ( void  event)
inline

Default implementation.

Calls pickEntity(event, true)

◆ escapeEvent()

void EAction::escapeEvent ( )
inlinevirtual

◆ finishEvent()

void EAction::finishEvent ( )
inlinevirtual

Called when this action is terminated.

Shows the GUI elements that refer to this action as un-checked. Hides GUI options if this.uiFile is set to a valid UI file. Clears up mouse tips, etc.

Reimplemented from RActionAdapter.

Reimplemented in PanZoom, WindowZoom, PropertyEditor, BlockList, LayerList, CommandLine, LibraryBrowser, IsometricGridTop, Transform, Snap, ImportFile, AntialiasingMode, DraftMode, EcmaScriptShell, SnapIntersectionManual, ToggleGrid, LockRelativeZero, PrintCurrentView, and LinetypeMode.

◆ getAuxPreview()

void EAction::getAuxPreview ( )
inline

Called by updatePreview.

Implementations must return an array of RShape objects that should be displayed as auxiliary construction.

◆ getDocumentInterface()

void EAction::getDocumentInterface ( )
inline

◆ getEntityId()

void EAction::getEntityId ( void  event,
void  preview,
void  selectable 
)
inline

◆ getGraphicsView()

void EAction::getGraphicsView ( )
inline

◆ getGraphicsViews()

void EAction::getGraphicsViews ( )
inline

◆ getHighlightedEntities()

void EAction::getHighlightedEntities ( )
inline

Called by updatePreview.

Implementations must return an array of entity IDs which should be highlighted.

◆ getOperation()

void EAction::getOperation ( void  preview)
inline

Called by updatePreview.

Implementations must return an ROperation subclass object for the operation that should be previewed.

◆ getScales()

void EAction::getScales ( )
inline

◆ getToolTitle()

void EAction::getToolTitle ( )
inline

◆ handlePreviewError()

void EAction::handlePreviewError ( )
inline

Called by updatePreview.

Implementations must handle errors during preview.

◆ hideOptionsToolBarWidgets()

void EAction::hideOptionsToolBarWidgets ( void  widgets,
void  noSyncWidgets 
)
inline

Hides all widgets in the options tool bar which are shown in the tool dialog instead.

◆ hideUiOptions()

void EAction::hideUiOptions ( void  saveToSettings)
inline

Hides the UI options of this action.

Usually this function does not need to be called directly by implementing actions.

Parameters
saveToSettingsif true, the state is saved to settings

◆ initDialog()

void EAction::initDialog ( void  dialog)
inline

Called before dialog is shown.

Default implementation does nothing.

◆ initState()

void EAction::initState ( )
inline

Called to initialize a new state of this action.

Overwrite to set mouse tips, show desired toolbars, etc.

◆ initUiOptions()

void EAction::initUiOptions ( void  resume,
void  optionsToolBar 
)
inline

Overwrite to initialize combo boxes and other UI elements of the options tool bar.

◆ isEntityEditable()

void EAction::isEntityEditable ( void  e)
inline

◆ isEntitySnappable()

void EAction::isEntitySnappable ( void  e)
inline

◆ keyPressEvent()

void EAction::keyPressEvent ( void  event)
inline

Called when the user presses a key.

By default, the event is ignored.

◆ keyReleaseEvent()

void EAction::keyReleaseEvent ( void  event)
inline

Called when the user releases a key.

By default, the event is ignored.

◆ mouseDoubleClickEvent()

void EAction::mouseDoubleClickEvent ( void  event)
inline

◆ mousePressEvent()

void EAction::mousePressEvent ( void  event)
inline

Does nothing.

Needs to be implemented here to avoid recursion when child classes call the base class implementation.

◆ mouseReleaseEvent()

void EAction::mouseReleaseEvent ( void  event)
inline

◆ pickCoordinate()

void EAction::pickCoordinate ( void  event,
void  preview 
)
inline

High level event triggered when a coordinate was specified by the user of a coordinate specification should be previewed.

◆ pickEntity()

void EAction::pickEntity ( void  event,
void  preview 
)
inline

High level event triggered when an entity was picked by the user or to preview picking an entity.

◆ propertyChangeEvent()

void EAction::propertyChangeEvent ( void  event)
inline

Allows all actions to handle property change events.

This is necessary to ensure that properties can be changed even if a tool is active (e.g. while drawing lines).

◆ resumeEvent()

void EAction::resumeEvent ( )
inlinevirtual

Called whenever the action resumes its operation, for example after it was temporary suspended for another action.

Reimplemented from RActionAdapter.

Reimplemented in Information, and CloseFile.

◆ setArrowCursor()

void EAction::setArrowCursor ( )
inline

Sets the current cursor of the current document interface (all views attached to it) to the normal arrow cursor.

◆ setCommandPrompt()

void EAction::setCommandPrompt ( void  prompt)
inline

◆ setCrosshairCursor()

void EAction::setCrosshairCursor ( )
inline

Sets the current cursor of the current document interface (all views attached to it) to crosshair cursor.

◆ setCursor()

void EAction::setCursor ( void  cursor,
void  name 
)
inline

◆ setLeftMouseTip()

void EAction::setLeftMouseTip ( void  tip)
inline

◆ setRightMouseTip()

void EAction::setRightMouseTip ( void  tip)
inline

◆ setState()

void EAction::setState ( void  state)
inline

Set the state of this action.

Action implementations overwrite this function to initialize this action for the given state. This includes setting the appropriate click mode, displaying the appropriate CAD toolbar, setting mouse tips, mouse cursor, etc.

◆ setUiOptions()

void EAction::setUiOptions ( void  uiFile,
void  split 
)
inline

Sets the UI options toolbar content for this tool.

By default, a tool shows the options toolbar defined in "DefaultOptions.ui".

Parameters
uiFileA path to a single UI file or an array of UI file paths.
splitIf true, the options are split up into multiple toolbars.

◆ showDialog()

void EAction::showDialog ( )
inline

Show dialog to enter some or all of the options.

The default implementation creates a dialog based on this.dialogUiFile. Widgets in the options tool bar which have the property "MoveToDialog" or "HideInDialogMode" set are hidden in the options tool bar.

◆ showUiOptions()

void EAction::showUiOptions ( void  resume,
void  restoreFromSettings 
)
inline

Shows the UI options of this action if this.uiFile is set.

UI options are typically shown in a horizontal toolbar at the top of the drawing area.

Usually this function does not need to be called directly by implementing actions.

Parameters
resumeAction was resumed from suspension.
restoreFromSettingsRestore settings from document / config file (default).

◆ simulateMouseMoveEvent()

void EAction::simulateMouseMoveEvent ( )
inline

◆ slotReset()

void EAction::slotReset ( )
inline

Called if the user clicks the reset button of an action.

A reset button may be displayed as part of the UI options of this action and must have the object name "Reset".

◆ suspendEvent()

void EAction::suspendEvent ( )
inlinevirtual

Called whenever the action is suspended, for example if another action is started while this action is active.

Reimplemented from RActionAdapter.

◆ updatePreview()

void EAction::updatePreview ( void  clear)
inlinevirtual

Updates the preview based on the operation returned by getOperation and the auxiliary construction returned be getAuxPreview.

Parameters
clearTrue to clear the preview first. This is necessary if the preview is updated not as a result of a mouse move event, e.g. when changing action parameters in the options toolbar.

Reimplemented from RActionAdapter.

Member Data Documentation

◆ additionalOptionsToolBars

int EAction::additionalOptionsToolBars

◆ delegate

int EAction::delegate

◆ dialogUiFile

int EAction::dialogUiFile

◆ guiAction

int EAction::guiAction

◆ includeBasePath

int EAction::includeBasePath

◆ optionsToolBarEnabled

int EAction::optionsToolBarEnabled

◆ optOutRelativeZeroResume

int EAction::optOutRelativeZeroResume

◆ relativeZeroPos

int EAction::relativeZeroPos

◆ resuming

int EAction::resuming

◆ settingsGroup

int EAction::settingsGroup

◆ splitUiOptions

int EAction::splitUiOptions

◆ state

int EAction::state

◆ uiFile

int EAction::uiFile

◆ useDialog

int EAction::useDialog

◆ waitingForContextMenu

int EAction::waitingForContextMenu

The documentation for this class was generated from the following file: