20#ifndef LIBREPCB_EDITOR_SYMBOLEDITORSTATE_SELECT_H
21#define LIBREPCB_EDITOR_SYMBOLEDITORSTATE_SELECT_H
34#include <optional.hpp>
46class CmdDragSelectedSymbolItems;
48class SymbolClipboardData;
76 bool exit() noexcept override;
78 const noexcept override;
82 QGraphicsSceneMouseEvent& e) noexcept override;
84 QGraphicsSceneMouseEvent& e) noexcept override;
86 QGraphicsSceneMouseEvent& e) noexcept override;
88 QGraphicsSceneMouseEvent& e) noexcept override;
90 QGraphicsSceneMouseEvent& e) noexcept override;
98 bool processMirror(Qt::Orientation orientation) noexcept override;
115 const
tl::optional<
Point>& fixedPosition);
121 const QVector<
int> vertices) noexcept;
123 const
Point& pos) noexcept;
127 const
Point& pos) noexcept;
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition: angle.h:78
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition: point.h:79
The Polygon class.
Definition: polygon.h:45
The CmdDragSelectedSymbolItems class.
Definition: cmddragselectedsymbolitems.h:52
The CmdPolygonEdit class.
Definition: cmdpolygonedit.h:51
The SymbolClipboardData class.
Definition: symbolclipboarddata.h:52
The SymbolEditorState_Select class.
Definition: symboleditorstate_select.h:57
bool processGraphicsSceneMouseMoved(QGraphicsSceneMouseEvent &e) noexcept override
Definition: symboleditorstate_select.cpp:125
void setState(SubState state) noexcept
Definition: symboleditorstate_select.cpp:979
void clearSelectionRect(bool updateItemsSelectionState) noexcept
Definition: symboleditorstate_select.cpp:944
bool processEditProperties() noexcept override
Definition: symboleditorstate_select.cpp:472
bool mirrorSelectedItems(Qt::Orientation orientation) noexcept
Definition: symboleditorstate_select.cpp:852
bool processGraphicsSceneLeftMouseButtonReleased(QGraphicsSceneMouseEvent &e) noexcept override
Definition: symboleditorstate_select.cpp:261
SubState mState
Definition: symboleditorstate_select.h:132
bool copySelectedItemsToClipboard() noexcept
Definition: symboleditorstate_select.cpp:762
bool processRemove() noexcept override
Definition: symboleditorstate_select.cpp:461
bool rotateSelectedItems(const Angle &angle) noexcept
Definition: symboleditorstate_select.cpp:835
bool processAbortCommand() noexcept override
Definition: symboleditorstate_select.cpp:563
bool removeSelectedItems() noexcept
Definition: symboleditorstate_select.cpp:881
bool openPropertiesDialogOfItem(std::shared_ptr< QGraphicsItem > item) noexcept
Definition: symboleditorstate_select.cpp:712
~SymbolEditorState_Select() noexcept
Definition: symboleditorstate_select.cpp:74
bool processRotate(const Angle &rotation) noexcept override
Definition: symboleditorstate_select.cpp:421
std::shared_ptr< Polygon > mSelectedPolygon
The current polygon selected for editing (nullptr if none)
Definition: symboleditorstate_select.h:137
bool processSelectAll() noexcept override
Definition: symboleditorstate_select.cpp:331
bool processImportDxf() noexcept override
Definition: symboleditorstate_select.cpp:496
bool openContextMenuAtPos(const Point &pos) noexcept
Definition: symboleditorstate_select.cpp:597
void startAddingPolygonVertex(std::shared_ptr< Polygon > polygon, int vertex, const Point &pos) noexcept
Definition: symboleditorstate_select.cpp:916
bool openPropertiesDialogOfItemAtPos(const Point &pos) noexcept
Definition: symboleditorstate_select.cpp:751
bool findPolygonVerticesAtPosition(const Point &pos) noexcept
Definition: symboleditorstate_select.cpp:961
bool processCut() noexcept override
Definition: symboleditorstate_select.cpp:348
bool exit() noexcept override
Definition: symboleditorstate_select.cpp:82
bool startPaste(std::unique_ptr< SymbolClipboardData > data, const tl::optional< Point > &fixedPosition)
Definition: symboleditorstate_select.cpp:798
QVector< int > mSelectedPolygonVertices
The polygon vertex indices selected for editing (empty if none)
Definition: symboleditorstate_select.h:139
QList< std::shared_ptr< QGraphicsItem > > findItemsAtPosition(const Point &pos) noexcept
Definition: symboleditorstate_select.cpp:953
bool processSnapToGrid() noexcept override
Definition: symboleditorstate_select.cpp:448
bool processPaste(std::unique_ptr< SymbolClipboardData > data=nullptr) noexcept override
Definition: symboleditorstate_select.cpp:374
QScopedPointer< CmdDragSelectedSymbolItems > mCmdDragSelectedItems
Definition: symboleditorstate_select.h:134
bool processGraphicsSceneRightMouseButtonReleased(QGraphicsSceneMouseEvent &e) noexcept override
Definition: symboleditorstate_select.cpp:315
Point mStartPos
Definition: symboleditorstate_select.h:133
void setSelectionRect(const Point &p1, const Point &p2) noexcept
Definition: symboleditorstate_select.cpp:937
SymbolEditorState_Select(const SymbolEditorState_Select &other)=delete
bool processMirror(Qt::Orientation orientation) noexcept override
Definition: symboleditorstate_select.cpp:434
QSet< EditorWidgetBase::Feature > getAvailableFeatures() const noexcept override
Definition: symboleditorstate_select.cpp:91
void removePolygonVertices(std::shared_ptr< Polygon > polygon, const QVector< int > vertices) noexcept
Definition: symboleditorstate_select.cpp:890
bool snapSelectedItemsToGrid() noexcept
Definition: symboleditorstate_select.cpp:869
bool processGraphicsSceneLeftMouseButtonPressed(QGraphicsSceneMouseEvent &e) noexcept override
Definition: symboleditorstate_select.cpp:168
SubState
Definition: symboleditorstate_select.h:60
bool processMove(const Point &delta) noexcept override
Definition: symboleditorstate_select.cpp:401
SymbolEditorState_Select()=delete
QScopedPointer< CmdPolygonEdit > mCmdPolygonEdit
The polygon edit command (nullptr if not editing)
Definition: symboleditorstate_select.h:141
bool processCopy() noexcept override
Definition: symboleditorstate_select.cpp:363
bool processGraphicsSceneLeftMouseButtonDoubleClicked(QGraphicsSceneMouseEvent &e) noexcept override
Definition: symboleditorstate_select.cpp:300
The SymbolEditorState class is the base class of all symbol editor FSM states.
Definition: symboleditorstate.h:54
Definition: occmodel.cpp:77
Definition: symboleditorfsm.h:76