2019-06-13 18:10:33 -07:00
|
|
|
#pragma once
|
|
|
|
|
2019-06-13 19:52:25 -07:00
|
|
|
#include <QMdiSubWindow>
|
2019-06-13 18:10:33 -07:00
|
|
|
|
2019-06-17 03:32:22 -07:00
|
|
|
#include "../ui/ui_project.h"
|
2019-06-13 18:10:33 -07:00
|
|
|
|
2019-06-17 03:32:22 -07:00
|
|
|
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
|
2019-06-13 18:10:33 -07:00
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
2019-06-17 03:32:22 -07:00
|
|
|
explicit Project(ProjectModel &&model, QWidget *parent = nullptr);
|
|
|
|
~Project();
|
2019-06-13 18:10:33 -07:00
|
|
|
|
2019-06-17 03:32:22 -07:00
|
|
|
ProjectModel model;
|
2019-06-13 18:10:33 -07:00
|
|
|
|
2019-06-13 19:52:25 -07:00
|
|
|
protected:
|
|
|
|
void closeEvent(QCloseEvent *event) override;
|
2019-06-13 18:10:33 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
// EOF
|