42 |
42 |
43 Q_DECLARE_METATYPE(Library) |
43 Q_DECLARE_METATYPE(Library) |
44 Q_DECLARE_METATYPE(Library::Role) |
44 Q_DECLARE_METATYPE(Library::Role) |
45 QDataStream &operator<<(QDataStream&, const Library&); |
45 QDataStream &operator<<(QDataStream&, const Library&); |
46 QDataStream &operator>>(QDataStream&, Library&); |
46 QDataStream &operator>>(QDataStream&, Library&); |
47 |
47 using Libraries = QVector<Library>; |
48 using Libraries = QList<Library>; |
|
49 //QDataStream &operator<<(QDataStream&, const Libraries&); |
|
50 //QDataStream &operator>>(QDataStream&, Libraries&); |
|
51 //Q_DECLARE_METATYPE(Libraries) |
|
52 |
|
53 class Configuration; |
|
54 |
48 |
55 class LibrariesModel : public QAbstractTableModel |
49 class LibrariesModel : public QAbstractTableModel |
56 { |
50 { |
57 Q_OBJECT |
51 Q_OBJECT |
58 public: |
52 public: |
59 LibrariesModel(QObject* parent = nullptr); |
53 LibrariesModel(QObject* parent = nullptr); |
60 auto begin() const { return this->libraries.begin(); } |
54 auto begin() const { return this->libraries.begin(); } |
61 auto end() const { return this->libraries.end(); } |
55 auto end() const { return this->libraries.end(); } |
62 QString findFile(QString fileName) const; |
56 QString findFile(QString fileName) const; |
63 void addLibrary(const Library& library); |
57 void addLibrary(const Library& library); |
64 void removeLibrary(const std::size_t libraryIndex); |
58 void removeLibrary(const qsizetype libraryIndex); |
65 const Library& library(std::size_t libraryIndex) const; |
59 const Library& library(qsizetype libraryIndex) const; |
66 void setLibraryPath(std::size_t libraryIndex, const QDir& path); |
60 void setLibraryPath(qsizetype libraryIndex, const QDir& path); |
67 void setLibraryRole(std::size_t libraryIndex, const Library::Role role); |
61 void setLibraryRole(qsizetype libraryIndex, const Library::Role role); |
68 void restoreFromSettings(); |
62 void restoreFromSettings(); |
69 void storeToSettings(); |
63 void storeToSettings(); |
70 std::size_t count() const; |
64 qsizetype count() const; |
71 void moveLibrary(const std::size_t libraryFromIndex, const std::size_t libraryToIndex); |
65 void moveLibrary(const qsizetype libraryFromIndex, const qsizetype libraryToIndex); |
72 // Definitions for QAbstractTableModel |
66 // Definitions for QAbstractTableModel |
73 Qt::ItemFlags flags(const QModelIndex& index) const override; |
67 Qt::ItemFlags flags(const QModelIndex& index) const override; |
74 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; |
68 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; |
75 QVariant headerData( |
69 QVariant headerData( |
76 int section, |
70 int section, |
77 Qt::Orientation orientation, |
71 Qt::Orientation orientation, |
78 int role = Qt::DisplayRole) const override; |
72 int role = Qt::DisplayRole) const override; |
79 int rowCount(const QModelIndex&) const override; |
73 int rowCount(const QModelIndex&) const override; |
80 int columnCount(const QModelIndex&) const override; |
74 int columnCount(const QModelIndex&) const override; |
81 bool isValidIndex(const std::size_t libraryIndex) const; |
75 bool isValidIndex(const qsizetype libraryIndex) const; |
82 ColorTable loadColorTable(QTextStream& errors) const; |
76 ColorTable loadColorTable(QTextStream& errors) const; |
83 private: |
77 private: |
84 enum Column |
78 enum Column |
85 { |
79 { |
86 RoleColumn, |
80 RoleColumn, |
87 PathColumn |
81 PathColumn |
88 }; |
82 }; |
89 void signalLibraryChange(std::size_t library); |
83 void signalLibraryChange(const qsizetype library); |
90 Libraries libraries; |
84 Libraries libraries; |
91 }; |
85 }; |