Maraiah/tycho/cc_headers/project.h

52 lines
854 B
C++

#pragma once
#include <QMdiSubWindow>
#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