20 #ifndef LIBREPCB_EDITOR_BOARDEDITOR_H 21 #define LIBREPCB_EDITOR_BOARDEDITOR_H 26 #include "../../dialogs/graphicsexportdialog.h" 27 #include "../../graphics/graphicslayer.h" 28 #include "../../widgets/if_graphicsvieweventhandler.h" 29 #include "ui_boardeditor.h" 43 class BoardPlaneFragmentsBuilder;
44 class ComponentInstance;
51 class BoardGraphicsScene;
52 class BoardLayersDock;
53 class ExclusiveActionGroup;
55 class OpenGlSceneBuilder;
56 class OpenGlSceneBuilder;
61 class StandardEditorCommandHandler;
63 class UndoStackActionGroup;
64 class UnplacedComponentsDock;
94 return mGraphicsScene.data();
96 bool getIgnoreLocks()
const noexcept;
99 virtual std::shared_ptr<GraphicsLayer>
getLayer(
100 const QString& name)
const noexcept
override {
101 foreach (
const std::shared_ptr<GraphicsLayer>& layer, mLayers) {
102 if (layer->getName() == name) {
109 QList<std::shared_ptr<GraphicsLayer>>
getAllLayers() const noexcept
override {
114 bool setActiveBoardIndex(
int index) noexcept;
117 void abortAllCommands() noexcept;
118 void abortBlockingToolsInOtherEditors() noexcept;
124 virtual void closeEvent(QCloseEvent* event) noexcept
override;
128 void boardAdded(
int newIndex);
129 void boardRemoved(
int oldIndex);
134 void on_tabBar_currentChanged(
int index);
135 void on_lblUnplacedComponentsNote_linkActivated();
139 void addLayers(
const Theme& theme) noexcept;
140 void updateEnabledCopperLayers() noexcept;
141 void loadLayersVisibility() noexcept;
142 void storeLayersVisibility() noexcept;
143 void createActions() noexcept;
144 void createToolBars() noexcept;
145 void createDockWidgets() noexcept;
146 void createMenus() noexcept;
147 void updateBoardActionGroup() noexcept;
148 virtual bool graphicsViewEventHandler(QEvent* event)
override;
149 void toolRequested(
const QVariant& newTool) noexcept;
150 void unplacedComponentsCountChanged(
int count) noexcept;
151 void runDrc(
bool quick) noexcept;
152 void highlightDrcMessage(
const RuleCheckMessage& msg,
bool zoomTo) noexcept;
154 bool approved) noexcept;
155 void clearDrcMarker() noexcept;
156 QList<BI_Device*> getSearchCandidates() noexcept;
157 QStringList getSearchToolBarCompleterList() noexcept;
158 void goToDevice(
const QString& name,
int index) noexcept;
159 void scheduleOpenGlSceneUpdate() noexcept;
160 void performScheduledTasks() noexcept;
161 void startPlaneRebuild(
bool full =
false) noexcept;
162 bool isActiveTopLevelWindow()
const noexcept;
163 void newBoard() noexcept;
164 void copyBoard() noexcept;
165 void removeBoard() noexcept;
168 void execGridPropertiesDialog() noexcept;
169 void execBoardSetupDialog(
bool switchToDrcSettings =
false) noexcept;
171 const QString& settingsKey) noexcept;
172 void execStepExportDialog() noexcept;
173 void execD356NetlistExportDialog() noexcept;
174 bool show3DView() noexcept;
175 void hide3DView() noexcept;
180 QScopedPointer<Ui::BoardEditor>
mUi;
187 QList<std::shared_ptr<GraphicsLayer>>
mLayers;
193 QScopedPointer<BoardEditorFsm>
mFsm;
QScopedPointer< QAction > mActionSelectAll
Definition: boardeditor.h:241
QScopedPointer< QAction > mActionRebuildPlanes
Definition: boardeditor.h:274
QScopedPointer< Ui::BoardEditor > mUi
Definition: boardeditor.h:180
QScopedPointer< QAction > mActionGridDecrease
Definition: boardeditor.h:244
QHash< Uuid, tl::optional< RuleCheckMessageList > > mDrcMessages
UUID=Board.
Definition: boardeditor.h:200
QScopedPointer< QAction > mActionExportStep
Definition: boardeditor.h:225
QScopedPointer< QAction > mActionDockPlaceDevices
Definition: boardeditor.h:288
The ProjectEditor class.
Definition: projecteditor.h:62
QScopedPointer< QAction > mActionExportImage
Definition: boardeditor.h:223
QScopedPointer< QAction > mActionRemove
Definition: boardeditor.h:271
QScopedPointer< BoardPlaneFragmentsBuilder > mPlaneFragmentsBuilder
Definition: boardeditor.h:196
QScopedPointer< BoardLayersDock > mDockLayers
Definition: boardeditor.h:305
QScopedPointer< QAction > mActionMoveDown
Definition: boardeditor.h:258
QScopedPointer< QToolBar > mToolBarFile
Definition: boardeditor.h:296
QPointer< QMenu > mMenuBoard
Definition: boardeditor.h:310
QScopedPointer< QAction > mActionToolTrace
Definition: boardeditor.h:277
QScopedPointer< QAction > mActionToolZone
Definition: boardeditor.h:282
QScopedPointer< QAction > mActionPreviousPage
Definition: boardeditor.h:237
QScopedPointer< QAction > mActionRotateCcw
Definition: boardeditor.h:259
Project & mProject
Definition: boardeditor.h:179
QScopedPointer< QAction > mActionQuit
Definition: boardeditor.h:212
QScopedPointer< RuleCheckDock > mDockErc
Definition: boardeditor.h:306
QScopedPointer< QAction > mActionResetAllTexts
Definition: boardeditor.h:266
QScopedPointer< QAction > mActionDockLayers
Definition: boardeditor.h:287
QScopedPointer< QAction > mActionFlipVertical
Definition: boardeditor.h:262
QScopedPointer< QAction > mActionToolVia
Definition: boardeditor.h:278
QScopedPointer< QAction > mActionToolMeasure
Definition: boardeditor.h:284
QScopedPointer< ToolBarProxy > mCommandToolBarProxy
Definition: boardeditor.h:182
QScopedPointer< QAction > mActionFindNext
Definition: boardeditor.h:239
QScopedPointer< QAction > mActionGridProperties
Definition: boardeditor.h:242
QScopedPointer< QAction > mActionFileManager
Definition: boardeditor.h:213
Definition: occmodel.cpp:77
QScopedPointer< QAction > mActionMoveRight
Definition: boardeditor.h:256
QScopedPointer< QAction > mActionToolPolygon
Definition: boardeditor.h:279
QScopedPointer< QAction > mActionMoveLeft
Definition: boardeditor.h:255
QScopedPointer< QAction > mActionUndo
Definition: boardeditor.h:250
QScopedPointer< QAction > mActionNextPage
Definition: boardeditor.h:236
QScopedPointer< ExclusiveActionGroup > mToolsActionGroup
Definition: boardeditor.h:292
QScopedPointer< QAction > mActionAboutQt
Definition: boardeditor.h:205
QScopedPointer< QAction > mActionSnapToGrid
Definition: boardeditor.h:263
ProjectEditor & getProjectEditor() const noexcept
Definition: boardeditor.h:90
QScopedPointer< QAction > mActionUnlock
Definition: boardeditor.h:265
QScopedPointer< QAction > mActionRemoveBoard
Definition: boardeditor.h:235
QScopedPointer< QAction > mActionCloseWindow
Definition: boardeditor.h:211
QScopedPointer< QAction > mActionBoardSetup
Definition: boardeditor.h:218
QScopedPointer< QToolBar > mToolBarEdit
Definition: boardeditor.h:297
QScopedPointer< QAction > mActionRedo
Definition: boardeditor.h:251
QScopedPointer< QAction > mActionGenerateD356Netlist
Definition: boardeditor.h:230
QScopedPointer< QAction > mActionGridIncrease
Definition: boardeditor.h:243
QScopedPointer< QToolBar > mToolBarTools
Definition: boardeditor.h:301
QScopedPointer< QAction > mActionPrint
Definition: boardeditor.h:226
QScopedPointer< OpenGlSceneBuilder > mOpenGlSceneBuilder
Definition: boardeditor.h:189
QScopedPointer< QAction > mActionSchematicEditor
Definition: boardeditor.h:214
Board * getActiveBoard() const noexcept
Definition: boardeditor.h:92
Project & getProject() const noexcept
Definition: boardeditor.h:91
QScopedPointer< QAction > mActionFindPrevious
Definition: boardeditor.h:240
QScopedPointer< QAction > mActionOnlineDocumentation
Definition: boardeditor.h:206
QScopedPointer< QAction > mActionFind
Definition: boardeditor.h:238
QScopedPointer< QAction > mActionIgnoreLocks
Definition: boardeditor.h:245
The Board class represents a PCB of a project and is always part of a circuit.
Definition: board.h:73
QScopedPointer< QAction > mActionNewBoard
Definition: boardeditor.h:233
QScopedPointer< QAction > mActionWebsite
Definition: boardeditor.h:208
The IF_GraphicsLayerProvider class defines an interface for classes which provide layers...
Definition: graphicslayer.h:111
The IF_GraphicsViewEventHandler class.
Definition: if_graphicsvieweventhandler.h:41
QScopedPointer< QGraphicsPathItem > mDrcLocationGraphicsItem
Definition: boardeditor.h:201
QScopedPointer< QAction > mActionHidePlanes
Definition: boardeditor.h:273
QHash< Uuid, QRectF > mVisibleSceneRect
Definition: boardeditor.h:192
QScopedPointer< QAction > mActionExportPdf
Definition: boardeditor.h:224
QScopedPointer< QAction > mActionToolPlane
Definition: boardeditor.h:281
QScopedPointer< QAction > mActionZoomIn
Definition: boardeditor.h:247
QScopedPointer< QAction > mActionImportDxf
Definition: boardeditor.h:221
BoardGraphicsScene * getActiveBoardScene() noexcept
Definition: boardeditor.h:93
QScopedPointer< QAction > mActionDecreaseLineWidth
Definition: boardeditor.h:268
The BoardEditor class.
Definition: boardeditor.h:77
QScopedPointer< QAction > mActionGenerateBom
Definition: boardeditor.h:227
QScopedPointer< QAction > mActionChangeLineWidth
Definition: boardeditor.h:269
The BoardGraphicsScene class.
Definition: boardgraphicsscene.h:77
QScopedPointer< UndoStackActionGroup > mUndoStackActionGroup
Definition: boardeditor.h:291
QScopedPointer< QAction > mActionCut
Definition: boardeditor.h:252
QScopedPointer< OpenGlView > mOpenGlView
Definition: boardeditor.h:181
virtual std::shared_ptr< GraphicsLayer > getLayer(const QString &name) const noexcept override
Definition: boardeditor.h:99
QScopedPointer< QAction > mActionZoomFit
Definition: boardeditor.h:246
QScopedPointer< QAction > mActionUpdateLibrary
Definition: boardeditor.h:217
GridStyle
Definition: theme.h:49
QScopedPointer< SearchToolBar > mToolBarSearch
Definition: boardeditor.h:299
QScopedPointer< QAction > mActionZoomOut
Definition: boardeditor.h:248
QScopedPointer< QAction > mActionOrderPcb
Definition: boardeditor.h:232
QScopedPointer< QAction > mActionPaste
Definition: boardeditor.h:254
QScopedPointer< QAction > mActionGenerateFabricationData
Definition: boardeditor.h:228
bool mOpenGlSceneBuildScheduled
Definition: boardeditor.h:190
QScopedPointer< QAction > mActionCopy
Definition: boardeditor.h:253
The Project class represents a whole (opened) project with all its content.
Definition: project.h:71
QScopedPointer< QAction > mActionToggle3D
Definition: boardeditor.h:249
QList< std::shared_ptr< GraphicsLayer > > getAllLayers() const noexcept override
Definition: boardeditor.h:109
qint64 mTimestampOfLastOpenGlSceneRebuild
Definition: boardeditor.h:191
QScopedPointer< QAction > mActionIncreaseLineWidth
Definition: boardeditor.h:267
ProjectEditor & mProjectEditor
Definition: boardeditor.h:178
QScopedPointer< QAction > mActionDockDrc
Definition: boardeditor.h:286
QScopedPointer< QAction > mActionControlPanel
Definition: boardeditor.h:215
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition: length.h:812
QScopedPointer< QAction > mActionRunQuickCheck
Definition: boardeditor.h:219
QScopedPointer< UnplacedComponentsDock > mDockUnplacedComponents
Definition: boardeditor.h:304
The RuleCheckMessage class.
Definition: rulecheckmessage.h:45
QScopedPointer< QAction > mActionToolSelect
Definition: boardeditor.h:276
QScopedPointer< QToolBar > mToolBarCommand
Definition: boardeditor.h:300
QPointer< Board > mActiveBoard
Definition: boardeditor.h:186
QScopedPointer< StandardEditorCommandHandler > mStandardCommandHandler
Definition: boardeditor.h:183
QScopedPointer< QActionGroup > mBoardActionGroup
Definition: boardeditor.h:293
QScopedPointer< QAction > mActionFlipHorizontal
Definition: boardeditor.h:261
QScopedPointer< BoardGraphicsScene > mGraphicsScene
Definition: boardeditor.h:188
QScopedPointer< QAction > mActionAbort
Definition: boardeditor.h:275
QScopedPointer< QToolBar > mToolBarView
Definition: boardeditor.h:298
Output
Definition: graphicsexportdialog.h:83
QScopedPointer< QAction > mActionKeyboardShortcutsReference
Definition: boardeditor.h:207
QScopedPointer< QAction > mActionRunDesignRuleCheck
Definition: boardeditor.h:220
QScopedPointer< BoardEditorFsm > mFsm
Definition: boardeditor.h:193
QScopedPointer< QAction > mActionDockErc
Definition: boardeditor.h:285
QScopedPointer< RuleCheckDock > mDockDrc
Definition: boardeditor.h:307
QList< std::shared_ptr< GraphicsLayer > > mLayers
Definition: boardeditor.h:187
QScopedPointer< QAction > mActionShowPlanes
Definition: boardeditor.h:272
QScopedPointer< QAction > mActionOutputJobs
Definition: boardeditor.h:231
QScopedPointer< QAction > mActionGeneratePickPlace
Definition: boardeditor.h:229
Theme class as used by librepcb::WorkspaceSettingsItem_Themes.
Definition: theme.h:44
QScopedPointer< QAction > mActionSaveProject
Definition: boardeditor.h:209
The LengthUnit class represents a length unit (millimeters, inches,...) and provides some useful meth...
Definition: lengthunit.h:60
QScopedPointer< QAction > mActionMoveUp
Definition: boardeditor.h:257
QScopedPointer< QAction > mActionToolHole
Definition: boardeditor.h:283
qint64 mTimestampOfLastPlaneRebuild
Definition: boardeditor.h:197
QScopedPointer< QAction > mActionProperties
Definition: boardeditor.h:270
QScopedPointer< QAction > mActionAboutLibrePcb
Definition: boardeditor.h:204
QScopedPointer< QAction > mActionCopyBoard
Definition: boardeditor.h:234
QScopedPointer< QAction > mActionExportLppz
Definition: boardeditor.h:222
QScopedPointer< QAction > mActionProjectSetup
Definition: boardeditor.h:216
QScopedPointer< QAction > mActionCloseProject
Definition: boardeditor.h:210
QScopedPointer< QAction > mActionToolText
Definition: boardeditor.h:280
QScopedPointer< QAction > mActionRotateCw
Definition: boardeditor.h:260
QScopedPointer< QAction > mActionLock
Definition: boardeditor.h:264