31 Primitive, |
35 Primitive, |
32 HighResolutionPrimitive, |
36 HighResolutionPrimitive, |
33 LowResolutionPrimitive, |
37 LowResolutionPrimitive, |
34 }; |
38 }; |
35 |
39 |
36 QDir path; |
40 Library(const QDir& path, const QString& name, bool frozen); |
37 QString name; |
|
38 |
41 |
|
42 bool frozen() const; |
|
43 QDir path() const; |
|
44 QString name() const; |
39 QDir subdirectory(FileType type) const; |
45 QDir subdirectory(FileType type) const; |
40 static QString subdirectoryName(FileType type); |
46 static QString subdirectoryName(FileType type); |
|
47 |
|
48 private: |
|
49 QDir _path; |
|
50 QString _name; |
|
51 bool _frozen; |
41 }; |
52 }; |
42 |
53 |
43 /* |
54 /* |
44 * Models a collection of libraries. A library is a folder containing directories named "p" and |
55 * Models a collection of libraries. A library is a folder containing directories named "p" and |
45 * "parts" that contains part and subpart files. |
56 * "parts" that contains part and subpart files. |
46 */ |
57 */ |
47 class LibraryCollection : public QObject, private QVector<Library> |
58 class LibraryCollection : public QObject |
48 { |
59 { |
49 Q_OBJECT |
60 Q_OBJECT |
50 using Super = QVector<Library>; |
61 using Super = QVector<Library>; |
51 |
62 |
52 public: |
63 public: |
54 { |
65 { |
55 QString name; |
66 QString name; |
56 Library::FileType type; |
67 Library::FileType type; |
57 }; |
68 }; |
58 |
69 |
59 void addLibrary(QDir dir, QString name); |
70 void addLibrary(QDir dir, QString name, bool frozen); |
60 QString find(QString relativePath) const; |
71 QString find(QString relativePath) const; |
61 QString find(const QString& name, Library::FileType type) const; |
72 QString find(const QString& name, Library::FileType type) const; |
62 QString find(const FileSpec& spec) const; |
73 QString find(const FileSpec& spec) const; |
|
74 std::vector<Library>::iterator begin(); |
|
75 std::vector<Library>::iterator end(); |
63 |
76 |
64 static const QStringList directoryNames; |
77 static const QStringList directoryNames; |
|
78 |
|
79 private: |
|
80 std::vector<Library> _libraries; |
65 }; |
81 }; |
|
82 |
|
83 #include <QAbstractTableModel> |
|
84 class LibraryCollectionTableModel : public QAbstractTableModel |
|
85 { |
|
86 public: |
|
87 LibraryCollectionTableModel(LibraryCollection& collection, QObject* parent = nullptr); |
|
88 |
|
89 private: |
|
90 LibraryCollection& _collection; |
|
91 }; |