20#ifndef LIBREPCB_EDITOR_BOARDCLIPBOARDDATA_H
21#define LIBREPCB_EDITOR_BOARDCLIPBOARDDATA_H
53class TransactionalDirectory;
54class TransactionalFileSystem;
69 static constexpr const char*
tagname =
"device";
104 position(node.getChild(
"position")),
150 static constexpr const char*
tagname =
"netsegment";
169 node.getChild(
"net/@0"))),
191 return (
netName != rhs.netName) || (
pads != rhs.pads) ||
198 static constexpr const char*
tagname =
"plane";
245 node.getChild(
"net/@0"))),
249 node.getChild(
"min_copper_clearance/@0"))),
251 node.getChild(
"min_board_clearance/@0"))),
253 node.getChild(
"min_npth_clearance/@0"))),
257 node.getChild(
"connect_style/@0"))),
289 return (
uuid != rhs.uuid) || (
layer != rhs.layer) ||
313 const QString& path = "") noexcept;
332 std::unique_ptr<QMimeData>
toMimeData()
const;
333 static std::unique_ptr<BoardClipboardData>
fromMimeData(
334 const QMimeData* mime);
335 static bool isValid(
const QMimeData* mime)
noexcept;
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
The BI_Plane class.
Definition bi_plane.h:52
ConnectStyle
Definition bi_plane.h:68
The BoardHoleData class.
Definition boardholedata.h:45
The BoardPolygonData class.
Definition boardpolygondata.h:45
The BoardStrokeTextData class.
Definition boardstroketextdata.h:49
void serialize(SExpression &root) const
Serialize into librepcb::SExpression node.
Definition boardstroketextdata.cpp:242
The BoardZoneData class.
Definition boardzonedata.h:44
The Layer class provides all supported geometry layers.
Definition layer.h:42
The Path class represents a list of vertices connected by straight lines or circular arc segments.
Definition path.h:59
void serialize(SExpression &root) const
Serialize into librepcb::SExpression node.
Definition path.cpp:392
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
void serialize(SExpression &root) const
Serialize into librepcb::SExpression node.
Definition point.cpp:136
The SExpression class.
Definition sexpression.h:69
SExpression & appendList(const QString &name)
Definition sexpression.cpp:212
QList< SExpression * > getChildren(Type type) noexcept
Definition sexpression.cpp:94
void ensureLineBreak()
Definition sexpression.cpp:206
void appendChild(std::unique_ptr< SExpression > child)
Definition sexpression.cpp:217
int append(const std::shared_ptr< T > &obj) noexcept
Definition serializableobjectlist.h:343
void serialize(SExpression &root) const
Serialize into librepcb::SExpression node.
Definition serializableobjectlist.h:380
The Signal class is used to emit signals on non-QObject derived classes.
Definition signalslot.h:65
Helper class to access a subdirectory of TransactionalFileSystem.
Definition transactionaldirectory.h:51
Transactional librepcb::FileSystem implementation.
Definition transactionalfilesystem.h:70
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
The BoardClipboardData class.
Definition boardclipboarddata.h:65
QMap< std::pair< Uuid, Uuid >, Point > mPadPositions
Definition boardclipboarddata.h:354
Uuid mBoardUuid
Definition boardclipboarddata.h:345
static QString getMimeType() noexcept
Definition boardclipboarddata.cpp:197
std::unique_ptr< QMimeData > toMimeData() const
Definition boardclipboarddata.cpp:122
QMap< std::pair< Uuid, Uuid >, Point > & getPadPositions() noexcept
Definition boardclipboarddata.h:327
SerializableObjectList< Device, Device > & getDevices() noexcept
Definition boardclipboarddata.h:316
SerializableObjectList< NetSegment, NetSegment > & getNetSegments() noexcept
Definition boardclipboarddata.h:319
std::unique_ptr< TransactionalDirectory > getDirectory(const QString &path="") noexcept
Definition boardclipboarddata.cpp:112
BoardClipboardData & operator=(const BoardClipboardData &rhs)=delete
SerializableObjectList< Device, Device > mDevices
Definition boardclipboarddata.h:347
QList< BoardZoneData > & getZones() noexcept
Definition boardclipboarddata.h:323
BoardClipboardData()=delete
SerializableObjectList< NetSegment, NetSegment > mNetSegments
Definition boardclipboarddata.h:348
QList< BoardHoleData > & getHoles() noexcept
Definition boardclipboarddata.h:326
const Uuid & getBoardUuid() const noexcept
Definition boardclipboarddata.h:314
SerializableObjectList< Plane, Plane > mPlanes
Definition boardclipboarddata.h:349
const Point & getCursorPos() const noexcept
Definition boardclipboarddata.h:315
QList< BoardZoneData > mZones
Definition boardclipboarddata.h:350
QList< BoardStrokeTextData > & getStrokeTexts() noexcept
Definition boardclipboarddata.h:325
QList< BoardPolygonData > & getPolygons() noexcept
Definition boardclipboarddata.h:324
QList< BoardStrokeTextData > mStrokeTexts
Definition boardclipboarddata.h:352
static std::unique_ptr< BoardClipboardData > fromMimeData(const QMimeData *mime)
Definition boardclipboarddata.cpp:178
std::shared_ptr< TransactionalFileSystem > mFileSystem
Definition boardclipboarddata.h:344
~BoardClipboardData() noexcept
Definition boardclipboarddata.cpp:94
bool isEmpty() const noexcept
Definition boardclipboarddata.cpp:106
BoardClipboardData(const BoardClipboardData &other)=delete
QList< BoardPolygonData > mPolygons
Definition boardclipboarddata.h:351
static bool isValid(const QMimeData *mime) noexcept
Definition boardclipboarddata.cpp:189
QList< BoardHoleData > mHoles
Definition boardclipboarddata.h:353
SerializableObjectList< Plane, Plane > & getPlanes() noexcept
Definition boardclipboarddata.h:322
Point mCursorPos
Definition boardclipboarddata.h:346
Definition occmodel.cpp:77
type_safe::constrained_type< Length, PositiveLengthConstraint, PositiveLengthVerifier > PositiveLength
Definition length.h:810
type_safe::constrained_type< QString, CircuitIdentifierConstraint, CircuitIdentifierVerifier > CircuitIdentifier
Definition circuitidentifier.h:88
type_safe::constrained_type< Length, UnsignedLengthConstraint, UnsignedLengthVerifier > UnsignedLength
Definition length.h:694
AttributeKey deserialize(const SExpression &node)
Definition attributekey.h:99
Definition boardclipboarddata.h:68
bool locked
Definition boardclipboarddata.h:77
QList< BoardStrokeTextData > strokeTexts
Definition boardclipboarddata.h:80
Angle rotation
Definition boardclipboarddata.h:75
bool glue
Definition boardclipboarddata.h:78
Device(const SExpression &node)
Definition boardclipboarddata.h:100
Uuid componentUuid
Definition boardclipboarddata.h:71
bool mirrored
Definition boardclipboarddata.h:76
Device(const Uuid &componentUuid, const Uuid &libDeviceUuid, const Uuid &libFootprintUuid, const Point &position, const Angle &rotation, bool mirrored, bool locked, bool glue, const AttributeList &attributes, const QList< BoardStrokeTextData > &strokeTexts)
Definition boardclipboarddata.h:83
bool operator!=(const Device &rhs) noexcept
Definition boardclipboarddata.h:138
AttributeList attributes
Definition boardclipboarddata.h:79
void serialize(SExpression &root) const
Definition boardclipboarddata.h:117
static constexpr const char * tagname
Definition boardclipboarddata.h:69
Uuid libFootprintUuid
Definition boardclipboarddata.h:73
Signal< Device > onEdited
Dummy event, not used.
Definition boardclipboarddata.h:81
Point position
Definition boardclipboarddata.h:74
Uuid libDeviceUuid
Definition boardclipboarddata.h:72
Definition boardclipboarddata.h:149
BoardPadDataList pads
Definition boardclipboarddata.h:153
JunctionList junctions
Definition boardclipboarddata.h:155
std::optional< CircuitIdentifier > netName
Definition boardclipboarddata.h:152
TraceList traces
Definition boardclipboarddata.h:156
NetSegment(const std::optional< CircuitIdentifier > &netName)
Definition boardclipboarddata.h:159
ViaList vias
Definition boardclipboarddata.h:154
NetSegment(const SExpression &node)
Definition boardclipboarddata.h:167
void serialize(SExpression &root) const
Definition boardclipboarddata.h:176
static constexpr const char * tagname
Definition boardclipboarddata.h:150
bool operator!=(const NetSegment &rhs) noexcept
Definition boardclipboarddata.h:190
Signal< NetSegment > onEdited
Dummy event, not used.
Definition boardclipboarddata.h:157
Definition boardclipboarddata.h:197
UnsignedLength minClearanceToBoard
Definition boardclipboarddata.h:206
bool locked
Definition boardclipboarddata.h:213
UnsignedLength minClearanceToCopper
Definition boardclipboarddata.h:205
Plane(const Uuid &uuid, const Layer &layer, const std::optional< CircuitIdentifier > &netSignalName, const Path &outline, const UnsignedLength &minWidth, const UnsignedLength &minClearanceToCopper, const UnsignedLength &minClearanceToBoard, const UnsignedLength &minClearanceToNpth, bool keepIslands, int priority, BI_Plane::ConnectStyle connectStyle, const PositiveLength &thermalGap, const PositiveLength &thermalSpokeWidth, bool locked)
Definition boardclipboarddata.h:216
Uuid uuid
Definition boardclipboarddata.h:200
bool keepIslands
Definition boardclipboarddata.h:208
UnsignedLength minClearanceToNpth
Definition boardclipboarddata.h:207
Plane(const SExpression &node)
Definition boardclipboarddata.h:241
Path outline
Definition boardclipboarddata.h:203
bool operator!=(const Plane &rhs) noexcept
Definition boardclipboarddata.h:288
UnsignedLength minWidth
Definition boardclipboarddata.h:204
PositiveLength thermalSpokeWidth
Definition boardclipboarddata.h:212
void serialize(SExpression &root) const
Definition boardclipboarddata.h:265
static constexpr const char * tagname
Definition boardclipboarddata.h:198
BI_Plane::ConnectStyle connectStyle
Definition boardclipboarddata.h:210
int priority
Definition boardclipboarddata.h:209
const Layer * layer
Definition boardclipboarddata.h:201
PositiveLength thermalGap
Definition boardclipboarddata.h:211
std::optional< CircuitIdentifier > netSignalName
Definition boardclipboarddata.h:202
Signal< Plane > onEdited
Dummy event, not used.
Definition boardclipboarddata.h:214