3 #include "model.h" |
3 #include "model.h" |
4 |
4 |
5 class DocumentManager : public QObject |
5 class DocumentManager : public QObject |
6 { |
6 { |
7 Q_OBJECT |
7 Q_OBJECT |
|
8 using ModelPointer = std::unique_ptr<Model>; |
8 public: |
9 public: |
9 DocumentManager(QObject* parent = nullptr); |
10 DocumentManager(QObject* parent = nullptr); |
10 DocumentManager(const DocumentManager&) = delete; |
11 DocumentManager(const DocumentManager&) = delete; |
11 DocumentManager(DocumentManager&&) = default; |
12 DocumentManager(DocumentManager&&) = default; |
12 DocumentManager& operator=(const DocumentManager&) = delete; |
13 DocumentManager& operator=(const DocumentManager&) = delete; |
13 DocumentManager& operator=(DocumentManager&&) = default; |
14 DocumentManager& operator=(DocumentManager&&) = default; |
14 Model* newModel(); |
15 QString newModel(); |
|
16 Model* findModelByName(const QString& name); |
|
17 QString openModel(const QString& path, QTextStream& errorStream); |
|
18 QString makeNewModelName(); |
15 private: |
19 private: |
16 std::vector<std::unique_ptr<Model>> openModels; |
20 int untitledNameCounter = 0; |
|
21 std::map<QString, ModelPointer> openModels; |
17 }; |
22 }; |