LibrePCB Developers Documentation
Loading...
Searching...
No Matches
footprintclipboarddata.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_FOOTPRINTCLIPBOARDDATA_H
21
#define LIBREPCB_EDITOR_FOOTPRINTCLIPBOARDDATA_H
22
23
/*******************************************************************************
24
* Includes
25
******************************************************************************/
26
#include <
librepcb/core/geometry/circle.h
>
27
#include <
librepcb/core/geometry/hole.h
>
28
#include <
librepcb/core/geometry/polygon.h
>
29
#include <
librepcb/core/geometry/stroketext.h
>
30
#include <
librepcb/core/geometry/zone.h
>
31
#include <
librepcb/core/library/pkg/footprintpad.h
>
32
#include <
librepcb/core/library/pkg/packagepad.h
>
33
34
#include <QtCore>
35
#include <QtWidgets>
36
37
#include <memory>
38
39
/*******************************************************************************
40
* Namespace / Forward Declarations
41
******************************************************************************/
42
namespace
librepcb
{
43
namespace
editor {
44
45
/*******************************************************************************
46
* Class FootprintClipboardData
47
******************************************************************************/
48
52
class
FootprintClipboardData
final {
53
public
:
54
// Constructors / Destructor
55
FootprintClipboardData
() =
delete
;
56
FootprintClipboardData
(
const
FootprintClipboardData
& other) =
delete
;
57
FootprintClipboardData
(
const
Uuid
& footprintUuid,
58
const
PackagePadList
& packagePads,
59
const
Point
& cursorPos)
noexcept
;
60
explicit
FootprintClipboardData
(
const
SExpression
& node);
61
~FootprintClipboardData
() noexcept;
62
63
// Getters
64
bool
getItemCount
() const noexcept {
65
return
mFootprintPads
.
count
() +
mPolygons
.
count
() +
mCircles
.
count
() +
66
mStrokeTexts
.
count
() +
mZones
.
count
() +
mHoles
.
count
();
67
}
68
const
Uuid
&
getFootprintUuid
() const noexcept {
return
mFootprintUuid
; }
69
const
Point
&
getCursorPos
() const noexcept {
return
mCursorPos
; }
70
PackagePadList
&
getPackagePads
() noexcept {
return
mPackagePads
; }
71
const
PackagePadList
&
getPackagePads
() const noexcept {
return
mPackagePads
; }
72
FootprintPadList
&
getFootprintPads
() noexcept {
return
mFootprintPads
; }
73
const
FootprintPadList
&
getFootprintPads
() const noexcept {
74
return
mFootprintPads
;
75
}
76
PolygonList
&
getPolygons
() noexcept {
return
mPolygons
; }
77
const
PolygonList
&
getPolygons
() const noexcept {
return
mPolygons
; }
78
CircleList
&
getCircles
() noexcept {
return
mCircles
; }
79
const
CircleList
&
getCircles
() const noexcept {
return
mCircles
; }
80
StrokeTextList
&
getStrokeTexts
() noexcept {
return
mStrokeTexts
; }
81
const
StrokeTextList
&
getStrokeTexts
() const noexcept {
return
mStrokeTexts
; }
82
ZoneList
&
getZones
() noexcept {
return
mZones
; }
83
const
ZoneList
&
getZones
() const noexcept {
return
mZones
; }
84
HoleList
&
getHoles
() noexcept {
return
mHoles
; }
85
const
HoleList
&
getHoles
() const noexcept {
return
mHoles
; }
86
87
// General Methods
88
std::unique_ptr<QMimeData>
toMimeData
();
89
static
std::unique_ptr<FootprintClipboardData>
fromMimeData
(
90
const
QMimeData* mime);
91
static
bool
isValid
(
const
QMimeData* mime)
noexcept
;
92
93
// Operator Overloadings
94
FootprintClipboardData
&
operator=
(
const
FootprintClipboardData
& rhs) =
delete
;
95
96
private
:
// Methods
97
QPixmap
generatePixmap
() noexcept;
98
static QString
getMimeType
() noexcept;
99
100
private:
// Data
101
Uuid
mFootprintUuid
;
102
PackagePadList
mPackagePads
;
103
Point
mCursorPos
;
104
FootprintPadList
mFootprintPads
;
105
PolygonList
mPolygons
;
106
CircleList
mCircles
;
107
StrokeTextList
mStrokeTexts
;
108
ZoneList
mZones
;
109
HoleList
mHoles
;
110
};
111
112
/*******************************************************************************
113
* End of File
114
******************************************************************************/
115
116
}
// namespace editor
117
}
// namespace librepcb
118
119
#endif
circle.h
librepcb::Point
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition
point.h:78
librepcb::SExpression
The SExpression class.
Definition
sexpression.h:69
librepcb::SerializableObjectList< PackagePad, PackagePadListNameProvider, PackagePad::Event >
librepcb::SerializableObjectList::count
int count() const noexcept
Definition
serializableobjectlist.h:199
librepcb::Uuid
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition
uuid.h:56
librepcb::editor::FootprintClipboardData
The FootprintClipboardData class.
Definition
footprintclipboarddata.h:52
librepcb::editor::FootprintClipboardData::getPackagePads
PackagePadList & getPackagePads() noexcept
Definition
footprintclipboarddata.h:70
librepcb::editor::FootprintClipboardData::mPackagePads
PackagePadList mPackagePads
Definition
footprintclipboarddata.h:102
librepcb::editor::FootprintClipboardData::getHoles
HoleList & getHoles() noexcept
Definition
footprintclipboarddata.h:84
librepcb::editor::FootprintClipboardData::getMimeType
static QString getMimeType() noexcept
Definition
footprintclipboarddata.cpp:168
librepcb::editor::FootprintClipboardData::generatePixmap
QPixmap generatePixmap() noexcept
Definition
footprintclipboarddata.cpp:134
librepcb::editor::FootprintClipboardData::getFootprintPads
const FootprintPadList & getFootprintPads() const noexcept
Definition
footprintclipboarddata.h:73
librepcb::editor::FootprintClipboardData::getFootprintUuid
const Uuid & getFootprintUuid() const noexcept
Definition
footprintclipboarddata.h:68
librepcb::editor::FootprintClipboardData::getZones
ZoneList & getZones() noexcept
Definition
footprintclipboarddata.h:82
librepcb::editor::FootprintClipboardData::getPolygons
PolygonList & getPolygons() noexcept
Definition
footprintclipboarddata.h:76
librepcb::editor::FootprintClipboardData::mCircles
CircleList mCircles
Definition
footprintclipboarddata.h:106
librepcb::editor::FootprintClipboardData::getPackagePads
const PackagePadList & getPackagePads() const noexcept
Definition
footprintclipboarddata.h:71
librepcb::editor::FootprintClipboardData::mFootprintUuid
Uuid mFootprintUuid
Definition
footprintclipboarddata.h:101
librepcb::editor::FootprintClipboardData::getPolygons
const PolygonList & getPolygons() const noexcept
Definition
footprintclipboarddata.h:77
librepcb::editor::FootprintClipboardData::getItemCount
bool getItemCount() const noexcept
Definition
footprintclipboarddata.h:64
librepcb::editor::FootprintClipboardData::getHoles
const HoleList & getHoles() const noexcept
Definition
footprintclipboarddata.h:85
librepcb::editor::FootprintClipboardData::getZones
const ZoneList & getZones() const noexcept
Definition
footprintclipboarddata.h:83
librepcb::editor::FootprintClipboardData::mZones
ZoneList mZones
Definition
footprintclipboarddata.h:108
librepcb::editor::FootprintClipboardData::operator=
FootprintClipboardData & operator=(const FootprintClipboardData &rhs)=delete
librepcb::editor::FootprintClipboardData::getCursorPos
const Point & getCursorPos() const noexcept
Definition
footprintclipboarddata.h:69
librepcb::editor::FootprintClipboardData::getCircles
const CircleList & getCircles() const noexcept
Definition
footprintclipboarddata.h:79
librepcb::editor::FootprintClipboardData::~FootprintClipboardData
~FootprintClipboardData() noexcept
Definition
footprintclipboarddata.cpp:69
librepcb::editor::FootprintClipboardData::FootprintClipboardData
FootprintClipboardData()=delete
librepcb::editor::FootprintClipboardData::fromMimeData
static std::unique_ptr< FootprintClipboardData > fromMimeData(const QMimeData *mime)
Definition
footprintclipboarddata.cpp:113
librepcb::editor::FootprintClipboardData::FootprintClipboardData
FootprintClipboardData(const FootprintClipboardData &other)=delete
librepcb::editor::FootprintClipboardData::mFootprintPads
FootprintPadList mFootprintPads
Definition
footprintclipboarddata.h:104
librepcb::editor::FootprintClipboardData::mPolygons
PolygonList mPolygons
Definition
footprintclipboarddata.h:105
librepcb::editor::FootprintClipboardData::getStrokeTexts
StrokeTextList & getStrokeTexts() noexcept
Definition
footprintclipboarddata.h:80
librepcb::editor::FootprintClipboardData::getCircles
CircleList & getCircles() noexcept
Definition
footprintclipboarddata.h:78
librepcb::editor::FootprintClipboardData::getStrokeTexts
const StrokeTextList & getStrokeTexts() const noexcept
Definition
footprintclipboarddata.h:81
librepcb::editor::FootprintClipboardData::mHoles
HoleList mHoles
Definition
footprintclipboarddata.h:109
librepcb::editor::FootprintClipboardData::toMimeData
std::unique_ptr< QMimeData > toMimeData()
Definition
footprintclipboarddata.cpp:76
librepcb::editor::FootprintClipboardData::isValid
static bool isValid(const QMimeData *mime) noexcept
Definition
footprintclipboarddata.cpp:126
librepcb::editor::FootprintClipboardData::getFootprintPads
FootprintPadList & getFootprintPads() noexcept
Definition
footprintclipboarddata.h:72
librepcb::editor::FootprintClipboardData::mStrokeTexts
StrokeTextList mStrokeTexts
Definition
footprintclipboarddata.h:107
librepcb::editor::FootprintClipboardData::mCursorPos
Point mCursorPos
Definition
footprintclipboarddata.h:103
footprintpad.h
hole.h
librepcb
Definition
occmodel.cpp:77
packagepad.h
polygon.h
stroketext.h
zone.h
libs
librepcb
editor
library
pkg
footprintclipboarddata.h
Generated on Sun Feb 15 2026 17:10:31 for LibrePCB Developers Documentation by
1.9.8