tycho: rename classes for consistency
parent
004989ab58
commit
fa7d785212
|
@ -6,16 +6,15 @@
|
|||
"implementationModule": "gui"
|
||||
},
|
||||
"objects": {
|
||||
"AbstractMapModel": {
|
||||
"IMapModel": {
|
||||
"type": "List",
|
||||
"functions": {
|
||||
"open": {
|
||||
"return": "bool",
|
||||
"mut": true,
|
||||
"arguments": [{
|
||||
"name": "path",
|
||||
"type": "QString"
|
||||
}]
|
||||
"arguments": [
|
||||
{"name": "path", "type": "QString"}
|
||||
]
|
||||
},
|
||||
"save": {
|
||||
"return": "bool",
|
||||
|
@ -24,10 +23,9 @@
|
|||
"saveAs": {
|
||||
"return": "bool",
|
||||
"mut": false,
|
||||
"arguments": [{
|
||||
"name": "path",
|
||||
"type": "QString"
|
||||
}]
|
||||
"arguments": [
|
||||
{"name": "path", "type": "QString"}
|
||||
]
|
||||
},
|
||||
"isDirty": {
|
||||
"return": "bool",
|
||||
|
@ -36,10 +34,9 @@
|
|||
"propIcon": {
|
||||
"return": "QString",
|
||||
"mut": false,
|
||||
"arguments": [{
|
||||
"name": "index",
|
||||
"type": "quint16"
|
||||
}]
|
||||
"arguments": [
|
||||
{"name": "index", "type": "quint16"}
|
||||
]
|
||||
},
|
||||
"deselect": {
|
||||
"return": "void",
|
||||
|
@ -48,19 +45,15 @@
|
|||
"select": {
|
||||
"return": "void",
|
||||
"mut": true,
|
||||
"arguments": [{
|
||||
"name": "index",
|
||||
"type": "quint16"
|
||||
}]
|
||||
"arguments": [
|
||||
{"name": "index", "type": "quint16"}
|
||||
]
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
},
|
||||
"itemProperties": {
|
||||
"propIndex": {
|
||||
"type": "quint64",
|
||||
"roles": [["display"]]
|
||||
}
|
||||
"propIndex": {"type": "quint64", "roles": [["display"]]}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,54 +1,54 @@
|
|||
#include "tycho.h"
|
||||
|
||||
MapModel::MapModel(Project *parent) :
|
||||
AbstractMapModel(static_cast<QWidget *>(parent)),
|
||||
ProjectModel()
|
||||
CMapModel::CMapModel(Project *parent) :
|
||||
IMapModel(static_cast<QWidget *>(parent)),
|
||||
IProjectModel()
|
||||
{
|
||||
dbgPrintFunc();
|
||||
}
|
||||
|
||||
MapModel::~MapModel()
|
||||
CMapModel::~CMapModel()
|
||||
{
|
||||
dbgPrintFunc();
|
||||
}
|
||||
|
||||
bool MapModel::isDirty() const
|
||||
bool CMapModel::isDirty() const
|
||||
{
|
||||
return AbstractMapModel::isDirty();
|
||||
return IMapModel::isDirty();
|
||||
}
|
||||
|
||||
bool MapModel::open(QString const &path)
|
||||
bool CMapModel::open(QString const &path)
|
||||
{
|
||||
return AbstractMapModel::open(path);
|
||||
return IMapModel::open(path);
|
||||
}
|
||||
|
||||
bool MapModel::save() const
|
||||
bool CMapModel::save() const
|
||||
{
|
||||
return AbstractMapModel::save();
|
||||
return IMapModel::save();
|
||||
}
|
||||
|
||||
bool MapModel::saveAs(QString const &path) const
|
||||
bool CMapModel::saveAs(QString const &path) const
|
||||
{
|
||||
return AbstractMapModel::saveAs(path);
|
||||
return IMapModel::saveAs(path);
|
||||
}
|
||||
|
||||
void MapModel::deselect()
|
||||
void CMapModel::deselect()
|
||||
{
|
||||
AbstractMapModel::deselect();
|
||||
IMapModel::deselect();
|
||||
|
||||
emit deselected();
|
||||
}
|
||||
|
||||
void MapModel::select(QModelIndex const &index)
|
||||
void CMapModel::select(QModelIndex const &index)
|
||||
{
|
||||
auto idx = index.internalId();
|
||||
|
||||
AbstractMapModel::select(idx);
|
||||
IMapModel::select(idx);
|
||||
|
||||
emit selected(idx);
|
||||
}
|
||||
|
||||
QVariant MapModel::data(const QModelIndex &index, int role) const
|
||||
QVariant CMapModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
switch(role) {
|
||||
case Qt::DecorationRole: {
|
||||
|
@ -58,7 +58,7 @@ QVariant MapModel::data(const QModelIndex &index, int role) const
|
|||
return QVariant::fromValue(icon);
|
||||
}
|
||||
default:
|
||||
return AbstractMapModel::data(index, role);
|
||||
return IMapModel::data(index, role);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "tycho.h"
|
||||
|
||||
MapView::MapView(Project *parent) :
|
||||
CMapView::CMapView(Project *parent) :
|
||||
QWidget(static_cast<QWidget *>(parent)),
|
||||
mapModel(parent->getMapModel())
|
||||
{
|
||||
|
@ -9,7 +9,7 @@ MapView::MapView(Project *parent) :
|
|||
dbgPrintFunc();
|
||||
}
|
||||
|
||||
MapView::~MapView()
|
||||
CMapView::~CMapView()
|
||||
{
|
||||
dbgPrintFunc();
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "tycho.h"
|
||||
|
||||
static
|
||||
ProjectModel *makeModel(Project *proj)
|
||||
IProjectModel *makeModel(Project *proj)
|
||||
{
|
||||
switch(proj->getType()) {
|
||||
case ProjectType::Map: return new MapModel(proj);
|
||||
|
@ -9,7 +9,7 @@ ProjectModel *makeModel(Project *proj)
|
|||
}
|
||||
|
||||
static
|
||||
ProjectView *makeView(Project *proj)
|
||||
IProjectView *makeView(Project *proj)
|
||||
{
|
||||
switch(proj->getType()) {
|
||||
case ProjectType::Map: return new MapView(proj);
|
||||
|
|
|
@ -25,14 +25,6 @@
|
|||
#include "../ui/ui_menu.h"
|
||||
#include "../ui/ui_project.h"
|
||||
|
||||
// Types ---------------------------------------------------------------------|
|
||||
|
||||
class MapModel;
|
||||
class MapProps;
|
||||
class MapView;
|
||||
class Menu;
|
||||
class Project;
|
||||
|
||||
enum class ProjectType
|
||||
{
|
||||
Map,
|
||||
|
@ -40,12 +32,10 @@ enum class ProjectType
|
|||
|
||||
using byte = std::uint8_t;
|
||||
|
||||
// Interfaces ----------------------------------------------------------------|
|
||||
|
||||
class ProjectModel
|
||||
class IProjectModel
|
||||
{
|
||||
public:
|
||||
virtual ~ProjectModel() {}
|
||||
virtual ~IProjectModel() {}
|
||||
|
||||
virtual bool isDirty() const = 0;
|
||||
virtual bool open(QString const &path) = 0;
|
||||
|
@ -53,21 +43,20 @@ public:
|
|||
virtual bool saveAs(QString const &path) const = 0;
|
||||
};
|
||||
|
||||
class ProjectView
|
||||
class IProjectView
|
||||
{
|
||||
public:
|
||||
virtual ~ProjectView() {}
|
||||
virtual ~IProjectView() {}
|
||||
};
|
||||
|
||||
// Implementations -----------------------------------------------------------|
|
||||
|
||||
class MapModel final : public AbstractMapModel, public ProjectModel
|
||||
class CMapModel final : public IMapModel,
|
||||
public IProjectModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MapModel(Project *parent);
|
||||
~MapModel() override;
|
||||
explicit CMapModel(Project *parent);
|
||||
~CMapModel() override;
|
||||
|
||||
bool isDirty() const override;
|
||||
bool open(QString const &path) override;
|
||||
|
@ -87,21 +76,22 @@ private:
|
|||
const override;
|
||||
};
|
||||
|
||||
class MapView final : public QWidget, public ProjectView, private Ui::MapView
|
||||
class CMapView final : public QWidget,
|
||||
public IProjectView,
|
||||
private Ui::CMapView
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MapView(Project *parent);
|
||||
~MapView();
|
||||
explicit CMapView(Project *parent);
|
||||
~CMapView();
|
||||
|
||||
private:
|
||||
MapModel *const mapModel;
|
||||
CMapModel *const m_mapModel;
|
||||
};
|
||||
|
||||
// UI ------------------------------------------------------------------------|
|
||||
|
||||
class MapProps final : public QDialog, private Ui::MapProps
|
||||
class MapProps final : public QDialog,
|
||||
private Ui::MapProps
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -112,10 +102,11 @@ public:
|
|||
void accept() override;
|
||||
|
||||
private:
|
||||
MapModel *const mapModel;
|
||||
CMapModel *const m_mapModel;
|
||||
};
|
||||
|
||||
class Menu final : public QMainWindow, private Ui::Menu
|
||||
class Menu final : public QMainWindow,
|
||||
private Ui::Menu
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -142,7 +133,8 @@ private:
|
|||
void addProject(Project *proj);
|
||||
};
|
||||
|
||||
class Project final : public QMdiSubWindow, private Ui::Project
|
||||
class Project final : public QMdiSubWindow,
|
||||
private Ui::Project
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -165,8 +157,6 @@ private:
|
|||
ProjectView *const view;
|
||||
};
|
||||
|
||||
// Functions -----------------------------------------------------------------|
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wformat-security"
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
//! GUI implementation.
|
||||
|
||||
mod map;
|
||||
mod mapmodel;
|
||||
mod qobj;
|
||||
|
||||
pub use self::map::AbstractMapModel;
|
||||
pub use self::mapmodel::IMapModel;
|
||||
|
||||
// EOF
|
||||
|
|
|
@ -4,7 +4,7 @@ use super::qobj::*;
|
|||
use maraiah::{backtrace, err::*, map::{self, data::*}};
|
||||
use crate::cc;
|
||||
|
||||
impl AbstractMapModel
|
||||
impl IMapModel
|
||||
{
|
||||
pub fn open_map(path: String) -> ResultS<EntryDataMap>
|
||||
{
|
||||
|
@ -29,20 +29,20 @@ impl AbstractMapModel
|
|||
*/
|
||||
}
|
||||
|
||||
impl AbstractMapModelTrait for AbstractMapModel
|
||||
impl IMapModelTrait for IMapModel
|
||||
{
|
||||
/// Returns a new `AbstractMapModel` instance.
|
||||
fn new(emit: AbstractMapModelEmitter, _: AbstractMapModelList) -> Self
|
||||
/// Returns a new `IMapModel` instance.
|
||||
fn new(emit: IMapModelEmitter, _: IMapModelList) -> Self
|
||||
{
|
||||
if cfg!(debug_assertions) {
|
||||
eprintln!("new AbstractMapModel");
|
||||
eprintln!("new IMapModel");
|
||||
}
|
||||
|
||||
Self{emit, map: EntryDataMap::default(), selected: None}
|
||||
}
|
||||
|
||||
/// Returns the emitter of `self`.
|
||||
fn emit(&mut self) -> &mut AbstractMapModelEmitter {&mut self.emit}
|
||||
fn emit(&mut self) -> &mut IMapModelEmitter {&mut self.emit}
|
||||
|
||||
fn row_count(&self) -> usize {self.map.len()}
|
||||
|
||||
|
@ -113,18 +113,18 @@ impl AbstractMapModelTrait for AbstractMapModel
|
|||
}
|
||||
}
|
||||
|
||||
impl Drop for AbstractMapModel
|
||||
impl Drop for IMapModel
|
||||
{
|
||||
fn drop(&mut self)
|
||||
{
|
||||
if cfg!(debug_assertions) {
|
||||
eprintln!("drop AbstractMapModel");
|
||||
eprintln!("drop IMapModel");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct AbstractMapModel {
|
||||
emit: AbstractMapModelEmitter,
|
||||
pub struct IMapModel {
|
||||
emit: IMapModelEmitter,
|
||||
map: EntryDataMap,
|
||||
selected: Option<u16>,
|
||||
}
|
Loading…
Reference in New Issue