initial commit
This commit is contained in:
103
MainController.cpp
Normal file
103
MainController.cpp
Normal file
@@ -0,0 +1,103 @@
|
||||
#include "MainController.h"
|
||||
|
||||
#include "MainWindow.h"
|
||||
#include "mapview/model/MapModel.h"
|
||||
#include "mapview/model/MapModelElement.h"
|
||||
|
||||
#include "mapview/tools/ToolSelector.h"
|
||||
#include "mapview/tools/ToolMoveMap.h"
|
||||
#include "mapview/tools/ToolMapZoom.h"
|
||||
#include "mapview/tools/ToolRuler.h"
|
||||
#include "mapview/tools/ToolMapGrid.h"
|
||||
|
||||
#include "params/ElementParamWidget.h"
|
||||
#include "params/LayerParamWidget.h"
|
||||
#include "params/ToolBoxWidget.h"
|
||||
#include "params/ActionWidget.h"
|
||||
|
||||
#include "tree/MapTreeModel.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QTreeView>
|
||||
|
||||
MainController::MainController() {
|
||||
|
||||
mw = new MainWindow();
|
||||
mw->resize(1000, 700);
|
||||
|
||||
MapView2D* mapView2D = mw->getMapView2D();
|
||||
QTreeView* layerTree = mw->getTree();
|
||||
|
||||
mapModel = new MapModel();
|
||||
//mapModel->load("/apps/android/workspace/IndoorApp/res/map.xml");
|
||||
mapView2D->setModel(mapModel);
|
||||
|
||||
ToolMoveMap* moveMap = new ToolMoveMap();
|
||||
ToolRuler* ruler = new ToolRuler();
|
||||
ToolMapZoom* mapZoom = new ToolMapZoom();
|
||||
ToolMapGrid* mapGrid = new ToolMapGrid();
|
||||
ToolSelector* mapSelector = new ToolSelector();
|
||||
|
||||
mapView2D->getTools().enable(mapGrid);
|
||||
mapView2D->getTools().enable(moveMap);
|
||||
mapView2D->getTools().enable(mapZoom);
|
||||
mapView2D->getTools().enable(mapSelector);
|
||||
mapView2D->getTools().enable(ruler);
|
||||
|
||||
|
||||
mapTreeModel = new MapTreeModel(mapModel);
|
||||
layerTree->setModel(mapTreeModel);
|
||||
|
||||
connect(layerTree, SIGNAL(clicked(QModelIndex)), this, SLOT(layerSelected(QModelIndex)));
|
||||
connect(mapSelector, SIGNAL(onMapElementSelected(MapModelElement*)), this, SLOT(mapElementSelected(MapModelElement*)));
|
||||
connect(mw->getActionWidget(), SIGNAL(onLoad()), this, SLOT(onLoad()));
|
||||
connect(mw->getActionWidget(), SIGNAL(onSave()), this, SLOT(onSave()));
|
||||
connect(mapModel, SIGNAL(aboutToReset()), this, SLOT(onMapModelAboutToReset()));
|
||||
connect(mapModel, SIGNAL(reset()), this, SLOT(onMapModelReset()));
|
||||
|
||||
mapModel->load("/apps/map9.xml");
|
||||
|
||||
}
|
||||
|
||||
void MainController::layerSelected(QModelIndex idx) {
|
||||
mw->getMapView2D()->layerChange();
|
||||
MapLayer* ml = static_cast<MapLayer*>(idx.internalPointer());
|
||||
mapModel->setSelectedLayer(ml);
|
||||
mw->getMapView2D()->layerChange();
|
||||
mw->getLayerParamWidget()->setElement(ml);
|
||||
mw->getToolBoxWidget()->setSelectedLayer(ml);
|
||||
|
||||
}
|
||||
|
||||
void MainController::mapElementSelected(MapModelElement* el) {
|
||||
mw->getElementParamWidget()->setElement(el);
|
||||
}
|
||||
|
||||
void MainController::onMapModelAboutToReset() {
|
||||
mw->getLayerParamWidget()->setElement(nullptr);
|
||||
mw->getToolBoxWidget()->setSelectedLayer(nullptr);
|
||||
mw->getMapView2D()->update();
|
||||
}
|
||||
|
||||
void MainController::onMapModelReset() {
|
||||
mw->getTree()->expandAll();
|
||||
}
|
||||
|
||||
void MainController::onLoad() {
|
||||
|
||||
QString file = QFileDialog::getOpenFileName(mw, "open a map");
|
||||
if (file != "") {
|
||||
mapModel->load(file.toStdString());
|
||||
}
|
||||
}
|
||||
|
||||
void MainController::onSave() {
|
||||
|
||||
QString file = QFileDialog::getSaveFileName(mw, "save the map");
|
||||
if (file != "") {
|
||||
mapModel->save(file.toStdString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user