added support for meta-data editing improved element selection changed zooming fixed some issues with layer events fixed issue with 3D outline fixed loading issue for old maps some interface changes
82 lines
1.4 KiB
C++
82 lines
1.4 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 onLoad();
|
|
|
|
void onSave();
|
|
|
|
void onMapModelAboutToReset();
|
|
void onMapModelReset();
|
|
void onMapModelNeedsRepaint();
|
|
|
|
private slots:
|
|
|
|
void onShow3DFloorplan();
|
|
void onShow3DGrid();
|
|
|
|
|
|
private:
|
|
|
|
MainWindow* mw;
|
|
MapTreeModel* mapTreeModel;
|
|
MapModel* mapModel;
|
|
|
|
};
|
|
|
|
#endif // MAINCONTROLLER_H
|