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:
92
params/LayerTree.cpp
Normal file
92
params/LayerTree.cpp
Normal 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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user