added new param-editing to APs and Beacons

changed drawing for better debuging
changed layer editing
option to add and delete layers
some minor changes
This commit is contained in:
2016-11-29 21:31:20 +01:00
parent 674f79c150
commit 535e410ae9
28 changed files with 614 additions and 62 deletions

92
params/LayerTree.cpp Normal file
View File

@@ -0,0 +1,92 @@
#include "LayerTree.h"
#include <QTreeView>
#include <QPushButton>
#include <QHBoxLayout>
#include <QGridLayout>
#include "../tree/MapTreeModel.h"
#include "../UIHelper.h"
LayerTree::LayerTree(QWidget *parent) : QWidget(parent) {
QGridLayout* layGrid = new QGridLayout(this);
tree = new QTreeView(this);
tree->setMinimumSize(150, 200);
QWidget* wButtons = new QWidget();
QHBoxLayout* layButtons = new QHBoxLayout(wButtons);
btnNew = new QPushButton(this);
btnNew->setIcon(UIHelper::getIcon("add"));
btnNew->setMaximumSize(32,32);
btnNew->setMinimumSize(32,32);
btnNew->setEnabled(false);
layButtons->addWidget(btnNew);
btnDelete = new QPushButton(this);
btnDelete->setIcon(UIHelper::getIcon("remove"));
btnDelete->setMaximumSize(32,32);
btnDelete->setMinimumSize(32,32);
btnDelete->setEnabled(false);
layButtons->addWidget(btnDelete);
layGrid->addWidget(tree, 0,0,1,1);
layGrid->addWidget(wButtons, 1, 0, 1, 1);
connect(btnNew, SIGNAL(clicked(bool)), this, SLOT(onBtnNew()));
connect(btnDelete, SIGNAL(clicked(bool)), this, SLOT(onBtnDelete()));
}
void LayerTree::expandAll() {
tree->expandAll();
}
void LayerTree::setModel(MapTreeModel* model) {
this->model = model;
this->tree->setModel(model);
// tree model selection events
if (!connect(tree->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(onLayerSelected(QModelIndex)))) {throw "error";}
}
void LayerTree::onLayerSelected(QModelIndex idx) {
MapLayer* ml = static_cast<MapLayer*>(idx.internalPointer());
MMFloors* floors = dynamic_cast<MMFloors*>(ml);
btnNew->setEnabled( floors != nullptr );
MMFloor* floor = dynamic_cast<MMFloor*>(ml);
btnDelete->setEnabled( floor != nullptr );
emit layerSelected(idx);
}
void LayerTree::onBtnNew() {
QModelIndex idx = tree->selectionModel()->selectedIndexes().first();
MapLayer* ml = static_cast<MapLayer*>(idx.internalPointer());
MMFloors* floors = dynamic_cast<MMFloors*>(ml);
if (floors) {
floors->createFloor();
model->getMapModel()->reset();
}
}
void LayerTree::onBtnDelete() {
QModelIndex idx = tree->selectionModel()->selectedIndexes().first();
MapLayer* ml = static_cast<MapLayer*>(idx.internalPointer());
MMFloor* floor= dynamic_cast<MMFloor*>(ml);
if (floor) {
floor->deleteMe();
model->getMapModel()->reset();
}
}