20#ifndef LIBREPCB_EDITOR_LIBRARYTAB_H
21#define LIBREPCB_EDITOR_LIBRARYTAB_H
26#include "../libraryeditortab.h"
42class WorkspaceLibraryDb;
46class LibraryDependenciesModel;
60 ui::LibraryTreeViewItemType
type;
67 QVector<std::shared_ptr<TreeItem>>
childs;
78 QObject* parent =
nullptr) noexcept;
83 ui::TabData
getUiData() const noexcept override;
84 void setUiData(const ui::TabData& data) noexcept override;
87 void trigger(ui::TabAction a) noexcept override;
112 bool checkOnly) override;
113 template <typename MessageType>
116 template <typename MessageType>
119 bool approved) noexcept override;
127 ui::LibraryTreeViewItemType type) noexcept;
128 template <typename CategoryType>
130 template <typename CategoryType>
132 ui::LibraryTreeViewItemType type, const
Uuid& uuid,
TreeItem& root);
133 template <typename ElementType, typename CategoryType>
135 ui::LibraryTreeViewItemType catType,
TreeItem& root,
142 TreeItem& item, ui::LibraryTreeViewItemType type,
143 slint::VectorModel<ui::LibraryTreeViewItemData>& model,
146 const
std::optional<ui::LibraryTreeViewItemData>& data) noexcept;
152 const QList<
std::shared_ptr<
TreeItem>>& items) noexcept;
154 const
FilePath& dstLib,
bool move) noexcept;
198 std::shared_ptr<slint::VectorModel<ui::LibraryTreeViewItemData>>
mElements;
199 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:59
The LibraryDependenciesModel class.
Definition librarydependenciesmodel.h:50
The LibraryEditor class.
Definition libraryeditor.h:56
Specialized base class for all library editor tabs.
Definition libraryeditortab.h:55
The LibraryTab class.
Definition librarytab.h:56
slint::SharedString mVersionError
Definition librarytab.h:179
QHash< FilePath, Uuid > mLibCategories
Definition librarytab.h:188
std::optional< std::pair< RuleCheckMessageList, QSet< SExpression > > > runChecksImpl() override
Definition librarytab.cpp:407
void componentEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
Library & mLibrary
Definition librarytab.h:158
int mCurrentCategoryIndex
Definition librarytab.h:165
slint::SharedString mName
Definition librarytab.h:172
QHash< QString, std::shared_ptr< TreeItem > > mLibElementsMap
Definition librarytab.h:196
const WorkspaceLibraryDb & mDb
Definition librarytab.h:159
void loadOrganizations()
Definition librarytab.cpp:726
void sortItemsRecursive(QVector< std::shared_ptr< TreeItem > > &items) noexcept
Definition librarytab.cpp:748
QList< std::shared_ptr< TreeItem > > getSelectedElements() const noexcept
Definition librarytab.cpp:894
slint::SharedString mDescription
Definition librarytab.h:175
void deleteElements(const QList< std::shared_ptr< TreeItem > > &items) noexcept
Definition librarytab.cpp:1055
std::shared_ptr< TreeItem > mUncategorizedRoot
Definition librarytab.h:189
slint::SharedString mVersion
Definition librarytab.h:178
std::shared_ptr< TreeItem > mCmpCatRoot
Definition librarytab.h:190
void setSelectedCategory(const std::optional< ui::LibraryTreeViewItemData > &data) noexcept
Definition librarytab.cpp:807
void componentCategoryEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
int mOrganizationsElementCount
Definition librarytab.h:195
bool mWizardMode
Definition librarytab.h:163
bool mDeprecated
Definition librarytab.h:181
QString mFilterTerm
Definition librarytab.h:168
void packageCategoryEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
int mCmpCatElementCount
Definition librarytab.h:191
std::shared_ptr< TreeItem > mPkgCatRoot
Definition librarytab.h:192
void messageApprovalChanged(const SExpression &approval, bool approved) noexcept override
Definition librarytab.cpp:433
QList< std::shared_ptr< TreeItem > > getSelectedCategories() const noexcept
Definition librarytab.cpp:881
void refreshLibElements() noexcept
Definition librarytab.cpp:522
bool autoFixImpl(const std::shared_ptr< const RuleCheckMessage > &msg, bool checkOnly) override
Definition librarytab.cpp:411
FilePath getDirectoryPath() const noexcept override
Definition librarytab.cpp:128
QByteArray mIcon
Definition librarytab.h:171
std::shared_ptr< slint::VectorModel< ui::LibraryTreeViewItemData > > mCategories
Definition librarytab.h:197
bool autoFixHelper(const std::shared_ptr< const RuleCheckMessage > &msg, bool checkOnly)
Definition librarytab.cpp:419
void setUiData(const ui::TabData &data) noexcept override
Definition librarytab.cpp:153
std::shared_ptr< TreeItem > createRootItem(ui::LibraryTreeViewItemType type) noexcept
Definition librarytab.cpp:613
Version mVersionParsed
Definition librarytab.h:180
void packageEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
LibraryTab(const LibraryTab &other)=delete
std::shared_ptr< LibraryDependenciesModel > mDependencies
Definition librarytab.h:184
void commitUiData() noexcept
Definition librarytab.cpp:488
bool autoFix(const MessageType &msg)
slint::SharedString mNameError
Definition librarytab.h:173
std::shared_ptr< slint::VectorModel< float > > mViewsScrollPositions
Definition librarytab.h:167
int mPkgCatElementCount
Definition librarytab.h:193
slint::SharedString mKeywords
Definition librarytab.h:176
const QStringList & mLocaleOrder
Definition librarytab.h:160
void organizationEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
void trigger(ui::TabAction a) noexcept override
Definition librarytab.cpp:256
void deviceEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
std::shared_ptr< slint::FilterModel< ui::LibraryTreeViewItemData > > mFilteredElements
Definition librarytab.h:200
void loadElements(ui::LibraryTreeViewItemType type, ui::LibraryTreeViewItemType catType, TreeItem &root, int &count)
Definition librarytab.cpp:691
std::shared_ptr< TreeItem > getOrCreateCategory(ui::LibraryTreeViewItemType type, const Uuid &uuid, TreeItem &root)
Definition librarytab.cpp:646
slint::SharedString mManufacturer
Definition librarytab.h:185
std::shared_ptr< TreeItem > mOrganizationsRoot
Definition librarytab.h:194
void duplicateElements(const QList< std::shared_ptr< TreeItem > > &items) noexcept
Definition librarytab.cpp:907
slint::SharedString mMoveOrCopyToLibraryPath
Definition librarytab.h:201
void notifyDerivedUiDataChanged() noexcept override
Definition librarytab.cpp:440
slint::SharedString mUrl
Definition librarytab.h:182
void symbolEditorRequested(LibraryEditor &editor, const FilePath &fp, bool copyFrom)
ElementName mNameParsed
Definition librarytab.h:174
int mCurrentElementIndex
Definition librarytab.h:166
void getChildsRecursive(TreeItem &item, QSet< std::shared_ptr< TreeItem > > &childs) noexcept
Definition librarytab.cpp:873
slint::SharedString mAuthor
Definition librarytab.h:177
ui::TabData getUiData() const noexcept override
Definition librarytab.cpp:132
slint::SharedString mUrlError
Definition librarytab.h:183
void loadCategories(ui::LibraryTreeViewItemType type, TreeItem &root)
Definition librarytab.cpp:631
int mCurrentPageIndex
Definition librarytab.h:164
Signal< LibraryTab > onDerivedUiDataChanged
Definition librarytab.h:72
void moveOrCopyElementsTo(const QList< std::shared_ptr< TreeItem > > &items, const FilePath &dstLib, bool move) noexcept
Definition librarytab.cpp:950
void setDerivedUiData(const ui::LibraryTabData &data) noexcept
Definition librarytab.cpp:201
void refreshUiData() noexcept
Definition librarytab.cpp:467
ui::LibraryTabData getDerivedUiData() const noexcept
Definition librarytab.cpp:164
void addCategoriesToModel(ui::LibraryTreeViewItemType type, TreeItem &root, int count) noexcept
Definition librarytab.cpp:766
std::shared_ptr< slint::VectorModel< ui::LibraryTreeViewItemData > > mElements
Definition librarytab.h:198
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:67
FilePath path
Definition librarytab.h:61
ui::LibraryTreeViewItemType type
Definition librarytab.h:60
QString userData
Definition librarytab.h:66
QString summary
Definition librarytab.h:63
QString name
Definition librarytab.h:62
bool isDeprecated
Definition librarytab.h:64
bool isExternal
Definition librarytab.h:65