48 lines
944 B
C++
48 lines
944 B
C++
#pragma once
|
|
|
|
#pragma clang diagnostic ignored "-Winconsistent-missing-override"
|
|
|
|
#include <QAbstractItemModel>
|
|
#include <QWidget>
|
|
|
|
class IProjectModel : public QAbstractItemModel
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(bool dirty READ dirty WRITE setDirty NOTIFY dirtyChanged)
|
|
|
|
public:
|
|
using QAbstractItemModel::QAbstractItemModel;
|
|
|
|
virtual ~IProjectModel() {}
|
|
|
|
virtual bool dirty() const = 0;
|
|
virtual void setDirty(bool dirty) = 0;
|
|
|
|
virtual bool open(QString const &path) = 0;
|
|
virtual bool save() const = 0;
|
|
virtual bool saveAs(QString const &path) const = 0;
|
|
|
|
public slots:
|
|
virtual void deselect() = 0;
|
|
virtual void select(QModelIndex const &index) = 0;
|
|
|
|
signals:
|
|
void dirtyChanged(bool dirty);
|
|
void deselected();
|
|
void selected(std::uint16_t index);
|
|
};
|
|
|
|
class IProjectView : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
using QObject::QObject;
|
|
|
|
virtual ~IProjectView() {}
|
|
|
|
virtual QWidget *widget() = 0;
|
|
};
|
|
|
|
// EOF
|