#pragma once #include #include "../ui/ui_project.h" class ProjectModel { public: enum Type { Invalid, Map, }; ProjectModel(MapModel *ptr); ProjectModel(ProjectModel &&o); ProjectModel() = delete; ProjectModel(ProjectModel &) = delete; ~ProjectModel(); Type type() const; QAbstractItemModel *getAbstract() const; MapModel *getMap() const; bool isDirty() const; bool open(QString const &path); bool saveAs(QString const &path) const; bool save() const; private: Type modelType; MapModel *modelMap; }; class Project : public QMdiSubWindow, private Ui::Project { Q_OBJECT public: explicit Project(ProjectModel &&model, QWidget *parent = nullptr); ~Project(); ProjectModel model; protected: void closeEvent(QCloseEvent *event) override; }; // EOF