20#ifndef LIBREPCB_EDITOR_SCHEMATICEDITORSTATE_H
21#define LIBREPCB_EDITOR_SCHEMATICEDITORSTATE_H
26#include "../../../graphics/graphicsscene.h"
48class SchematicGraphicsScene;
93 QObject* parent =
nullptr) noexcept;
97 virtual
bool entry() noexcept {
return true; }
98 virtual bool exit() noexcept {
return true; }
102 const QString& basename)
noexcept {
109 const QString& searchTerm = QString()) noexcept {
110 Q_UNUSED(searchTerm);
114 const Uuid& symbVar)
noexcept {
132 Q_UNUSED(orientation);
200 const
Point& pos, FindFlags flags,
201 const QVector<
std::shared_ptr<QGraphicsItem>>& except = {})
noexcept;
202 template <
typename T = QGraphicsItem>
204 const Point& pos, FindFlags flags,
205 const QVector<std::shared_ptr<QGraphicsItem>>& except = {})
noexcept {
206 const QList<std::shared_ptr<QGraphicsItem>> items =
208 std::shared_ptr<T> castedItem =
209 std::dynamic_pointer_cast<T>(items.value(0,
nullptr));
210 if ((!items.isEmpty()) && (!castedItem)) {
212 qCritical() <<
"Found a schematic item, but it has the wrong type!";
225Q_DECLARE_OPERATORS_FOR_FLAGS(librepcb::editor::SchematicEditorState::FindFlags)
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
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 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 schematic editor FSM.
Definition schematiceditorfsmadapter.h:62
The schematic editor state base class.
Definition schematiceditorstate.h:58
Context mContext
Definition schematiceditorstate.h:218
void requestLeavingState()
Signal to indicate that the current tool should be exited.
virtual bool processEditProperties() noexcept
Definition schematiceditorstate.h:138
virtual bool processAbortCommand() noexcept
Definition schematiceditorstate.h:139
virtual bool exit() noexcept
Definition schematiceditorstate.h:98
static const QSet< const Layer * > & getAllowedGeometryLayers() noexcept
Definition schematiceditorstate.cpp:98
const LengthUnit & getLengthUnit() const noexcept
Definition schematiceditorstate.cpp:93
virtual bool processGraphicsSceneLeftMouseButtonPressed(const GraphicsSceneMouseEvent &e) noexcept
Definition schematiceditorstate.h:153
virtual bool processAddComponent(const QString &searchTerm=QString()) noexcept
Definition schematiceditorstate.h:108
virtual bool processSnapToGrid() noexcept
Definition schematiceditorstate.h:135
QList< std::shared_ptr< QGraphicsItem > > findItemsAtPos(const Point &pos, FindFlags flags, const QVector< std::shared_ptr< QGraphicsItem > > &except={}) noexcept
Definition schematiceditorstate.cpp:124
SchematicEditorFsmAdapter & mAdapter
Definition schematiceditorstate.h:219
virtual bool entry() noexcept
Definition schematiceditorstate.h:97
virtual bool processSelectAll() noexcept
Definition schematiceditorstate.h:119
virtual bool processMove(const Point &delta) noexcept
Definition schematiceditorstate.h:123
QWidget * parentWidget() noexcept
Definition schematiceditorstate.cpp:120
virtual bool processRotate(const Angle &rotation) noexcept
Definition schematiceditorstate.h:127
virtual bool processGraphicsSceneMouseMoved(const GraphicsSceneMouseEvent &e) noexcept
Definition schematiceditorstate.h:148
SchematicEditorState & operator=(const SchematicEditorState &rhs)=delete
virtual bool processGridIntervalChanged(const PositiveLength &interval) noexcept
Definition schematiceditorstate.h:173
FindFlag
Definition schematiceditorstate.h:64
@ SkipLowerPriorityMatches
@ AcceptNearestWithinGrid
virtual bool processResetAllTexts() noexcept
Definition schematiceditorstate.h:136
virtual bool processKeyReleased(const GraphicsSceneKeyEvent &e) noexcept
Definition schematiceditorstate.h:144
virtual bool processGraphicsSceneLeftMouseButtonDoubleClicked(const GraphicsSceneMouseEvent &e) noexcept
Definition schematiceditorstate.h:163
virtual bool processKeyPressed(const GraphicsSceneKeyEvent &e) noexcept
Definition schematiceditorstate.h:140
void abortBlockingToolsInOtherEditors() noexcept
Definition schematiceditorstate.cpp:112
PositiveLength getGridInterval() const noexcept
Definition schematiceditorstate.cpp:89
virtual bool processAddComponent(const Uuid &cmp, const Uuid &symbVar) noexcept
Definition schematiceditorstate.h:113
virtual bool processMirror(Qt::Orientation orientation) noexcept
Definition schematiceditorstate.h:131
SchematicGraphicsScene * getActiveSchematicScene() noexcept
Definition schematiceditorstate.cpp:85
virtual bool processGraphicsSceneLeftMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept
Definition schematiceditorstate.h:158
std::shared_ptr< T > findItemAtPos(const Point &pos, FindFlags flags, const QVector< std::shared_ptr< QGraphicsItem > > &except={}) noexcept
Definition schematiceditorstate.h:203
virtual bool processCopy() noexcept
Definition schematiceditorstate.h:121
virtual bool processCut() noexcept
Definition schematiceditorstate.h:120
virtual bool processPaste() noexcept
Definition schematiceditorstate.h:122
virtual bool processGraphicsSceneRightMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept
Definition schematiceditorstate.h:168
virtual bool processAddImage(const QByteArray &data, const QString &format, const QString &basename) noexcept
Definition schematiceditorstate.h:101
bool execCmd(UndoCommand *cmd)
Definition schematiceditorstate.cpp:116
virtual bool processRemove() noexcept
Definition schematiceditorstate.h:137
The SchematicGraphicsScene class.
Definition schematicgraphicsscene.h:76
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
Definition graphicsscene.h:52
Definition graphicsscene.h:45
FSM Context.
Definition schematiceditorfsm.h:65