changed drawing for better debuging changed layer editing option to add and delete layers some minor changes
144 lines
4.5 KiB
C++
144 lines
4.5 KiB
C++
#include "MainWindow.h"
|
|
#include "ui_MainWindow.h"
|
|
|
|
#include <QGraphicsScene>
|
|
#include <QStatusBar>
|
|
|
|
#include "mapview/2D/MapView2D.h"
|
|
|
|
#include "mapview/model/MMFloorObstacleLine.h"
|
|
|
|
#include <Indoor/floorplan/v2/Floorplan.h>
|
|
|
|
#include "mapview/3D/MapView3D.h"
|
|
|
|
#include "mapview/2D/tools/ToolMoveMap.h"
|
|
#include "mapview/2D/tools/ToolRuler.h"
|
|
#include "mapview/2D/tools/ToolMapZoom.h"
|
|
|
|
#include "params/ElementParamWidget.h"
|
|
#include "params/LayerParamWidget.h"
|
|
#include "params/ActionWidget.h"
|
|
#include "params/ToolBoxWidget.h"
|
|
#include "params/LayerTree.h"
|
|
|
|
#include "tree/MapTreeModel.h"
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
|
|
QString css;
|
|
css += "QPushButton { border: 1px solid #000000; background-color: #ffffff; }";
|
|
css += "QPushButton:!enabled { border: 1px solid #cccccc; background-color:none; }";
|
|
css += "QPushButton:hover { border: 1px solid #000000; background-color: #dddddd; }";
|
|
css += "QPushButton:pressed { border: 1px solid #000000; background-color: #bbbbbb; }";
|
|
|
|
this->setStyleSheet(css);
|
|
|
|
{
|
|
layerTree = new LayerTree();
|
|
QString css;
|
|
//css += "QTreeView::item:selected:active {background-color: #888888;}";
|
|
//css += "QTreeView::item:selected:!active {background-color: #888888;}";
|
|
layerTree->setStyleSheet(css);
|
|
}
|
|
|
|
mapView2D = new MapView2D();
|
|
mapView3D = new MapView3D();
|
|
|
|
elementParamWidget = new ElementParamWidget();
|
|
layerParamWidget = new LayerParamWidget();
|
|
actionWidget = new ActionWidget();
|
|
toolBoxWidget = new ToolBoxWidget(mapView2D);
|
|
|
|
// toolbox
|
|
QDockWidget* toolBoxWidgetDock = new QDockWidget("", this); toolBoxWidgetDock->setWidget(toolBoxWidget);
|
|
addDockWidget(Qt::LeftDockWidgetArea, toolBoxWidgetDock);
|
|
|
|
// layers
|
|
QDockWidget* layerTreeDock = new QDockWidget("layers", this); layerTreeDock->setWidget(layerTree);
|
|
addDockWidget(Qt::RightDockWidgetArea, layerTreeDock);
|
|
|
|
// layer params
|
|
QDockWidget* layerParamWidgetDock = new QDockWidget("layer params", this); layerParamWidgetDock->setWidget(layerParamWidget);
|
|
addDockWidget(Qt::RightDockWidgetArea, layerParamWidgetDock);
|
|
|
|
// element params
|
|
QDockWidget* elementParamWidgetDock = new QDockWidget("element params", this); elementParamWidgetDock->setWidget(elementParamWidget);
|
|
addDockWidget(Qt::RightDockWidgetArea, elementParamWidgetDock);
|
|
|
|
// actions
|
|
QDockWidget* actionWidgetDock = new QDockWidget("actions", this); actionWidgetDock->setWidget(actionWidget);
|
|
addDockWidget(Qt::RightDockWidgetArea, actionWidgetDock);
|
|
|
|
// status
|
|
statusBar = new QStatusBar(); this->setStatusBar(statusBar);
|
|
QHBoxLayout* layStatus = new QHBoxLayout(statusBar); statusBar->setLayout(layStatus);
|
|
statusBarText1 = new QLabel(statusBar); layStatus->addWidget(statusBarText1);
|
|
statusBarText1->setMinimumWidth(200);
|
|
|
|
// tools
|
|
connect(&mapView2D->getTools(), &Tools::onHelpTextChange, [&] (QString txt) {
|
|
statusBarText1->setText(txt);
|
|
});
|
|
|
|
QSplitter* splitter = new QSplitter(Qt::Orientation::Vertical);
|
|
setCentralWidget(splitter);
|
|
splitter->addWidget(mapView2D);
|
|
splitter->addWidget(mapView3D);
|
|
|
|
// // 2D View
|
|
// QDockWidget* mapView2DDoc = new QDockWidget("2D", this); mapView2DDoc->setWidget(mapView2D);
|
|
// addDockWidget(Qt::AllDockWidgetAreas, mapView2DDoc);
|
|
|
|
// // 3D View
|
|
// QDockWidget* mapView3DDoc = new QDockWidget("3D", this); mapView3DDoc->setWidget(mapView3D);
|
|
// addDockWidget(Qt::AllDockWidgetAreas, mapView3DDoc);
|
|
|
|
|
|
// ui->layButtons->addWidget(toolBoxWidget);
|
|
|
|
// ui->layMap->addWidget(mapView2D);
|
|
// ui->layMap->addWidget(mapView3D);
|
|
|
|
// ui->layTree->addWidget(layerParamWidget);
|
|
// ui->layTree->addWidget(elementParamWidget);
|
|
// ui->layTree->addWidget(actionWidget);
|
|
|
|
|
|
// show mode
|
|
QActionGroup* grpMode = new QActionGroup(this);
|
|
grpMode->addAction(ui->actShow3DFloorplan);
|
|
grpMode->addAction(ui->actShow3DGrid);
|
|
|
|
connect(ui->actShow2D, SIGNAL(triggered(bool)), this, SIGNAL(onShow2D()));
|
|
connect(ui->actShow3DGrid, SIGNAL(triggered(bool)), this, SIGNAL(onShow3DGrid()));
|
|
connect(ui->actShow3DFloorplan, SIGNAL(triggered(bool)), this, SIGNAL(onShow3DFloorplan()));
|
|
|
|
|
|
// node coloring
|
|
QActionGroup* grpNodeCol = new QActionGroup(this);
|
|
grpNodeCol->addAction(ui->actGridNodeColorImportance);
|
|
grpNodeCol->addAction(ui->actGridNodeColorType);
|
|
|
|
connect(ui->actGridNodeColorImportance, SIGNAL(triggered(bool)), this, SIGNAL(onGridNodeColorImp()));
|
|
connect(ui->actGridNodeColorType, SIGNAL(triggered(bool)), this, SIGNAL(onGridNodeColorType()));
|
|
|
|
// edges
|
|
connect(ui->actGridShowEdges, &QAction::triggered, this, &MainWindow::onGridShowEdges);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
MainWindow::~MainWindow() {
|
|
delete ui;
|
|
}
|
|
|
|
|