| 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 }; |