20 #ifndef LIBREPCB_EDITOR_PACKAGEEDITORSTATE_SELECT_H 21 #define LIBREPCB_EDITOR_PACKAGEEDITORSTATE_SELECT_H 34 #include <optional.hpp> 47 class CmdDragSelectedFootprintItems;
50 class FootprintClipboardData;
79 bool exit() noexcept
override;
81 const noexcept
override;
85 QGraphicsSceneMouseEvent& e) noexcept
override;
87 QGraphicsSceneMouseEvent& e) noexcept
override;
89 QGraphicsSceneMouseEvent& e) noexcept
override;
91 QGraphicsSceneMouseEvent& e) noexcept
override;
93 QGraphicsSceneMouseEvent& e) noexcept
override;
98 bool processMove(Qt::ArrowType direction) noexcept
override;
100 bool processMirror(Qt::Orientation orientation) noexcept
override;
101 bool processFlip(Qt::Orientation orientation) noexcept
override;
119 bool startPaste(std::unique_ptr<FootprintClipboardData> data,
120 const tl::optional<Point>& fixedPosition);
123 bool flipLayers) noexcept;
129 const QVector<int> vertices) noexcept;
131 const Point& pos) noexcept;
133 const QVector<int> vertices) noexcept;
135 const Point& pos) noexcept;
139 const Point& pos) noexcept;
bool copySelectedItemsToClipboard() noexcept
Definition: packageeditorstate_select.cpp:968
Definition: packageeditorfsm.h:89
QList< std::shared_ptr< QGraphicsItem > > findItemsAtPosition(const Point &pos) noexcept
Definition: packageeditorstate_select.cpp:1449
bool findZoneVerticesAtPosition(const Point &pos) noexcept
Definition: packageeditorstate_select.cpp:1481
void setState(SubState state) noexcept
Definition: packageeditorstate_select.cpp:1501
PackageEditorState_Select & operator=(const PackageEditorState_Select &rhs)=delete
bool processRemove() noexcept override
Definition: packageeditorstate_select.cpp:552
bool startPaste(std::unique_ptr< FootprintClipboardData > data, const tl::optional< Point > &fixedPosition)
Definition: packageeditorstate_select.cpp:1022
QSet< EditorWidgetBase::Feature > getAvailableFeatures() const noexcept override
Definition: packageeditorstate_select.cpp:100
bool mirrorSelectedItems(Qt::Orientation orientation, bool flipLayers) noexcept
Definition: packageeditorstate_select.cpp:1082
SubState
Definition: packageeditorstate_select.h:62
Definition: occmodel.cpp:77
bool processCut() noexcept override
Definition: packageeditorstate_select.cpp:398
PackageEditorState_Select()=delete
bool processMirror(Qt::Orientation orientation) noexcept override
Definition: packageeditorstate_select.cpp:511
bool processRotate(const Angle &rotation) noexcept override
Definition: packageeditorstate_select.cpp:498
bool rotateSelectedItems(const Angle &angle) noexcept
Definition: packageeditorstate_select.cpp:1065
QVector< int > mSelectedPolygonVertices
The polygon vertex indices selected for editing (empty if none)
Definition: packageeditorstate_select.h:152
bool processGenerateCourtyard() noexcept override
Definition: packageeditorstate_select.cpp:606
void removeZoneVertices(std::shared_ptr< Zone > zone, const QVector< int > vertices) noexcept
Definition: packageeditorstate_select.cpp:1391
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition: angle.h:78
bool processCopy() noexcept override
Definition: packageeditorstate_select.cpp:413
void clearSelectionRect(bool updateItemsSelectionState) noexcept
Definition: packageeditorstate_select.cpp:1440
bool processFlip(Qt::Orientation orientation) noexcept override
Definition: packageeditorstate_select.cpp:525
bool processSelectAll() noexcept override
Definition: packageeditorstate_select.cpp:378
bool processPaste() noexcept override
Definition: packageeditorstate_select.cpp:424
bool processGraphicsSceneRightMouseButtonReleased(QGraphicsSceneMouseEvent &e) noexcept override
Definition: packageeditorstate_select.cpp:362
bool openContextMenuAtPos(const Point &pos) noexcept
Definition: packageeditorstate_select.cpp:739
bool processGenerateOutline() noexcept override
Definition: packageeditorstate_select.cpp:595
QScopedPointer< CmdPolygonEdit > mCmdPolygonEdit
The polygon edit command (nullptr if not editing)
Definition: packageeditorstate_select.h:154
bool processAbortCommand() noexcept override
Definition: packageeditorstate_select.cpp:700
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5...
Definition: point.h:79
bool processImportDxf() noexcept override
Definition: packageeditorstate_select.cpp:617
bool openPropertiesDialogOfItemAtPos(const Point &pos) noexcept
Definition: packageeditorstate_select.cpp:957
void startAddingPolygonVertex(std::shared_ptr< Polygon > polygon, int vertex, const Point &pos) noexcept
Definition: packageeditorstate_select.cpp:1370
QScopedPointer< CmdDragSelectedFootprintItems > mCmdDragSelectedItems
Definition: packageeditorstate_select.h:147
bool removeSelectedItems() noexcept
Definition: packageeditorstate_select.cpp:1117
bool openPropertiesDialogOfItem(std::shared_ptr< QGraphicsItem > item) noexcept
Definition: packageeditorstate_select.cpp:900
void setSelectionRect(const Point &p1, const Point &p2) noexcept
Definition: packageeditorstate_select.cpp:1433
bool processGraphicsSceneLeftMouseButtonPressed(QGraphicsSceneMouseEvent &e) noexcept override
Definition: packageeditorstate_select.cpp:197
The PackageEditorState_Select class.
Definition: packageeditorstate_select.h:59
void startAddingZoneVertex(std::shared_ptr< Zone > zone, int vertex, const Point &pos) noexcept
Definition: packageeditorstate_select.cpp:1412
bool processEditProperties() noexcept override
Definition: packageeditorstate_select.cpp:563
SubState mState
Definition: packageeditorstate_select.h:145
bool processMove(Qt::ArrowType direction) noexcept override
Definition: packageeditorstate_select.cpp:449
bool exit() noexcept override
Definition: packageeditorstate_select.cpp:90
bool processGraphicsSceneLeftMouseButtonReleased(QGraphicsSceneMouseEvent &e) noexcept override
Definition: packageeditorstate_select.cpp:295
bool processSnapToGrid() noexcept override
Definition: packageeditorstate_select.cpp:539
QScopedPointer< CmdZoneEdit > mCmdZoneEdit
The zone edit command (nullptr if not editing)
Definition: packageeditorstate_select.h:161
Point mStartPos
Definition: packageeditorstate_select.h:146
bool findPolygonVerticesAtPosition(const Point &pos) noexcept
Definition: packageeditorstate_select.cpp:1460
bool processGraphicsSceneLeftMouseButtonDoubleClicked(QGraphicsSceneMouseEvent &e) noexcept override
Definition: packageeditorstate_select.cpp:347
bool generateCourtyard() noexcept
Definition: packageeditorstate_select.cpp:1214
std::shared_ptr< Zone > mSelectedZone
The current zone selected for editing (nullptr if none)
Definition: packageeditorstate_select.h:157
~PackageEditorState_Select() noexcept
Definition: packageeditorstate_select.cpp:82
bool processGraphicsSceneMouseMoved(QGraphicsSceneMouseEvent &e) noexcept override
Definition: packageeditorstate_select.cpp:136
bool generateOutline() noexcept
Definition: packageeditorstate_select.cpp:1126
The PackageEditorState class is the base class of all package editor FSM states.
Definition: packageeditorstate.h:52
void removePolygonVertices(std::shared_ptr< Polygon > polygon, const QVector< int > vertices) noexcept
Definition: packageeditorstate_select.cpp:1344
QVector< int > mSelectedZoneVertices
The zone vertex indices selected for editing (empty if none)
Definition: packageeditorstate_select.h:159
bool snapSelectedItemsToGrid() noexcept
Definition: packageeditorstate_select.cpp:1105
std::shared_ptr< Polygon > mSelectedPolygon
The current polygon selected for editing (nullptr if none)
Definition: packageeditorstate_select.h:150