LibrePCB Developers Documentation
Loading...
Searching...
No Matches
packagetab.h
Go to the documentation of this file.
1/*
2 * LibrePCB - Professional EDA for everyone!
3 * Copyright (C) 2013 LibrePCB Developers, see AUTHORS.md for contributors.
4 * https://librepcb.org/
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef LIBREPCB_EDITOR_PACKAGETAB_H
21#define LIBREPCB_EDITOR_PACKAGETAB_H
22
23/*******************************************************************************
24 * Includes
25 ******************************************************************************/
26#include "../../3d/openglobject.h"
27#include "../../backgroundimagesettings.h"
28#include "../../dialogs/graphicsexportdialog.h"
29#include "../../utils/lengtheditcontext.h"
30#include "../../widgets/if_graphicsvieweventhandler.h"
31#include "../libraryeditortab.h"
33
43
44#include <QtCore>
45
46/*******************************************************************************
47 * Namespace / Forward Declarations
48 ******************************************************************************/
49namespace librepcb {
50
51class Footprint;
52class Layer;
53
54namespace editor {
55
56class CategoryTreeModel;
57class FootprintListModel;
58class GraphicsLayerList;
59class GraphicsScene;
60class LibraryEditor;
61class LibraryElementCategoriesModel;
62class OpenGlSceneBuilder;
63class PackageEditorFsm;
64class PackageModelListModel;
65class PackagePadListModel;
66class SlintGraphicsView;
67class SlintOpenGlView;
68struct OpenGlProjection;
69
70/*******************************************************************************
71 * Class PackageTab
72 ******************************************************************************/
73
77class PackageTab final : public LibraryEditorTab,
80 Q_OBJECT
81
82public:
83 // Signals
85
86 // Types
87 enum class Mode { Open, New, Duplicate };
88
89 // Constructors / Destructor
90 PackageTab() = delete;
91 PackageTab(const PackageTab& other) = delete;
92 explicit PackageTab(LibraryEditor& editor, std::unique_ptr<Package> pkg,
93 Mode mode, QObject* parent = nullptr) noexcept;
94 ~PackageTab() noexcept;
95
96 // General Methods
97 FilePath getDirectoryPath() const noexcept override;
98 ui::TabData getUiData() const noexcept override;
99 ui::PackageTabData getDerivedUiData() const noexcept;
100 void setDerivedUiData(const ui::PackageTabData& data) noexcept;
101 void activate() noexcept override;
102 void deactivate() noexcept override;
103 void trigger(ui::TabAction a) noexcept override;
104 slint::Image renderScene(float width, float height,
105 int scene) noexcept override;
107 const QPointF& pos, slint::private_api::PointerEvent e) noexcept override;
109 const QPointF& pos,
110 slint::private_api::PointerScrollEvent e) noexcept override;
112 const slint::private_api::KeyEvent& e) noexcept override;
113 bool requestClose() noexcept override;
114
115 // IF_GraphicsViewEventHandler
117 const GraphicsSceneKeyEvent& e) noexcept override;
119 const GraphicsSceneKeyEvent& e) noexcept override;
121 const GraphicsSceneMouseEvent& e) noexcept override;
123 const GraphicsSceneMouseEvent& e) noexcept override;
125 const GraphicsSceneMouseEvent& e) noexcept override;
127 const GraphicsSceneMouseEvent& e) noexcept override;
129 const GraphicsSceneMouseEvent& e) noexcept override;
130
131 // PackageEditorFsmAdapter
132 QWidget* fsmGetParentWidget() noexcept override;
133 GraphicsScene* fsmGetGraphicsScene() noexcept override;
134 PositiveLength fsmGetGridInterval() const noexcept override;
135 void fsmSetViewCursor(
136 const std::optional<Qt::CursorShape>& shape) noexcept override;
137 void fsmSetViewGrayOut(bool grayOut) noexcept override;
138 void fsmSetViewInfoBoxText(const QString& text) noexcept override;
139 void fsmSetViewRuler(
140 const std::optional<std::pair<Point, Point>>& pos) noexcept override;
141 void fsmSetSceneCursor(const Point& pos, bool cross,
142 bool circle) noexcept override;
143 QPainterPath fsmCalcPosWithTolerance(
144 const Point& pos, qreal multiplier) const noexcept override;
145 Point fsmMapGlobalPosToScenePos(const QPoint& pos) const noexcept override;
146 void fsmSetStatusBarMessage(const QString& message,
147 int timeoutMs = -1) noexcept override;
148 void fsmSetFeatures(Features features) noexcept override;
149 void fsmToolLeave() noexcept override;
150 void fsmToolEnter(PackageEditorState_Select& state) noexcept override;
151 void fsmToolEnter(PackageEditorState_DrawLine& state) noexcept override;
152 void fsmToolEnter(PackageEditorState_DrawRect& state) noexcept override;
153 void fsmToolEnter(PackageEditorState_DrawPolygon& state) noexcept override;
154 void fsmToolEnter(PackageEditorState_DrawCircle& state) noexcept override;
155 void fsmToolEnter(PackageEditorState_DrawArc& state) noexcept override;
156 void fsmToolEnter(PackageEditorState_AddNames& state) noexcept override;
157 void fsmToolEnter(PackageEditorState_AddValues& state) noexcept override;
158 void fsmToolEnter(PackageEditorState_DrawText& state) noexcept override;
159 void fsmToolEnter(PackageEditorState_AddPads& state) noexcept override;
160 void fsmToolEnter(PackageEditorState_DrawZone& state) noexcept override;
161 void fsmToolEnter(PackageEditorState_AddHoles& state) noexcept override;
162 void fsmToolEnter(PackageEditorState_ReNumberPads& state) noexcept override;
163 void fsmToolEnter(PackageEditorState_Measure& state) noexcept override;
164
165 // Operator Overloadings
166 PackageTab& operator=(const PackageTab& rhs) = delete;
167
168signals:
169 void layerRequested(const Layer& layer);
170 void angleRequested(const Angle& angle);
172 void filledRequested(bool filled);
173 void grabAreaRequested(bool grabArea);
174 void valueRequested(const QString& value);
175 void hAlignRequested(const HAlign& align);
176 void vAlignRequested(const VAlign& align);
177 void packagePadRequested(const std::optional<Uuid>& pad);
178 void componentSideRequested(Pad::ComponentSide side);
179 void shapeRequested(const ui::PadShape shape);
180 void pressFitRequested(bool pressFit);
181 void zoneLayerRequested(Zone::Layer layer, bool enable);
182 void zoneRuleRequested(Zone::Rule rule, bool enable);
183
184protected:
185 void watchedFilesModifiedChanged() noexcept override;
186 void reloadFromDisk() override;
187 std::optional<std::pair<RuleCheckMessageList, QSet<SExpression>>>
188 runChecksImpl() override;
189 bool autoFixImpl(const std::shared_ptr<const RuleCheckMessage>& msg,
190 bool checkOnly) override;
191 template <typename MessageType>
192 bool autoFixHelper(const std::shared_ptr<const RuleCheckMessage>& msg,
193 bool checkOnly);
194 template <typename MessageType>
195 bool autoFix(const MessageType& msg);
196 template <typename MessageType>
197 bool fixPadFunction(const MessageType& msg);
198 void messageApprovalChanged(const SExpression& approval,
199 bool approved) noexcept override;
200 void notifyDerivedUiDataChanged() noexcept override;
201
202private:
203 void setCurrentFootprintIndex(int index) noexcept;
204 void setCurrentModelIndex(int index) noexcept;
205 void autoSelectCurrentModelIndex() noexcept;
206 bool isWritable() const noexcept;
207 void refreshUiData() noexcept;
208 void commitUiData() noexcept;
209 bool save() noexcept;
210 void memorizeInterface() noexcept;
211 void updateWatchedFiles() noexcept;
212 void setGridInterval(const PositiveLength& interval) noexcept;
214 const QString& settingsKey) noexcept;
215 void scheduleOpenGlSceneUpdate() noexcept;
216 void updateOpenGlScene() noexcept;
217 bool toggleBackgroundImage() noexcept;
218 void applyBackgroundImageSettings() noexcept;
219 FilePath getBackgroundImageCacheDir() const noexcept;
220 void requestRepaint() noexcept;
221 void applyTheme() noexcept;
222
223private:
224 // References
225 std::unique_ptr<Package> mPackage;
229 const bool mIsNewElement;
230
231 // State
235 Theme::GridStyle mGridStyle;
240 QHash<OpenGlObject::Type, float> mAlpha;
244
245 // Library metadata to be applied
246 slint::SharedString mName;
247 slint::SharedString mNameError;
249 slint::SharedString mDescription;
250 slint::SharedString mKeywords;
251 slint::SharedString mAuthor;
252 slint::SharedString mVersion;
253 slint::SharedString mVersionError;
258 Package::AssemblyType mAssemblyType;
261 std::shared_ptr<slint::SortModel<ui::PackagePadData>> mPadsSorted;
262 slint::SharedString mNewPadName;
263 slint::SharedString mNewPadNameError;
266
267 // Current tool
269 ui::EditorTool mTool;
270 Qt::CursorShape mToolCursorShape;
272 QVector<const Layer*> mToolLayersQt;
273 std::shared_ptr<slint::VectorModel<slint::SharedString>> mToolLayers;
282 QString mToolValue;
283 std::shared_ptr<slint::VectorModel<slint::SharedString>>
286 QVector<std::optional<Uuid>> mToolPackagePadsQt;
287 std::shared_ptr<slint::VectorModel<slint::SharedString>> mToolPackagePads;
289 Pad::ComponentSide mToolComponentSide;
290 ui::PadShape mToolShape;
295
297 QVector<QMetaObject::Connection> mFsmStateConnections;
299
300 // Objects in active state
304 std::unique_ptr<QTimer> mOpenGlSceneRebuildTimer;
305
306 // Background image
308 std::shared_ptr<QGraphicsPixmapItem> mBackgroundImageGraphicsItem;
309
314};
315
316/*******************************************************************************
317 * End of File
318 ******************************************************************************/
319
320} // namespace editor
321} // namespace librepcb
322
323#endif
The Alignment class.
Definition alignment.h:115
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
This class represents absolute, well-formatted paths to files or directories.
Definition filepath.h:127
The HAlign class.
Definition alignment.h:43
The Image class.
Definition image.h:49
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 Package class represents a package of a component (including footprint and 3D model)
Definition package.h:59
Represents a 3D model of a librepcb::Package.
Definition packagemodel.h:43
Base class for pads, extended in derived classes.
Definition pad.h:53
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
The RuleCheckMessage class.
Definition rulecheckmessage.h:45
The SExpression class.
Definition sexpression.h:69
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
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
The VAlign class.
Definition alignment.h:79
The Version class represents a version number in the format "1.42.7".
Definition version.h:58
The Zone class.
Definition zone.h:43
The CategoryTreeModel class.
Definition categorytreemodel.h:50
The FootprintListModel class.
Definition footprintlistmodel.h:53
This class provides a Dialog (GUI) to choose DXF import settings.
Definition graphicsexportdialog.h:61
The GraphicsLayerList class.
Definition graphicslayerlist.h:48
The GraphicsScene class.
Definition graphicsscene.h:64
The IF_GraphicsViewEventHandler class.
Definition if_graphicsvieweventhandler.h:45
Backend configuration for the LengthEdit UI element.
Definition lengtheditcontext.h:49
The LibraryEditor class.
Definition libraryeditor.h:56
Specialized base class for all library editor tabs.
Definition libraryeditortab.h:55
The LibraryElementCategoriesModel class.
Definition libraryelementcategoriesmodel.h:50
Represents one 3D object in an OpenGL 3D model.
Definition openglobject.h:43
Asynchronously generates a 3D board scene for OpenGL rendering.
Definition openglscenebuilder.h:50
Interface for the integration of the Package editor FSM.
Definition packageeditorfsmadapter.h:64
The PackageEditorFsm class is the finit state machine (FSM) of the package editor.
Definition packageeditorfsm.h:59
The PackageEditorState_AddHoles class.
Definition packageeditorstate_addholes.h:50
The PackageEditorState_AddNames class.
Definition packageeditorstate_addnames.h:44
The PackageEditorState_AddPads class.
Definition packageeditorstate_addpads.h:50
The PackageEditorState_AddValues class.
Definition packageeditorstate_addvalues.h:44
The PackageEditorState_DrawArc class.
Definition packageeditorstate_drawarc.h:44
The PackageEditorState_DrawCircle class.
Definition packageeditorstate_drawcircle.h:50
The PackageEditorState_DrawLine class.
Definition packageeditorstate_drawline.h:44
The PackageEditorState_DrawPolygon class.
Definition packageeditorstate_drawpolygon.h:44
The PackageEditorState_DrawRect class.
Definition packageeditorstate_drawrect.h:44
The PackageEditorState_DrawText class.
Definition packageeditorstate_drawtext.h:44
The PackageEditorState_DrawZone class.
Definition packageeditorstate_drawzone.h:50
The PackageEditorState_Measure class.
Definition packageeditorstate_measure.h:45
The PackageEditorState_ReNumberPads class.
Definition packageeditorstate_renumberpads.h:51
The PackageEditorState_Select class.
Definition packageeditorstate_select.h:58
The PackageModelListModel class.
Definition packagemodellistmodel.h:52
The PackagePadListModel class.
Definition packagepadlistmodel.h:49
The PackageTab class.
Definition packagetab.h:79
slint::Image renderScene(float width, float height, int scene) noexcept override
Definition packagetab.cpp:962
Angle mToolAngle
Definition packagetab.h:278
PositiveLength fsmGetGridInterval() const noexcept override
Definition packagetab.cpp:1071
void setDerivedUiData(const ui::PackageTabData &data) noexcept
Definition packagetab.cpp:443
bool graphicsSceneMouseMoved(const GraphicsSceneMouseEvent &e) noexcept override
Definition packagetab.cpp:1033
slint::SharedString mVersionError
Definition packagetab.h:253
std::shared_ptr< LibraryElementCategoriesModel > mCategories
Definition packagetab.h:256
Features mToolFeatures
Definition packagetab.h:268
bool requestClose() noexcept override
Request to close the tab.
Definition packagetab.cpp:996
bool execGraphicsExportDialog(GraphicsExportDialog::Output output, const QString &settingsKey) noexcept
Definition packagetab.cpp:2554
bool toggleBackgroundImage() noexcept
Definition packagetab.cpp:2673
std::optional< std::pair< RuleCheckMessageList, QSet< SExpression > > > runChecksImpl() override
Definition packagetab.cpp:1918
QPointF mSceneImagePos
Definition packagetab.h:242
std::unique_ptr< SlintGraphicsView > mView
Definition packagetab.h:227
slint::SharedString mNewPadNameError
Definition packagetab.h:263
bool save() noexcept
Definition packagetab.cpp:2488
Zone::Rules mToolZoneRules
Definition packagetab.h:294
void fsmSetSceneCursor(const Point &pos, bool cross, bool circle) noexcept override
Definition packagetab.cpp:1111
void applyTheme() noexcept
Definition packagetab.cpp:2735
bool mToolGrabArea
Definition packagetab.h:281
Alignment mToolAlign
Definition packagetab.h:285
LengthUnit mUnit
Definition packagetab.h:236
ui::PadShape mToolShape
Definition packagetab.h:290
bool mToolPressFit
Definition packagetab.h:292
bool graphicsSceneRightMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept override
Definition packagetab.cpp:1054
slint::SharedString mName
Definition packagetab.h:246
void layerRequested(const Layer &layer)
slint::SharedString mNewPadName
Definition packagetab.h:262
void memorizeInterface() noexcept
Definition packagetab.cpp:2528
bool mToolFiducial
Definition packagetab.h:291
void fsmToolEnter(PackageEditorState_Select &state) noexcept override
Definition packagetab.cpp:1154
QString mToolValue
Definition packagetab.h:282
int mFrameIndex
Definition packagetab.h:243
void packagePadRequested(const std::optional< Uuid > &pad)
bool graphicsSceneLeftMouseButtonDoubleClicked(const GraphicsSceneMouseEvent &e) noexcept override
Definition packagetab.cpp:1049
std::unique_ptr< GraphicsLayerList > mLayers
Definition packagetab.h:226
FilePath getBackgroundImageCacheDir() const noexcept
Definition packagetab.cpp:2724
QHash< OpenGlObject::Type, float > mAlpha
Definition packagetab.h:240
slint::SharedString mDescription
Definition packagetab.h:249
Mode
Definition packagetab.h:87
std::shared_ptr< PackagePadListModel > mPads
Definition packagetab.h:260
bool graphicsSceneLeftMouseButtonPressed(const GraphicsSceneMouseEvent &e) noexcept override
Definition packagetab.cpp:1039
std::shared_ptr< QGraphicsPixmapItem > mBackgroundImageGraphicsItem
Definition packagetab.h:308
QWidget * fsmGetParentWidget() noexcept override
Definition packagetab.cpp:1063
LengthEditContext mToolDrill
Definition packagetab.h:277
slint::SharedString mVersion
Definition packagetab.h:252
Theme::GridStyle mGridStyle
Definition packagetab.h:235
QStringList mOpenGlSceneBuilderErrors
Definition packagetab.h:241
std::shared_ptr< slint::VectorModel< slint::SharedString > > mToolValueSuggestions
Definition packagetab.h:284
std::unique_ptr< OpenGlProjection > mOpenGlProjection
Definition packagetab.h:239
void watchedFilesModifiedChanged() noexcept override
Definition packagetab.cpp:1883
bool mView3d
Definition packagetab.h:234
std::shared_ptr< slint::VectorModel< slint::SharedString > > mToolLayers
Definition packagetab.h:273
GraphicsScene * fsmGetGraphicsScene() noexcept override
Definition packagetab.cpp:1067
LengthEditContext mToolSize
Definition packagetab.h:276
bool mWizardMode
Definition packagetab.h:232
bool mDeprecated
Definition packagetab.h:255
void fsmSetViewCursor(const std::optional< Qt::CursorShape > &shape) noexcept override
Definition packagetab.cpp:1075
bool processSceneScrolled(const QPointF &pos, slint::private_api::PointerScrollEvent e) noexcept override
Definition packagetab.cpp:982
const bool mIsNewElement
Definition packagetab.h:229
void fsmToolLeave() noexcept override
Definition packagetab.cpp:1145
std::unique_ptr< QTimer > mOpenGlSceneRebuildTimer
Definition packagetab.h:304
void valueRequested(const QString &value)
void angleRequested(const Angle &angle)
Package::AssemblyType mAssemblyType
Definition packagetab.h:258
std::shared_ptr< PackageModel > mCurrentModel
Definition packagetab.h:238
std::unique_ptr< SlintOpenGlView > mOpenGlView
Definition packagetab.h:302
void messageApprovalChanged(const SExpression &approval, bool approved) noexcept override
Definition packagetab.cpp:1980
void autoSelectCurrentModelIndex() noexcept
Definition packagetab.cpp:2377
void reloadFromDisk() override
Definition packagetab.cpp:1887
bool autoFixImpl(const std::shared_ptr< const RuleCheckMessage > &msg, bool checkOnly) override
Definition packagetab.cpp:1935
void shapeRequested(const ui::PadShape shape)
void updateOpenGlScene() noexcept
Definition packagetab.cpp:2601
void requestRepaint() noexcept
Definition packagetab.cpp:2730
bool processScenePointerEvent(const QPointF &pos, slint::private_api::PointerEvent e) noexcept override
Definition packagetab.cpp:973
void vAlignRequested(const VAlign &align)
void applyBackgroundImageSettings() noexcept
Definition packagetab.cpp:2702
bool graphicsSceneKeyPressed(const GraphicsSceneKeyEvent &e) noexcept override
Definition packagetab.cpp:1023
BackgroundImageSettings mBackgroundImageSettings
Definition packagetab.h:307
QPainterPath fsmCalcPosWithTolerance(const Point &pos, qreal multiplier) const noexcept override
Definition packagetab.cpp:1118
FilePath getDirectoryPath() const noexcept override
Definition packagetab.cpp:264
void hAlignRequested(const HAlign &align)
Signal< PackageTab > onDerivedUiDataChanged
Definition packagetab.h:84
bool autoFixHelper(const std::shared_ptr< const RuleCheckMessage > &msg, bool checkOnly)
Definition packagetab.cpp:1966
UnsignedLimitedRatio mToolRatio
Definition packagetab.h:279
std::shared_ptr< FootprintListModel > mFootprints
Definition packagetab.h:264
QVector< QMetaObject::Connection > mFsmStateConnections
Editor state machine.
Definition packagetab.h:297
bool processSceneKeyEvent(const slint::private_api::KeyEvent &e) noexcept override
Definition packagetab.cpp:991
Version mVersionParsed
Definition packagetab.h:254
void grabAreaRequested(bool grabArea)
void fsmSetViewGrayOut(bool grayOut) noexcept override
Definition packagetab.cpp:1085
void setCurrentModelIndex(int index) noexcept
Definition packagetab.cpp:2366
void zoneLayerRequested(Zone::Layer layer, bool enable)
void fsmSetViewRuler(const std::optional< std::pair< Point, Point > > &pos) noexcept override
Definition packagetab.cpp:1104
void commitUiData() noexcept
Definition packagetab.cpp:2450
bool autoFix(const MessageType &msg)
void fsmSetViewInfoBoxText(const QString &text) noexcept override
Definition packagetab.cpp:1091
const Layer * mToolLayer
Definition packagetab.h:274
std::unique_ptr< GraphicsScene > mScene
Definition packagetab.h:301
FootprintList mOriginalFootprints
Definition packagetab.h:313
void componentSideRequested(Pad::ComponentSide side)
void scheduleOpenGlSceneUpdate() noexcept
Definition packagetab.cpp:2594
slint::SharedString mNameError
Definition packagetab.h:247
std::unique_ptr< OpenGlSceneBuilder > mOpenGlSceneBuilder
Definition packagetab.h:303
QSet< Uuid > mOriginalPackagePadUuids
Definition packagetab.h:312
slint::SharedString mKeywords
Definition packagetab.h:250
Qt::CursorShape mToolCursorShape
Definition packagetab.h:270
void fsmSetStatusBarMessage(const QString &message, int timeoutMs=-1) noexcept override
Definition packagetab.cpp:1133
Point fsmMapGlobalPosToScenePos(const QPoint &pos) const noexcept override
Definition packagetab.cpp:1123
PackageTab(const PackageTab &other)=delete
void trigger(ui::TabAction a) noexcept override
Definition packagetab.cpp:641
std::shared_ptr< CategoryTreeModel > mCategoriesTree
Definition packagetab.h:257
void deactivate() noexcept override
Definition packagetab.cpp:621
std::optional< Uuid > mToolPackagePad
Definition packagetab.h:288
ui::PackageTabData getDerivedUiData() const noexcept
Definition packagetab.cpp:311
void notifyDerivedUiDataChanged() noexcept override
Definition packagetab.cpp:1990
bool mChooseCategory
Definition packagetab.h:237
ElementName mNameParsed
Definition packagetab.h:248
std::shared_ptr< PackageModelListModel > mModels
Definition packagetab.h:265
bool fixPadFunction(const MessageType &msg)
Definition packagetab.cpp:2284
void ratioRequested(const UnsignedLimitedRatio &ratio)
std::unique_ptr< Package > mPackage
Definition packagetab.h:225
void pressFitRequested(bool pressFit)
slint::SharedString mAuthor
Definition packagetab.h:251
bool mOpenGlSceneRebuildScheduled
Definition packagetab.h:228
bool isWritable() const noexcept
Definition packagetab.cpp:2396
std::shared_ptr< slint::SortModel< ui::PackagePadData > > mPadsSorted
Definition packagetab.h:261
QString mToolOverlayText
Definition packagetab.h:271
ui::TabData getUiData() const noexcept override
Definition packagetab.cpp:268
bool graphicsSceneKeyReleased(const GraphicsSceneKeyEvent &e) noexcept override
Definition packagetab.cpp:1028
void updateWatchedFiles() noexcept
Definition packagetab.cpp:2533
std::unique_ptr< PackageEditorFsm > mFsm
Definition packagetab.h:298
void setCurrentFootprintIndex(int index) noexcept
Definition packagetab.cpp:2339
bool mToolFilled
Definition packagetab.h:280
int mCurrentPageIndex
Definition packagetab.h:233
void filledRequested(bool filled)
ui::EditorTool mTool
Definition packagetab.h:269
void fsmSetFeatures(Features features) noexcept override
Definition packagetab.cpp:1138
LengthEditContext mToolLineWidth
Definition packagetab.h:275
void setGridInterval(const PositiveLength &interval) noexcept
Definition packagetab.cpp:2541
void refreshUiData() noexcept
Definition packagetab.cpp:2400
bool graphicsSceneLeftMouseButtonReleased(const GraphicsSceneMouseEvent &e) noexcept override
Definition packagetab.cpp:1044
Pad::ComponentSide mToolComponentSide
Definition packagetab.h:289
QVector< std::optional< Uuid > > mToolPackagePadsQt
Definition packagetab.h:286
LengthEditContext mMinCopperClearance
Definition packagetab.h:259
QVector< const Layer * > mToolLayersQt
Definition packagetab.h:272
void activate() noexcept override
Definition packagetab.cpp:581
void zoneRuleRequested(Zone::Rule rule, bool enable)
bool mIsInterfaceBroken
Broken interface detection.
Definition packagetab.h:311
Zone::Layers mToolZoneLayers
Definition packagetab.h:293
std::shared_ptr< slint::VectorModel< slint::SharedString > > mToolPackagePads
Definition packagetab.h:287
The SlintGraphicsView class.
Definition slintgraphicsview.h:52
The SlintOpenGlView class.
Definition slintopenglview.h:86
Definition occmodel.cpp:77
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition length.h:810
QVector< std::shared_ptr< const RuleCheckMessage > > RuleCheckMessageList
Definition rulecheckmessage.h:104
type_safe::constrained_type< Ratio, UnsignedLimitedRatioConstraint, UnsignedLimitedRatioVerifier > UnsignedLimitedRatio
Definition ratio.h:376
type_safe::constrained_type< QString, ElementNameConstraint, ElementNameVerifier > ElementName
Definition elementname.h:84
Definition uuid.h:186
Settings about a background image ("underlay")
Definition backgroundimagesettings.h:48
Definition graphicsscene.h:52
Definition graphicsscene.h:45
Definition slintopenglview.h:43