This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
IndoorMap/MainController.h
kazu 489a64fd69 added "new map" button
fixed minor model/logic issues
2017-05-24 17:54:09 +02:00

81 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 onNew();
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