20#ifndef LIBREPCB_EDITOR_COMPONENTTAB_H
21#define LIBREPCB_EDITOR_COMPONENTTAB_H
26#include "../libraryeditortab.h"
44class AttributeListModel;
45class CategoryTreeModel;
46class ComponentSignalListModel;
47class ComponentSignalNameListModel;
48class ComponentVariantListModel;
50class LibraryElementCategoriesModel;
73 Mode mode, QObject* parent =
nullptr) noexcept;
78 ui::TabData
getUiData() const noexcept override;
81 void trigger(ui::TabAction a) noexcept override;
83 int scene) noexcept override;
93 bool checkOnly) override;
94 template <typename MessageType>
97 template <typename MessageType>
100 bool approved) noexcept override;
108 bool save() noexcept;
The Component class represents a "generic" device in the library.
Definition component.h:73
This class represents absolute, well-formatted paths to files or directories.
Definition filepath.h:127
The Image class.
Definition image.h:49
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
The Uuid class is a replacement for QUuid to get UUID strings without {} braces.
Definition uuid.h:56
The Version class represents a version number in the format "1.42.7".
Definition version.h:58
The AttributeListModel class.
Definition attributelistmodel.h:49
The CategoryTreeModel class.
Definition categorytreemodel.h:50
The ComponentSignalListModel class.
Definition componentsignallistmodel.h:53
The ComponentSignalNameListModel class.
Definition componentsignalnamelistmodel.h:50
The ComponentTab class.
Definition componenttab.h:59
slint::Image renderScene(float width, float height, int scene) noexcept override
Definition componenttab.cpp:365
slint::SharedString mVersionError
Definition componenttab.h:128
std::shared_ptr< LibraryElementCategoriesModel > mCategories
Definition componenttab.h:131
bool requestClose() noexcept override
Request to close the tab.
Definition componenttab.cpp:372
slint::SharedString mNewSignalName
Definition componenttab.h:145
std::optional< std::pair< RuleCheckMessageList, QSet< SExpression > > > runChecksImpl() override
Definition componenttab.cpp:400
slint::SharedString mDatasheetUrlError
Definition componenttab.h:134
bool save() noexcept
Definition componenttab.cpp:686
std::shared_ptr< ComponentSignalNameListModel > mSignalNames
Definition componenttab.h:144
bool isInterfaceBroken() const noexcept
Definition componenttab.cpp:551
slint::SharedString mName
Definition componenttab.h:121
std::shared_ptr< slint::SortModel< ui::ComponentSignalData > > mSignalsSorted
Definition componenttab.h:143
slint::SharedString mDefaultValueError
Definition componenttab.h:140
slint::SharedString mDescription
Definition componenttab.h:124
Mode
Definition componenttab.h:67
slint::SharedString mVersion
Definition componenttab.h:127
slint::SharedString mPrefixError
Definition componenttab.h:137
bool mWizardMode
Definition componenttab.h:116
bool mDeprecated
Definition componenttab.h:130
const bool mIsNewElement
Definition componenttab.h:113
slint::SharedString mPrefix
Definition componenttab.h:136
void messageApprovalChanged(const SExpression &approval, bool approved) noexcept override
Definition componenttab.cpp:439
ComponentPrefix mPrefixParsed
Definition componenttab.h:138
bool autoFixImpl(const std::shared_ptr< const RuleCheckMessage > &msg, bool checkOnly) override
Definition componenttab.cpp:410
FilePath getDirectoryPath() const noexcept override
Definition componenttab.cpp:154
bool autoFixHelper(const std::shared_ptr< const RuleCheckMessage > &msg, bool checkOnly)
Definition componenttab.cpp:425
slint::SharedString mDatasheetUrl
Definition componenttab.h:133
std::shared_ptr< AttributeListModel > mAttributes
Definition componenttab.h:141
Version mVersionParsed
Definition componenttab.h:129
void commitUiData() noexcept
Definition componenttab.cpp:630
bool autoFix(const MessageType &msg)
slint::SharedString mDefaultValue
Definition componenttab.h:139
slint::SharedString mNameError
Definition componenttab.h:122
slint::SharedString mKeywords
Definition componenttab.h:125
std::unique_ptr< Component > mComponent
Definition componenttab.h:112
QSet< Uuid > mOriginalSignalUuids
Definition componenttab.h:152
ComponentSymbolVariantList mOriginalSymbolVariants
Definition componenttab.h:153
bool mSchematicOnly
Definition componenttab.h:135
ui::ComponentTabData getDerivedUiData() const noexcept
Definition componenttab.cpp:180
void trigger(ui::TabAction a) noexcept override
Definition componenttab.cpp:278
std::shared_ptr< CategoryTreeModel > mCategoriesTree
Definition componenttab.h:132
void setDerivedUiData(const ui::ComponentTabData &data) noexcept
Definition componenttab.cpp:225
Signal< ComponentTab > onDerivedUiDataChanged
Definition componenttab.h:64
bool mOriginalIsSchematicOnly
Definition componenttab.h:151
void notifyDerivedUiDataChanged() noexcept override
Definition componenttab.cpp:449
bool mChooseCategory
Definition componenttab.h:118
ElementName mNameParsed
Definition componenttab.h:123
slint::SharedString mAuthor
Definition componenttab.h:126
std::shared_ptr< ComponentVariantListModel > mVariants
Definition componenttab.h:147
bool isWritable() const noexcept
Definition componenttab.cpp:547
ui::TabData getUiData() const noexcept override
Definition componenttab.cpp:158
int mCurrentPageIndex
Definition componenttab.h:117
std::shared_ptr< ComponentSignalListModel > mSignals
Definition componenttab.h:142
slint::SharedString mNewSignalNameError
Definition componenttab.h:146
void refreshUiData() noexcept
Definition componenttab.cpp:594
ComponentTab(const ComponentTab &other)=delete
bool mIsInterfaceBroken
Broken interface detection.
Definition componenttab.h:150
The ComponentVariantListModel class.
Definition componentvariantlistmodel.h:58
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
Definition occmodel.cpp:77
type_safe::constrained_type< QString, ComponentPrefixConstraint, ComponentPrefixVerifier > ComponentPrefix
Definition componentprefix.h:81
QVector< std::shared_ptr< const RuleCheckMessage > > RuleCheckMessageList
Definition rulecheckmessage.h:104
type_safe::constrained_type< QString, ElementNameConstraint, ElementNameVerifier > ElementName
Definition elementname.h:84