20 #ifndef LIBREPCB_CORE_WORKSPACELIBRARYSCANNER_H 21 #define LIBREPCB_CORE_WORKSPACELIBRARYSCANNER_H 26 #include "../fileio/filepath.h" 39 class TransactionalFileSystem;
40 class WorkspaceLibraryDbWriter;
59 const FilePath& dbFilePath) noexcept;
82 void run() noexcept
override;
86 QList<std::shared_ptr<Library>>& libs) noexcept;
89 const QList<std::shared_ptr<Library>>& libs);
90 template <
typename ElementType>
92 std::shared_ptr<TransactionalFileSystem> fs,
93 const FilePath& libPath,
const QStringList& dirs,
95 template <
typename ElementType>
97 const ElementType& element);
98 template <
typename ElementType>
100 const ElementType& element);
101 template <
typename ElementType>
103 const ElementType& element);
int getProgressPercent() const noexcept
Definition: workspacelibraryscanner.h:64
~WorkspaceLibraryScanner() noexcept
Definition: workspacelibraryscanner.cpp:62
WorkspaceLibraryScanner & operator=(const WorkspaceLibraryScanner &rhs)=delete
QHash< FilePath, int > updateLibraries(SQLiteDatabase &db, WorkspaceLibraryDbWriter &writer, const QList< std::shared_ptr< Library >> &libs)
Definition: workspacelibraryscanner.cpp:212
void addTranslationsToDb(WorkspaceLibraryDbWriter &writer, int elementId, const ElementType &element)
Definition: workspacelibraryscanner.cpp:334
int mLastProgressPercent
Definition: workspacelibraryscanner.h:110
int addElementsToDb(WorkspaceLibraryDbWriter &writer, std::shared_ptr< TransactionalFileSystem > fs, const FilePath &libPath, const QStringList &dirs, int libId)
Definition: workspacelibraryscanner.cpp:268
WorkspaceLibraryScanner(const FilePath &librariesPath, const FilePath &dbFilePath) noexcept
Definition: workspacelibraryscanner.cpp:48
Definition: airwiresbuilder.cpp:34
QSemaphore mSemaphore
Definition: workspacelibraryscanner.h:108
void startScan() noexcept
Definition: workspacelibraryscanner.cpp:79
Database write functions for librepcb::WorkspaceLibraryDb.
Definition: workspacelibrarydbwriter.h:55
const FilePath mLibrariesPath
Path to workspace libraries directory.
Definition: workspacelibraryscanner.h:106
The WorkspaceLibraryScanner class.
Definition: workspacelibraryscanner.h:53
void scanProgressUpdate(int percent)
void scan() noexcept
Definition: workspacelibraryscanner.cpp:102
void run() noexcept override
Definition: workspacelibraryscanner.cpp:87
int addElementToDb(WorkspaceLibraryDbWriter &writer, int libId, const ElementType &element)
Definition: workspacelibraryscanner.cpp:294
void scanFailed(QString errorMsg)
void getLibrariesOfDirectory(std::shared_ptr< TransactionalFileSystem > fs, const QString &root, QList< std::shared_ptr< Library >> &libs) noexcept
Definition: workspacelibraryscanner.cpp:189
This class represents absolute, well-formatted paths to files or directories.
Definition: filepath.h:127
The SQLiteDatabase class.
Definition: sqlitedatabase.h:43
volatile bool mAbort
Definition: workspacelibraryscanner.h:109
const FilePath mDbFilePath
Path to the SQLite database file.
Definition: workspacelibraryscanner.h:107
void addToCategories(WorkspaceLibraryDbWriter &writer, int elementId, const ElementType &element)
Definition: workspacelibraryscanner.cpp:346
void scanLibraryListUpdated(int libraryCount)
void scanSucceeded(int elementCount)