20 #ifndef LIBREPCB_CORE_COMPONENTINSTANCE_H 21 #define LIBREPCB_CORE_COMPONENTINSTANCE_H 26 #include "../../attribute/attribute.h" 27 #include "../../types/circuitidentifier.h" 28 #include "../../types/uuid.h" 43 class ComponentSignalInstance;
44 class ComponentSymbolVariant;
77 const QMap<Uuid, ComponentSignalInstance*>&
getSignals() const noexcept {
89 QVector<std::shared_ptr<const Part>>
getParts(
90 const tl::optional<Uuid>& assemblyVariant)
const noexcept;
95 const QHash<Uuid, SI_Symbol*>&
getSymbols() const noexcept {
103 bool isUsed()
const noexcept;
125 void setValue(
const QString& value) noexcept;
int getRegisteredElementsCount() const noexcept
Definition: componentinstance.cpp:127
const QPointer< const BI_Device > & getPrimaryDevice() const noexcept
Definition: componentinstance.h:70
void setName(const CircuitIdentifier &name) noexcept
Set the name of this component instance in the circuit.
Definition: componentinstance.cpp:150
bool checkAttributesValidity() const noexcept
Definition: componentinstance.cpp:321
const AttributeList & getAttributes() const noexcept
Definition: componentinstance.h:84
Uuid mUuid
The unique UUID of this component instance in the circuit.
Definition: componentinstance.h:167
bool isUsed() const noexcept
Definition: componentinstance.cpp:134
void setAssemblyOptions(const ComponentAssemblyOptionList &options) noexcept
Definition: componentinstance.cpp:172
void unregisterSymbol(SI_Symbol &symbol)
Definition: componentinstance.cpp:248
const ComponentSymbolVariant * mCompSymbVar
Pointer to the used symbol variant of mLibComponent.
Definition: componentinstance.h:181
Definition: occmodel.cpp:76
QVector< std::shared_ptr< const Part > > getParts(const tl::optional< Uuid > &assemblyVariant) const noexcept
Definition: componentinstance.cpp:101
The BI_Device class.
Definition: bi_device.h:57
ComponentInstance()=delete
const Component & mLibComponent
Reference to the component in the project's library.
Definition: componentinstance.h:178
QString mValue
The value of this component instance in the circuit (e.g. the resistance of a resistor) ...
Definition: componentinstance.h:175
void removeFromCircuit()
Definition: componentinstance.cpp:197
const Uuid & getUuid() const noexcept
Definition: componentinstance.h:67
const QList< BI_Device * > & getDevices() const noexcept
Definition: componentinstance.h:98
const Component & getLibComponent() const noexcept
Definition: componentinstance.h:73
ComponentSignalInstance * getSignalInstance(const Uuid &signalUuid) const noexcept
Definition: componentinstance.h:80
const ComponentSymbolVariant & getSymbolVariant() const noexcept
Definition: componentinstance.h:74
Circuit & getCircuit() const noexcept
Definition: componentinstance.h:94
ComponentAssemblyOptionList mAssemblyOptions
Assembly options including MPNs.
Definition: componentinstance.h:190
void registerDevice(BI_Device &device)
Definition: componentinstance.cpp:257
The Circuit class represents all electrical connections in a project (drawn in the schematics) ...
Definition: circuit.h:70
~ComponentInstance() noexcept
Definition: componentinstance.cpp:81
void registerSymbol(SI_Symbol &symbol)
Definition: componentinstance.cpp:216
bool mIsAddedToCircuit
Definition: componentinstance.h:162
The Component class represents a "generic" device in the library.
Definition: component.h:73
bool mLockAssembly
Whether mAssemblyOptions can be modified from the board editor or not.
Definition: componentinstance.h:194
const QHash< Uuid, SI_Symbol * > & getSymbols() const noexcept
Definition: componentinstance.h:95
const QStringList & getLocaleOrder() const noexcept
Definition: componentinstance.cpp:326
void unregisterDevice(BI_Device &device)
Definition: componentinstance.cpp:268
type_safe::constrained_type< QString, CircuitIdentifierConstraint, CircuitIdentifierVerifier > CircuitIdentifier
Definition: circuitidentifier.h:93
const QMap< Uuid, ComponentSignalInstance * > & getSignals() const noexcept
Definition: componentinstance.h:77
void setValue(const QString &value) noexcept
Set the value of this component instance in the circuit.
Definition: componentinstance.cpp:157
CircuitIdentifier mName
The unique name of this component instance in the circuit (e.g. "R42")
Definition: componentinstance.h:171
const CircuitIdentifier & getName() const noexcept
Definition: componentinstance.h:68
QHash< Uuid, SI_Symbol * > mRegisteredSymbols
All registered symbols.
Definition: componentinstance.h:207
void primaryDeviceChanged(const BI_Device *device)
QScopedPointer< AttributeList > mAttributes
All attributes of this component.
Definition: componentinstance.h:184
The ComponentSignalInstance class.
Definition: componentsignalinstance.h:49
The ComponentInstance class.
Definition: componentinstance.h:54
bool isAddedToCircuit() const noexcept
Definition: componentinstance.h:104
The SI_Symbol class.
Definition: si_symbol.h:54
QPointer< const BI_Device > mPrimaryDevice
Definition: componentinstance.h:217
const ComponentAssemblyOptionList & getAssemblyOptions() const noexcept
Definition: componentinstance.h:85
void serialize(SExpression &root) const
Serialize into librepcb::SExpression node.
Definition: componentinstance.cpp:277
QSet< Uuid > getUsedDeviceUuids() const noexcept
Definition: componentinstance.cpp:119
ComponentInstance & operator=(const ComponentInstance &rhs)=delete
The ComponentSymbolVariant class represents a symbol variant of a component.
Definition: componentsymbolvariant.h:53
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition: uuid.h:56
void addToCircuit()
Definition: componentinstance.cpp:184
QSet< Uuid > getCompatibleDevices() const noexcept
Definition: componentinstance.cpp:93
Circuit & mCircuit
Definition: componentinstance.h:161
QList< BI_Device * > mRegisteredDevices
All registered devices (of all boards)
Definition: componentinstance.h:214
const QString & getValue() const noexcept
Definition: componentinstance.h:69
void setAttributes(const AttributeList &attributes) noexcept
Definition: componentinstance.cpp:164
The SExpression class.
Definition: sexpression.h:66
QMap< Uuid, ComponentSignalInstance * > mSignals
All signal instances (Key: component signal UUID)
Definition: componentinstance.h:187
void updatePrimaryDevice() noexcept
Definition: componentinstance.cpp:306
bool getLockAssembly() const noexcept
Definition: componentinstance.h:91
void setLockAssembly(bool lock) noexcept
Definition: componentinstance.h:131