20#ifndef LIBREPCB_EDITOR_LIBRARYTAB_H
21#define LIBREPCB_EDITOR_LIBRARYTAB_H
26#include "../libraryeditortab.h"
42class WorkspaceLibraryDb;
46class LibraryDependenciesModel;
60 ui::LibraryTreeViewItemType
type;
66 QVector<std::shared_ptr<TreeItem>>
childs;
77 QObject* parent =
nullptr) noexcept;
82 ui::TabData
getUiData() const noexcept override;
83 void setUiData(const ui::TabData& data) noexcept override;
86 void trigger(ui::TabAction a) noexcept override;
106 bool checkOnly) override;
107 template <typename MessageType>
110 template <typename MessageType>
113 bool approved) noexcept override;
121 ui::LibraryTreeViewItemType type) noexcept;
122 template <typename CategoryType>
124 template <typename CategoryType>
126 ui::LibraryTreeViewItemType type, const
Uuid& uuid,
TreeItem& root);
127 template <typename ElementType, typename CategoryType>
129 ui::LibraryTreeViewItemType catType,
TreeItem& root,
135 TreeItem& item, ui::LibraryTreeViewItemType type,
136 slint::VectorModel<ui::LibraryTreeViewItemData>& model,
139 const
std::optional<ui::LibraryTreeViewItemData>& data) noexcept;
145 const QList<
std::shared_ptr<
TreeItem>>& items) noexcept;
188 std::shared_ptr<slint::VectorModel<ui::LibraryTreeViewItemData>>
mElements;
189 std::shared_ptr<slint::FilterModel<ui::LibraryTreeViewItemData>>
This class represents absolute, well-formatted paths to files or directories.
Definition filepath.h:127
The Library class represents a library directory.
Definition library.h:46
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 WorkspaceLibraryDb class.
Definition workspacelibrarydb.h:58
The LibraryDependenciesModel class.
Definition librarydependenciesmodel.h:50
The LibraryEditor class.
Definition libraryeditor.h:57
Specialized base class for all library editor tabs.
Definition libraryeditortab.h:54
The LibraryTab class.
Definition librarytab.h:56
void autoFix(const MessageType &msg)
slint::SharedString mVersionError
Definition librarytab.h:171
QHash< FilePath, Uuid > mLibCategories
Definition librarytab.h:180
std::optional< std::pair< RuleCheckMessageList, QSet< SExpression > > > runChecksImpl() override
Definition librarytab.cpp:389
Library & mLibrary
Definition librarytab.h:151
int mCurrentCategoryIndex
Definition librarytab.h:158
slint::SharedString mName
Definition librarytab.h:164
QHash< QString, std::shared_ptr< TreeItem > > mLibElementsMap
Definition librarytab.h:186
const WorkspaceLibraryDb & mDb
Definition librarytab.h:152
void sortItemsRecursive(QVector< std::shared_ptr< TreeItem > > &items) noexcept
Definition librarytab.cpp:670
QList< std::shared_ptr< TreeItem > > getSelectedElements() const noexcept
Definition librarytab.cpp:810
slint::SharedString mDescription
Definition librarytab.h:167
void deleteElements(const QList< std::shared_ptr< TreeItem > > &items) noexcept
Definition librarytab.cpp:968
std::shared_ptr< TreeItem > mUncategorizedRoot
Definition librarytab.h:181
slint::SharedString mVersion
Definition librarytab.h:170
void componentEditorRequested(LibraryEditor &editor, const FilePath &fp)
std::shared_ptr< TreeItem > mCmpCatRoot
Definition librarytab.h:182
void setSelectedCategory(const std::optional< ui::LibraryTreeViewItemData > &data) noexcept
Definition librarytab.cpp:727
void componentCategoryEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
bool mWizardMode
Definition librarytab.h:156
bool mDeprecated
Definition librarytab.h:173
QString mFilterTerm
Definition librarytab.h:160
void packageCategoryEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
int mCmpCatElementCount
Definition librarytab.h:183
std::shared_ptr< TreeItem > mPkgCatRoot
Definition librarytab.h:184
void messageApprovalChanged(const SExpression &approval, bool approved) noexcept override
Definition librarytab.cpp:412
QList< std::shared_ptr< TreeItem > > getSelectedCategories() const noexcept
Definition librarytab.cpp:797
void refreshLibElements() noexcept
Definition librarytab.cpp:490
bool autoFixImpl(const std::shared_ptr< const RuleCheckMessage > &msg, bool checkOnly) override
Definition librarytab.cpp:393
void moveElementsTo(const QList< std::shared_ptr< TreeItem > > &items, const FilePath &dstLib) noexcept
Definition librarytab.cpp:861
FilePath getDirectoryPath() const noexcept override
Definition librarytab.cpp:126
QByteArray mIcon
Definition librarytab.h:163
std::shared_ptr< slint::VectorModel< ui::LibraryTreeViewItemData > > mCategories
Definition librarytab.h:187
bool autoFixHelper(const std::shared_ptr< const RuleCheckMessage > &msg, bool checkOnly)
Definition librarytab.cpp:401
void setUiData(const ui::TabData &data) noexcept override
Definition librarytab.cpp:151
std::shared_ptr< TreeItem > createRootItem(ui::LibraryTreeViewItemType type) noexcept
Definition librarytab.cpp:562
Version mVersionParsed
Definition librarytab.h:172
LibraryTab(const LibraryTab &other)=delete
std::shared_ptr< LibraryDependenciesModel > mDependencies
Definition librarytab.h:176
void commitUiData() noexcept
Definition librarytab.cpp:465
slint::SharedString mNameError
Definition librarytab.h:165
int mPkgCatElementCount
Definition librarytab.h:185
slint::SharedString mKeywords
Definition librarytab.h:168
void packageEditorRequested(LibraryEditor &editor, const FilePath &fp)
const QStringList & mLocaleOrder
Definition librarytab.h:153
void trigger(ui::TabAction a) noexcept override
Definition librarytab.cpp:243
std::shared_ptr< slint::FilterModel< ui::LibraryTreeViewItemData > > mFilteredElements
Definition librarytab.h:190
void loadElements(ui::LibraryTreeViewItemType type, ui::LibraryTreeViewItemType catType, TreeItem &root, int &count)
Definition librarytab.cpp:636
std::shared_ptr< TreeItem > getOrCreateCategory(ui::LibraryTreeViewItemType type, const Uuid &uuid, TreeItem &root)
Definition librarytab.cpp:594
slint::SharedString mManufacturer
Definition librarytab.h:177
void duplicateElements(const QList< std::shared_ptr< TreeItem > > &items) noexcept
Definition librarytab.cpp:823
void notifyDerivedUiDataChanged() noexcept override
Definition librarytab.cpp:419
slint::SharedString mUrl
Definition librarytab.h:174
void symbolEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
ElementName mNameParsed
Definition librarytab.h:166
int mCurrentElementIndex
Definition librarytab.h:159
void getChildsRecursive(TreeItem &item, QSet< std::shared_ptr< TreeItem > > &childs) noexcept
Definition librarytab.cpp:789
slint::SharedString mAuthor
Definition librarytab.h:169
ui::TabData getUiData() const noexcept override
Definition librarytab.cpp:130
slint::SharedString mUrlError
Definition librarytab.h:175
void loadCategories(ui::LibraryTreeViewItemType type, TreeItem &root)
Definition librarytab.cpp:579
int mCurrentPageIndex
Definition librarytab.h:157
Signal< LibraryTab > onDerivedUiDataChanged
Definition librarytab.h:71
void setDerivedUiData(const ui::LibraryTabData &data) noexcept
Definition librarytab.cpp:198
void refreshUiData() noexcept
Definition librarytab.cpp:444
ui::LibraryTabData getDerivedUiData() const noexcept
Definition librarytab.cpp:162
void deviceEditorRequested(LibraryEditor &editor, const FilePath &fp)
void addCategoriesToModel(ui::LibraryTreeViewItemType type, TreeItem &root, int count) noexcept
Definition librarytab.cpp:688
std::shared_ptr< slint::VectorModel< ui::LibraryTreeViewItemData > > mElements
Definition librarytab.h:188
Definition occmodel.cpp:77
QVector< std::shared_ptr< const RuleCheckMessage > > RuleCheckMessageList
Definition rulecheckmessage.h:104
type_safe::constrained_type< QString, ElementNameConstraint, ElementNameVerifier > ElementName
Definition elementname.h:84
Definition librarytab.h:59
QVector< std::shared_ptr< TreeItem > > childs
Definition librarytab.h:66
FilePath path
Definition librarytab.h:61
ui::LibraryTreeViewItemType type
Definition librarytab.h:60
QString userData
Definition librarytab.h:65
QString summary
Definition librarytab.h:63
QString name
Definition librarytab.h:62
bool isExternal
Definition librarytab.h:64