20#ifndef LIBREPCB_EDITOR_SCHEMATICTAB_H
21#define LIBREPCB_EDITOR_SCHEMATICTAB_H
26#include "../../dialogs/graphicsexportdialog.h"
27#include "../../utils/dismissablemessagecontext.h"
28#include "../../utils/lengtheditcontext.h"
29#include "../../utils/searchcontext.h"
30#include "../../widgets/if_graphicsvieweventhandler.h"
47class GraphicsLayerList;
50class SchematicEditorFsm;
51class SlintGraphicsView;
73 QObject* parent =
nullptr) noexcept;
79 ui::TabData
getUiData() const noexcept override;
80 void setUiData(const ui::TabData& data) noexcept override;
85 void trigger(ui::TabAction a) noexcept override;
87 int scene) noexcept override;
89 const QPointF& pos, slint::private_api::PointerEvent e) noexcept override;
92 slint::private_api::PointerScrollEvent e) noexcept override;
94 const slint::private_api::KeyEvent& e) noexcept override;
115 const
std::optional<Qt::CursorShape>& shape) noexcept override;
121 bool circle) noexcept override;
123 const
Point& pos, qreal multiplier) const noexcept override;
127 const QSet<const
NetSignal*>& sigs) noexcept override;
130 int timeoutMs = -1) noexcept override;
155 const QString& settingsKey) noexcept;
156 void goToSymbol(const QString& name,
int index) noexcept;
193 std::shared_ptr<slint::VectorModel<slint::SharedString>>
The AttributeUnit class.
Definition attributeunit.h:40
The Layer class provides all supported geometry layers.
Definition layer.h:42
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 Project class represents a whole (opened) project with all its content.
Definition project.h:71
The Schematic class represents one schematic page of a project and is always part of a circuit.
Definition schematic.h:74
The Signal class is used to emit signals on non-QObject derived classes.
Definition signalslot.h:65
Theme class as used by librepcb::WorkspaceSettingsItem_Themes.
Definition theme.h:44
A handle to a optionally dismissable message in the UI.
Definition dismissablemessagecontext.h:53
This class provides a Dialog (GUI) to choose DXF import settings.
Definition graphicsexportdialog.h:61
The GraphicsLayer class represents a graphical layer used in schematics and boards.
Definition graphicslayer.h:53
The GraphicsLayerList class.
Definition graphicslayerlist.h:48
The GuiApplication class.
Definition guiapplication.h:61
The IF_GraphicsViewEventHandler class.
Definition if_graphicsvieweventhandler.h:45
Backend configuration for the LengthEdit UI element.
Definition lengtheditcontext.h:49
The ProjectEditor class.
Definition projecteditor.h:63
Interface for the integration of the schematic editor FSM.
Definition schematiceditorfsmadapter.h:60
The schematic editor finite state machine (FSM)
Definition schematiceditorfsm.h:57
The SchematicEditor class.
Definition schematiceditor.h:50
The SchematicEditorState_AddComponent class.
Definition schematiceditorstate_addcomponent.h:58
The SchematicEditorState_AddNetLabel class.
Definition schematiceditorstate_addnetlabel.h:50
The SchematicEditorState_AddText class.
Definition schematiceditorstate_addtext.h:56
The SchematicEditorState_DrawPolygon class.
Definition schematiceditorstate_drawpolygon.h:56
The SchematicEditorState_DrawWire class.
Definition schematiceditorstate_drawwire.h:52
The "measure" state/tool of the schematic editor.
Definition schematiceditorstate_measure.h:45
The "select" state/tool of the schematic editor (default state)
Definition schematiceditorstate_select.h:60
The SchematicGraphicsScene class.
Definition schematicgraphicsscene.h:67
The SchematicTab class.
Definition schematictab.h:62
slint::Image renderScene(float width, float height, int scene) noexcept override
Definition schematictab.cpp:632
bool graphicsSceneMouseMoved(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematictab.cpp:670
Features mToolFeatures
Definition schematictab.h:181
QPointF mSceneImagePos
Definition schematictab.h:177
std::unique_ptr< SlintGraphicsView > mView
Definition schematictab.h:168
void fsmSetSceneCursor(const Point &pos, bool cross, bool circle) noexcept override
Definition schematictab.cpp:740
std::shared_ptr< slint::VectorModel< slint::SharedString > > mToolAttributeUnits
Definition schematictab.h:198
void applyTheme() noexcept
Definition schematictab.cpp:1134
SchematicTab(const SchematicTab &other)=delete
Schematic & mSchematic
Definition schematictab.h:165
bool graphicsSceneRightMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematictab.cpp:691
DismissableMessageContext mMsgAddDrawingFrame
Definition schematictab.h:172
void layerRequested(const Layer &layer)
QString mToolValue
Definition schematictab.h:192
int mFrameIndex
Definition schematictab.h:178
bool graphicsSceneLeftMouseButtonDoubleClicked(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematictab.cpp:686
std::unique_ptr< GraphicsLayerList > mLayers
Definition schematictab.h:166
QString mToolAttributeValuePlaceholder
Definition schematictab.h:196
Signal< SchematicTab > onDerivedUiDataChanged
Definition schematictab.h:67
bool graphicsSceneLeftMouseButtonPressed(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematictab.cpp:676
void fsmZoomToSceneRect(const QRectF &r) noexcept override
Definition schematictab.cpp:762
QList< const AttributeUnit * > mToolAttributeUnitsQt
Definition schematictab.h:197
SchematicGraphicsScene * fsmGetGraphicsScene() noexcept override
Definition schematictab.cpp:700
Theme::GridStyle mGridStyle
Definition schematictab.h:176
void fsmToolEnter(SchematicEditorState_Select &state) noexcept override
Definition schematictab.cpp:796
std::shared_ptr< slint::VectorModel< slint::SharedString > > mToolValueSuggestions
Definition schematictab.h:194
std::shared_ptr< slint::VectorModel< slint::SharedString > > mToolLayers
Definition schematictab.h:187
LengthEditContext mToolSize
Definition schematictab.h:190
std::optional< QString > mToolAttributeValue
Definition schematictab.h:195
void fsmSetViewCursor(const std::optional< Qt::CursorShape > &shape) noexcept override
Definition schematictab.cpp:704
bool processSceneScrolled(const QPointF &pos, slint::private_api::PointerScrollEvent e) noexcept override
Definition schematictab.cpp:646
void fsmToolLeave() noexcept override
Definition schematictab.cpp:787
ProjectEditor & mProjectEditor
Definition schematictab.h:162
void fsmAbortBlockingToolsInOtherEditors() noexcept override
Definition schematictab.cpp:771
void valueRequested(const QString &value)
void requestRepaint() noexcept
Definition schematictab.cpp:1153
bool processScenePointerEvent(const QPointF &pos, slint::private_api::PointerEvent e) noexcept override
Definition schematictab.cpp:641
bool graphicsSceneKeyPressed(const GraphicsSceneKeyEvent &e) noexcept override
Definition schematictab.cpp:660
SchematicEditorState_DrawWire::WireMode mToolWireMode
Definition schematictab.h:185
QPainterPath fsmCalcPosWithTolerance(const Point &pos, qreal multiplier) const noexcept override
Definition schematictab.cpp:747
void attributeUnitRequested(const AttributeUnit *unit)
std::shared_ptr< GraphicsLayer > mPinNumbersLayer
Definition schematictab.h:167
SearchContext mSearchContext
Definition schematictab.h:175
void setUiData(const ui::TabData &data) noexcept override
Definition schematictab.cpp:265
QVector< QMetaObject::Connection > mFsmStateConnections
Definition schematictab.h:202
bool processSceneKeyEvent(const slint::private_api::KeyEvent &e) noexcept override
Definition schematictab.cpp:651
ui::SchematicTabData getDerivedUiData() const noexcept
Definition schematictab.cpp:271
void fsmSetViewGrayOut(bool grayOut) noexcept override
Definition schematictab.cpp:714
void wireModeRequested(SchematicEditorState_DrawWire::WireMode mode)
void fsmSetViewRuler(const std::optional< std::pair< Point, Point > > &pos) noexcept override
Definition schematictab.cpp:733
const AttributeUnit * mToolAttributeUnit
Definition schematictab.h:199
SchematicEditor & mSchematicEditor
Definition schematictab.h:164
void fsmSetViewInfoBoxText(const QString &text) noexcept override
Definition schematictab.cpp:720
Project & mProject
Definition schematictab.h:163
const Layer * mToolLayer
Definition schematictab.h:188
int getProjectObjectIndex() const noexcept
Definition schematictab.cpp:227
void goToSymbol(const QString &name, int index) noexcept
Definition schematictab.cpp:1095
Qt::CursorShape mToolCursorShape
Definition schematictab.h:183
void fsmSetStatusBarMessage(const QString &message, int timeoutMs=-1) noexcept override
Definition schematictab.cpp:775
Point fsmMapGlobalPosToScenePos(const QPoint &pos) const noexcept override
Definition schematictab.cpp:752
std::unique_ptr< SchematicGraphicsScene > mScene
Definition schematictab.h:206
QScopedPointer< SchematicEditorFsm > mFsm
Definition schematictab.h:203
void trigger(ui::TabAction a) noexcept override
Definition schematictab.cpp:401
void deactivate() noexcept override
Definition schematictab.cpp:395
void setDerivedUiData(const ui::SchematicTabData &data) noexcept
Definition schematictab.cpp:332
void attributeValueRequested(const QString &value)
void updateMessages() noexcept
Definition schematictab.cpp:1036
DismissableMessageContext mMsgInstallLibraries
Definition schematictab.h:171
void fsmSetHighlightedNetSignals(const QSet< const NetSignal * > &sigs) noexcept override
Definition schematictab.cpp:766
QString mToolOverlayText
Definition schematictab.h:184
ui::TabData getUiData() const noexcept override
Definition schematictab.cpp:231
bool graphicsSceneKeyReleased(const GraphicsSceneKeyEvent &e) noexcept override
Definition schematictab.cpp:665
void execGraphicsExportDialog(GraphicsExportDialog::Output output, const QString &settingsKey) noexcept
Definition schematictab.cpp:1048
bool mToolFilled
Definition schematictab.h:191
void filledRequested(bool filled)
ui::EditorTool mTool
Definition schematictab.h:182
void fsmSetFeatures(Features features) noexcept override
Definition schematictab.cpp:780
LengthEditContext mToolLineWidth
Definition schematictab.h:189
int getProjectIndex() const noexcept
Definition schematictab.cpp:223
bool graphicsSceneLeftMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept override
Definition schematictab.cpp:681
QVector< const Layer * > mToolLayersQt
Definition schematictab.h:186
void activate() noexcept override
Definition schematictab.cpp:378
The SearchContext class.
Definition searchcontext.h:43
The SlintGraphicsView class.
Definition slintgraphicsview.h:51
The WindowTab class.
Definition windowtab.h:51
Definition occmodel.cpp:77
Definition graphicsscene.h:52
Definition graphicsscene.h:45