Maraiah/tycho/cc_headers/project.h

52 lines
854 B
C
Raw Normal View History

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