LibrePCB Developers Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
interactivehtmlbomoutputjob.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_CORE_INTERACTIVEHTMLBOMOUTPUTJOB_H
21#define LIBREPCB_CORE_INTERACTIVEHTMLBOMOUTPUTJOB_H
22
23/*******************************************************************************
24 * Includes
25 ******************************************************************************/
26#include "../export/interactivehtmlbom.h"
27#include "outputjob.h"
28
29#include <QtCore>
30#include <QtGui>
31
32#include <optional>
33
34/*******************************************************************************
35 * Namespace / Forward Declarations
36 ******************************************************************************/
37namespace librepcb {
38
39/*******************************************************************************
40 * Class InteractiveHtmlBomOutputJob
41 ******************************************************************************/
42
47 Q_DECLARE_TR_FUNCTIONS(InteractiveHtmlBomOutputJob)
48
49public:
52
53 // Constructors / Destructor
56 const InteractiveHtmlBomOutputJob& other) noexcept;
57 explicit InteractiveHtmlBomOutputJob(const SExpression& node);
58 virtual ~InteractiveHtmlBomOutputJob() noexcept;
59
60 // Getters
61 virtual QString getTypeTr() const noexcept override;
62 virtual QIcon getTypeIcon() const noexcept override;
63 InteractiveHtmlBom::ViewMode getViewMode() const noexcept {
64 return mViewMode;
65 }
69 bool getDarkMode() const noexcept { return mDarkMode; }
70 const Angle& getBoardRotation() const noexcept { return mBoardRotation; }
71 bool getOffsetBackRotation() const noexcept { return mOffsetBackRotation; }
72 bool getShowSilkscreen() const noexcept { return mShowSilkscreen; }
73 bool getShowFabrication() const noexcept { return mShowFabrication; }
74 bool getShowPads() const noexcept { return mShowPads; }
75 bool getShowTracks() const noexcept { return mShowTracks; }
76 bool getShowZones() const noexcept { return mShowZones; }
77 const QStringList& getCheckBoxes() const noexcept { return mCheckBoxes; }
78 const QStringList& getComponentOrder() const noexcept {
79 return mComponentOrder;
80 }
81 const QStringList& getCustomAttributes() const noexcept {
82 return mCustomAttributes;
83 }
84 const BoardSet& getBoards() const noexcept { return mBoards; }
85 const AssemblyVariantSet& getAssemblyVariants() const noexcept {
86 return mAssemblyVariants;
87 }
88 const QString& getOutputPath() const noexcept { return mOutputPath; }
89
90 // Setters
91 void setViewMode(InteractiveHtmlBom::ViewMode mode) noexcept;
93 void setDarkMode(bool dark) noexcept;
94 void setBoardRotation(const Angle& rot) noexcept;
95 void setOffsetBackRotation(bool offset) noexcept;
96 void setShowSilkscreen(bool show) noexcept;
97 void setShowFabrication(bool show) noexcept;
98 void setShowPads(bool show) noexcept;
99 void setShowTracks(bool show) noexcept;
100 void setShowZones(bool show) noexcept;
101 void setCheckBoxes(const QStringList& cbx) noexcept;
102 void setComponentOrder(const QStringList& order) noexcept;
103 void setCustomAttributes(const QStringList& attrs) noexcept;
104 void setBoards(const BoardSet& boards) noexcept;
105 void setAssemblyVariants(const AssemblyVariantSet& avs) noexcept;
106 void setOutputPath(const QString& path) noexcept;
107
108 // General Methods
109 static QString getTypeName() noexcept { return "interactive_bom"; }
110 static QString getTypeTrStatic() noexcept {
111 return tr("Interactive Bill Of Materials") % " (*.html)";
112 }
113 virtual std::shared_ptr<OutputJob> cloneShared() const noexcept override;
114
115 // Operator Overloadings
117 const InteractiveHtmlBomOutputJob& rhs) = delete;
118
119private: // Methods
120 virtual void serializeDerived(SExpression& root) const override;
121 virtual bool equals(const OutputJob& rhs) const noexcept override;
122
123private: // Data
134 QStringList mCheckBoxes;
135 QStringList mComponentOrder;
136 QStringList mCustomAttributes;
139 QString mOutputPath;
140};
141
142/*******************************************************************************
143 * End of File
144 ******************************************************************************/
145
146} // namespace librepcb
147
148#endif
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition angle.h:76
Zip file reader.
Definition interactivehtmlbom.h:55
ViewMode
Definition interactivehtmlbom.h:57
HighlightPin1Mode
Definition interactivehtmlbom.h:58
Interactive HTML BOM output job.
Definition interactivehtmlbomoutputjob.h:46
bool getOffsetBackRotation() const noexcept
Definition interactivehtmlbomoutputjob.h:71
bool getShowFabrication() const noexcept
Definition interactivehtmlbomoutputjob.h:73
void setShowTracks(bool show) noexcept
Definition interactivehtmlbomoutputjob.cpp:184
bool mShowSilkscreen
Definition interactivehtmlbomoutputjob.h:129
InteractiveHtmlBom::ViewMode getViewMode() const noexcept
Definition interactivehtmlbomoutputjob.h:63
InteractiveHtmlBomOutputJob() noexcept
Definition interactivehtmlbomoutputjob.cpp:37
void setShowSilkscreen(bool show) noexcept
Definition interactivehtmlbomoutputjob.cpp:163
bool getShowPads() const noexcept
Definition interactivehtmlbomoutputjob.h:74
bool mShowFabrication
Definition interactivehtmlbomoutputjob.h:130
bool mOffsetBackRotation
Definition interactivehtmlbomoutputjob.h:128
BoardSet mBoards
Definition interactivehtmlbomoutputjob.h:137
QStringList mComponentOrder
Definition interactivehtmlbomoutputjob.h:135
virtual QString getTypeTr() const noexcept override
Definition interactivehtmlbomoutputjob.cpp:114
void setOutputPath(const QString &path) noexcept
Definition interactivehtmlbomoutputjob.cpp:237
void setCustomAttributes(const QStringList &attrs) noexcept
Definition interactivehtmlbomoutputjob.cpp:214
bool mShowZones
Definition interactivehtmlbomoutputjob.h:133
virtual bool equals(const OutputJob &rhs) const noexcept override
Definition interactivehtmlbomoutputjob.cpp:288
bool mShowTracks
Definition interactivehtmlbomoutputjob.h:132
const Angle & getBoardRotation() const noexcept
Definition interactivehtmlbomoutputjob.h:70
static QString getTypeName() noexcept
Definition interactivehtmlbomoutputjob.h:109
const QStringList & getCheckBoxes() const noexcept
Definition interactivehtmlbomoutputjob.h:77
bool mDarkMode
Definition interactivehtmlbomoutputjob.h:126
const AssemblyVariantSet & getAssemblyVariants() const noexcept
Definition interactivehtmlbomoutputjob.h:85
QStringList mCheckBoxes
Definition interactivehtmlbomoutputjob.h:134
void setHighlightPin1(InteractiveHtmlBom::HighlightPin1Mode mode) noexcept
Definition interactivehtmlbomoutputjob.cpp:155
void setShowZones(bool show) noexcept
Definition interactivehtmlbomoutputjob.cpp:191
static QString getTypeTrStatic() noexcept
Definition interactivehtmlbomoutputjob.h:110
bool mShowPads
Definition interactivehtmlbomoutputjob.h:131
QString mOutputPath
Definition interactivehtmlbomoutputjob.h:139
Angle mBoardRotation
Definition interactivehtmlbomoutputjob.h:127
void setOffsetBackRotation(bool offset) noexcept
Definition interactivehtmlbomoutputjob.cpp:148
ObjectSet< Uuid > AssemblyVariantSet
Definition interactivehtmlbomoutputjob.h:51
void setAssemblyVariants(const AssemblyVariantSet &avs) noexcept
Definition interactivehtmlbomoutputjob.cpp:229
InteractiveHtmlBom::HighlightPin1Mode mHighlightPin1
Definition interactivehtmlbomoutputjob.h:125
const QStringList & getComponentOrder() const noexcept
Definition interactivehtmlbomoutputjob.h:78
const BoardSet & getBoards() const noexcept
Definition interactivehtmlbomoutputjob.h:84
virtual QIcon getTypeIcon() const noexcept override
Definition interactivehtmlbomoutputjob.cpp:118
virtual void serializeDerived(SExpression &root) const override
Definition interactivehtmlbomoutputjob.cpp:257
QStringList mCustomAttributes
Definition interactivehtmlbomoutputjob.h:136
void setBoardRotation(const Angle &rot) noexcept
Definition interactivehtmlbomoutputjob.cpp:141
void setShowFabrication(bool show) noexcept
Definition interactivehtmlbomoutputjob.cpp:170
bool getShowTracks() const noexcept
Definition interactivehtmlbomoutputjob.h:75
ObjectSet< Uuid > BoardSet
Definition interactivehtmlbomoutputjob.h:50
const QString & getOutputPath() const noexcept
Definition interactivehtmlbomoutputjob.h:88
void setDarkMode(bool dark) noexcept
Definition interactivehtmlbomoutputjob.cpp:134
bool getDarkMode() const noexcept
Definition interactivehtmlbomoutputjob.h:69
InteractiveHtmlBom::HighlightPin1Mode getHighlightPin1() const noexcept
Definition interactivehtmlbomoutputjob.h:66
virtual std::shared_ptr< OutputJob > cloneShared() const noexcept override
Definition interactivehtmlbomoutputjob.cpp:248
InteractiveHtmlBom::ViewMode mViewMode
Definition interactivehtmlbomoutputjob.h:124
const QStringList & getCustomAttributes() const noexcept
Definition interactivehtmlbomoutputjob.h:81
void setComponentOrder(const QStringList &order) noexcept
Definition interactivehtmlbomoutputjob.cpp:206
void setViewMode(InteractiveHtmlBom::ViewMode mode) noexcept
Definition interactivehtmlbomoutputjob.cpp:126
void setCheckBoxes(const QStringList &cbx) noexcept
Definition interactivehtmlbomoutputjob.cpp:198
bool getShowSilkscreen() const noexcept
Definition interactivehtmlbomoutputjob.h:72
AssemblyVariantSet mAssemblyVariants
Definition interactivehtmlbomoutputjob.h:138
void setShowPads(bool show) noexcept
Definition interactivehtmlbomoutputjob.cpp:177
void setBoards(const BoardSet &boards) noexcept
Definition interactivehtmlbomoutputjob.cpp:222
bool getShowZones() const noexcept
Definition interactivehtmlbomoutputjob.h:76
Base class for all output job types.
Definition outputjob.h:50
The SExpression class.
Definition sexpression.h:69
Definition occmodel.cpp:77
Definition outputjob.h:65