20#ifndef LIBREPCB_EDITOR_BOARDEDITORSTATE_H
21#define LIBREPCB_EDITOR_BOARDEDITORSTATE_H
26#include "../../../graphics/graphicsscene.h"
50class BoardGraphicsScene;
97 QObject* parent =
nullptr) noexcept;
101 virtual
bool entry() noexcept {
return true; }
102 virtual bool exit() noexcept {
return true; }
107 const Uuid& footprint)
noexcept {
127 Q_UNUSED(orientation);
200 const
Point& pos, FindFlags flags, const
Layer* cuLayer =
nullptr,
201 const QSet<const
NetSignal*>& netsignals = {},
202 const QVector<std::shared_ptr<QGraphicsItem>>& except = {})
noexcept;
203 template <
typename T = QGraphicsItem>
205 const Point& pos, FindFlags flags,
const Layer* cuLayer =
nullptr,
206 const QSet<const NetSignal*>& netsignals = {},
207 const QVector<std::shared_ptr<QGraphicsItem>>& except = {})
noexcept {
208 const QList<std::shared_ptr<QGraphicsItem>> items =
211 std::shared_ptr<T> castedItem =
212 std::dynamic_pointer_cast<T>(items.value(0,
nullptr));
213 if ((!items.isEmpty()) && (!castedItem)) {
215 qCritical() <<
"Found a board item, but it has the wrong type!";
228Q_DECLARE_OPERATORS_FOR_FLAGS(librepcb::editor::BoardEditorState::FindFlags)
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
The ComponentInstance class.
Definition componentinstance.h:54
The Layer class provides all supported geometry layers.
Definition layer.h:42
The LengthUnit class represents a length unit (millimeters, inches,...) and provides some useful meth...
Definition lengthunit.h:62
The NetSignal class.
Definition netsignal.h:50
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
Interface for the integration of the board editor FSM.
Definition boardeditorfsmadapter.h:63
The board editor state base class.
Definition boardeditorstate.h:60
Context mContext
Definition boardeditorstate.h:221
void requestLeavingState()
Signal to indicate that the current tool should be exited.
BoardEditorState & operator=(const BoardEditorState &rhs)=delete
virtual bool processEditProperties() noexcept
Definition boardeditorstate.h:141
virtual bool processAbortCommand() noexcept
Definition boardeditorstate.h:142
virtual bool exit() noexcept
Definition boardeditorstate.h:102
const LengthUnit & getLengthUnit() const noexcept
Definition boardeditorstate.cpp:94
virtual bool processGraphicsSceneLeftMouseButtonPressed(const GraphicsSceneMouseEvent &e) noexcept
Definition boardeditorstate.h:156
virtual bool processSnapToGrid() noexcept
Definition boardeditorstate.h:130
virtual bool processSetLocked(bool locked) noexcept
Definition boardeditorstate.h:131
BoardEditorFsmAdapter & mAdapter
Definition boardeditorstate.h:222
virtual bool entry() noexcept
Definition boardeditorstate.h:101
virtual bool processSelectAll() noexcept
Definition boardeditorstate.h:114
virtual bool processMove(const Point &delta) noexcept
Definition boardeditorstate.h:118
QWidget * parentWidget() noexcept
Definition boardeditorstate.cpp:151
virtual bool processRotate(const Angle &rotation) noexcept
Definition boardeditorstate.h:122
virtual bool processGraphicsSceneMouseMoved(const GraphicsSceneMouseEvent &e) noexcept
Definition boardeditorstate.h:151
virtual bool processImportDxf() noexcept
Definition boardeditorstate.h:113
QList< std::shared_ptr< QGraphicsItem > > findItemsAtPos(const Point &pos, FindFlags flags, const Layer *cuLayer=nullptr, const QSet< const NetSignal * > &netsignals={}, const QVector< std::shared_ptr< QGraphicsItem > > &except={}) noexcept
Definition boardeditorstate.cpp:155
std::shared_ptr< T > findItemAtPos(const Point &pos, FindFlags flags, const Layer *cuLayer=nullptr, const QSet< const NetSignal * > &netsignals={}, const QVector< std::shared_ptr< QGraphicsItem > > &except={}) noexcept
Definition boardeditorstate.h:204
BoardGraphicsScene * getActiveBoardScene() noexcept
Definition boardeditorstate.cpp:82
virtual bool processResetAllTexts() noexcept
Definition boardeditorstate.h:139
bool getIgnoreLocks() const noexcept
Definition boardeditorstate.cpp:86
virtual bool processKeyReleased(const GraphicsSceneKeyEvent &e) noexcept
Definition boardeditorstate.h:147
virtual bool processGraphicsSceneLeftMouseButtonDoubleClicked(const GraphicsSceneMouseEvent &e) noexcept
Definition boardeditorstate.h:166
virtual bool processKeyPressed(const GraphicsSceneKeyEvent &e) noexcept
Definition boardeditorstate.h:143
void abortBlockingToolsInOtherEditors() noexcept
Definition boardeditorstate.cpp:143
PositiveLength getGridInterval() const noexcept
Definition boardeditorstate.cpp:90
virtual bool processGraphicsSceneLeftMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept
Definition boardeditorstate.h:161
FindFlag
Definition boardeditorstate.h:66
@ SkipLowerPriorityMatches
virtual bool processCopy() noexcept
Definition boardeditorstate.h:116
virtual bool processCut() noexcept
Definition boardeditorstate.h:115
virtual bool processFlip(Qt::Orientation orientation) noexcept
Definition boardeditorstate.h:126
virtual bool processPaste() noexcept
Definition boardeditorstate.h:117
virtual bool processGraphicsSceneRightMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept
Definition boardeditorstate.h:171
QSet< const Layer * > getAllowedGeometryLayers() noexcept
Definition boardeditorstate.cpp:98
bool execCmd(UndoCommand *cmd)
Definition boardeditorstate.cpp:147
virtual bool processRemove() noexcept
Definition boardeditorstate.h:140
virtual bool processChangeLineWidth(int step) noexcept
Definition boardeditorstate.h:135
virtual bool processAddDevice(ComponentInstance &component, const Uuid &device, const Uuid &footprint) noexcept
Definition boardeditorstate.h:105
void makeLayerVisible(const QString &layer) noexcept
Definition boardeditorstate.cpp:135
The BoardGraphicsScene class.
Definition boardgraphicsscene.h:77
The UndoCommand class represents a command which you can undo/redo.
Definition undocommand.h:46
Definition occmodel.cpp:77
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition length.h:810
FSM Context.
Definition boardeditorfsm.h:88
Definition graphicsscene.h:52
Definition graphicsscene.h:45