82 lines
1.5 KiB
C++
82 lines
1.5 KiB
C++
#ifndef MAINCONTROLLER_H
|
|
#define MAINCONTROLLER_H
|
|
|
|
#include <QObject>
|
|
#include <QModelIndex>
|
|
#include "MainWindow.h"
|
|
#include "mapview/model/MapModelListener.h"
|
|
|
|
class MapTreeModel;
|
|
class MapModelElement;
|
|
class MapModel;
|
|
|
|
class ToolMoveMap;
|
|
class ToolRuler;
|
|
class ToolMapZoom;
|
|
class ToolMapGrid;
|
|
class ToolSelector;
|
|
|
|
class MainController : public QObject, public MapModelListener {
|
|
|
|
Q_OBJECT
|
|
|
|
ToolMoveMap* moveMap;
|
|
ToolRuler* ruler;
|
|
ToolMapZoom* mapZoom;
|
|
ToolMapGrid* mapGrid;
|
|
ToolSelector* mapSelector;
|
|
|
|
|
|
public:
|
|
explicit MainController();
|
|
|
|
void show() {mw->show();}
|
|
|
|
public:
|
|
|
|
void onLayerChanged(MapLayer* layer) override;
|
|
|
|
void onLayerElementAdded(MapLayer* layer, MapModelElement* elem) override;
|
|
|
|
void onLayerElementRemoved(MapLayer* layer, const MapModelElement* elem) override;
|
|
|
|
void onLayerVisibilityChanged(MapLayer *layer, const bool visible) override;
|
|
|
|
signals:
|
|
|
|
public slots:
|
|
|
|
/** MapLayer selection changed */
|
|
void layerSelected(QModelIndex idx);
|
|
|
|
/** MapElement selection has changed */
|
|
void mapElementSelected(MapModelElement* el);
|
|
|
|
/** the currently selected MapElement has changed */
|
|
void curMapElementChanged();
|
|
|
|
void onNew();
|
|
void onLoad();
|
|
void onSave();
|
|
|
|
void onMapModelAboutToReset();
|
|
void onMapModelReset();
|
|
void onMapModelNeedsRepaint();
|
|
|
|
private slots:
|
|
|
|
void onSetShow3DFloorplan(bool show);
|
|
void onSetShow3DGrid(bool show);
|
|
void onSetShow3DNavMesh(bool show);
|
|
|
|
|
|
private:
|
|
|
|
MainWindow* mw;
|
|
MapTreeModel* mapTreeModel;
|
|
MapModel* mapModel;
|
|
|
|
};
|
|
|
|
#endif // MAINCONTROLLER_H
|