20#ifndef LIBREPCB_EDITOR_SCHEMATICEDITORSTATE_SELECT_H
21#define LIBREPCB_EDITOR_SCHEMATICEDITORSTATE_SELECT_H
50class CmdDragSelectedSchematicItems;
72 virtual
bool entry() noexcept override;
73 virtual
bool exit() noexcept override;
82 virtual
bool processMirror(Qt::Orientation orientation) noexcept override;
105 const
Point& startPos) noexcept;
113 const QVector<
int> vertices) noexcept;
115 const
Point& pos) noexcept;
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
The Polygon class.
Definition polygon.h:45
The SI_NetLabel class.
Definition si_netlabel.h:49
The SI_Polygon class represents a polygon in a schematic.
Definition si_polygon.h:47
The SI_Symbol class.
Definition si_symbol.h:54
The Text class.
Definition text.h:48
The "select" state/tool of the schematic editor (default state)
Definition schematiceditorstate_select.h:60
SchematicEditorState_Select()=delete
virtual bool processEditProperties() noexcept override
Definition schematiceditorstate_select.cpp:244
virtual bool processGraphicsSceneMouseMoved(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematiceditorstate_select.cpp:313
void openTextPropertiesDialog(Text &text) noexcept
Definition schematiceditorstate_select.cpp:994
bool mirrorSelectedItems(Qt::Orientation orientation) noexcept
Definition schematiceditorstate_select.cpp:747
bool startMovingSelectedItems(SchematicGraphicsScene &scene, const Point &startPos) noexcept
Definition schematiceditorstate_select.cpp:701
virtual bool processGraphicsSceneRightMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematiceditorstate_select.cpp:505
bool copySelectedItemsToClipboard() noexcept
Definition schematiceditorstate_select.cpp:864
virtual bool processRemove() noexcept override
Definition schematiceditorstate_select.cpp:233
bool rotateSelectedItems(const Angle &angle) noexcept
Definition schematiceditorstate_select.cpp:726
virtual bool processGraphicsSceneLeftMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematiceditorstate_select.cpp:438
std::unique_ptr< CmdPolygonEdit > mCmdPolygonEdit
The polygon edit command (nullptr if not editing)
Definition schematiceditorstate_select.h:146
virtual bool processGraphicsSceneLeftMouseButtonPressed(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematiceditorstate_select.cpp:352
virtual bool processAbortCommand() noexcept override
Definition schematiceditorstate_select.cpp:278
virtual bool processPaste() noexcept override
Definition schematiceditorstate_select.cpp:171
bool removeSelectedItems() noexcept
Definition schematiceditorstate_select.cpp:804
virtual bool processResetAllTexts() noexcept override
Definition schematiceditorstate_select.cpp:223
virtual bool processRotate(const Angle &rotation) noexcept override
Definition schematiceditorstate_select.cpp:191
virtual bool processSelectAll() noexcept override
Definition schematiceditorstate_select.cpp:140
std::unique_ptr< QTimer > mUpdateAvailableFeaturesTimer
Delay timer for updateAvailableFeatures(), only when in this state.
Definition schematiceditorstate_select.h:152
SchematicEditorState_Select(const SchematicEditorState_Select &other)=delete
virtual bool processGraphicsSceneLeftMouseButtonDoubleClicked(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematiceditorstate_select.cpp:480
SI_Polygon * mSelectedPolygon
The current polygon selected for editing (nullptr if none)
Definition schematiceditorstate_select.h:142
bool pasteFromClipboard() noexcept
Definition schematiceditorstate_select.cpp:880
QList< QMetaObject::Connection > mConnections
Signal/slot connections only when in this state.
Definition schematiceditorstate_select.h:149
bool findPolygonVerticesAtPosition(const Point &pos) noexcept
Definition schematiceditorstate_select.cpp:931
virtual bool processCut() noexcept override
Definition schematiceditorstate_select.cpp:151
void updateAvailableFeatures() noexcept
Definition schematiceditorstate_select.cpp:1006
bool resetAllTextsOfSelectedItems() noexcept
Definition schematiceditorstate_select.cpp:788
bool moveSelectedItems(const Point &delta) noexcept
Definition schematiceditorstate_select.cpp:710
virtual bool exit() noexcept override
Definition schematiceditorstate_select.cpp:107
void startAddingPolygonVertex(SI_Polygon &polygon, int vertex, const Point &pos) noexcept
Definition schematiceditorstate_select.cpp:845
void scheduleUpdateAvailableFeatures() noexcept
Definition schematiceditorstate_select.cpp:1002
void openSymbolPropertiesDialog(SI_Symbol &symbol) noexcept
Definition schematiceditorstate_select.cpp:970
QVector< int > mSelectedPolygonVertices
The polygon vertex indices selected for editing (empty if none)
Definition schematiceditorstate_select.h:144
virtual bool processSnapToGrid() noexcept override
Definition schematiceditorstate_select.cpp:213
void removePolygonVertices(Polygon &polygon, const QVector< int > vertices) noexcept
Definition schematiceditorstate_select.cpp:819
bool openPropertiesDialog(std::shared_ptr< QGraphicsItem > item) noexcept
Definition schematiceditorstate_select.cpp:951
void openNetLabelPropertiesDialog(SI_NetLabel &netlabel) noexcept
Definition schematiceditorstate_select.cpp:979
Point mStartPos
Definition schematiceditorstate_select.h:138
virtual bool processMirror(Qt::Orientation orientation) noexcept override
Definition schematiceditorstate_select.cpp:202
virtual ~SchematicEditorState_Select() noexcept
Definition schematiceditorstate_select.cpp:75
void openPolygonPropertiesDialog(Polygon &polygon) noexcept
Definition schematiceditorstate_select.cpp:986
bool snapSelectedItemsToGrid() noexcept
Definition schematiceditorstate_select.cpp:768
SubState
enum for all possible substates
Definition schematiceditorstate_select.h:129
@ PASTING
move pasted items
@ SELECTING
left mouse button pressed to draw selection rect
@ IDLE
left mouse button is not pressed (default state)
@ MOVING
left mouse button pressed to move items
@ MOVING_POLYGON_VERTICES
left mouts butten pressed to move vertices
virtual bool processMove(const Point &delta) noexcept override
Definition schematiceditorstate_select.cpp:181
SubState mSubState
the current substate
Definition schematiceditorstate_select.h:137
virtual bool processCopy() noexcept override
Definition schematiceditorstate_select.cpp:161
std::unique_ptr< CmdDragSelectedSchematicItems > mSelectedItemsDragCommand
Definition schematiceditorstate_select.h:139
virtual bool entry() noexcept override
Definition schematiceditorstate_select.cpp:83
The schematic editor state base class.
Definition schematiceditorstate.h:58
The SchematicGraphicsScene class.
Definition schematicgraphicsscene.h:67
Definition occmodel.cpp:77
Definition graphicsscene.h:45
FSM Context.
Definition schematiceditorfsm.h:62