13 UnofficialLibrary, |
13 UnofficialLibrary, |
14 WorkingLibrary, |
14 WorkingLibrary, |
15 } role; |
15 } role; |
16 QDir path; |
16 QDir path; |
17 static QString libraryRoleName(const Role role); |
17 static QString libraryRoleName(const Role role); |
|
18 static bool isValidRole(const Role role); |
|
19 constexpr static const Role allRoles[] = {OfficialLibrary, UnofficialLibrary, WorkingLibrary}; |
18 }; |
20 }; |
19 |
21 |
20 Q_DECLARE_METATYPE(Library) |
22 Q_DECLARE_METATYPE(Library) |
|
23 Q_DECLARE_METATYPE(Library::Role) |
21 QDataStream &operator<<(QDataStream&, const Library&); |
24 QDataStream &operator<<(QDataStream&, const Library&); |
22 QDataStream &operator>>(QDataStream&, Library&); |
25 QDataStream &operator>>(QDataStream&, Library&); |
23 |
26 |
24 using Libraries = QVector<Library>; |
27 using Libraries = QVector<Library>; |
25 Q_DECLARE_METATYPE(Libraries) |
28 Q_DECLARE_METATYPE(Libraries) |
32 LibraryManager(QSettings* settings, QObject* parent = nullptr); |
35 LibraryManager(QSettings* settings, QObject* parent = nullptr); |
33 QVector<Library>::const_iterator begin() const; |
36 QVector<Library>::const_iterator begin() const; |
34 QVector<Library>::const_iterator end() const; |
37 QVector<Library>::const_iterator end() const; |
35 QFileInfo findFile(QString fileName) const; |
38 QFileInfo findFile(QString fileName) const; |
36 void addLibrary(const Library& library); |
39 void addLibrary(const Library& library); |
|
40 void removeLibrary(const int libraryIndex); |
37 const Library& library(int libraryIndex) const; |
41 const Library& library(int libraryIndex) const; |
38 void setLibraryPath(int libraryIndex, const QDir& path); |
42 void setLibraryPath(int libraryIndex, const QDir& path); |
39 void setLibraryRole(int libraryIndex, const Library::Role role); |
43 void setLibraryRole(int libraryIndex, const Library::Role role); |
40 void restoreFromSettings(QSettings* settings); |
44 void restoreFromSettings(QSettings* settings); |
41 void storeToSettings(QSettings* settings); |
45 void storeToSettings(QSettings* settings); |
42 int count() const; |
46 int count() const; |
|
47 void moveLibrary(const int libraryFromIndex, const int libraryToIndex); |
43 // Definitions for QAbstractTableModel |
48 // Definitions for QAbstractTableModel |
44 Qt::ItemFlags flags(const QModelIndex& index) const override; |
49 Qt::ItemFlags flags(const QModelIndex& index) const override; |
45 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; |
50 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; |
46 QVariant headerData( |
51 QVariant headerData( |
47 int section, |
52 int section, |
48 Qt::Orientation orientation, |
53 Qt::Orientation orientation, |
49 int role = Qt::DisplayRole) const override; |
54 int role = Qt::DisplayRole) const override; |
50 int rowCount(const QModelIndex &parent = QModelIndex()) const override; |
55 int rowCount(const QModelIndex&) const override; |
51 int columnCount(const QModelIndex &parent = QModelIndex()) const override; |
56 int columnCount(const QModelIndex&) const override; |
|
57 bool isValidIndex(const int libraryIndex) const; |
52 private: |
58 private: |
53 enum Column |
59 enum Column |
54 { |
60 { |
55 RoleColumn, |
61 RoleColumn, |
56 PathColumn |
62 PathColumn |
57 }; |
63 }; |
58 void signalLibraryChange(int library); |
64 void signalLibraryChange(int library); |
59 bool isValidIndex(int libraryIndex); |
|
60 Libraries libraries; |
65 Libraries libraries; |
61 }; |
66 }; |