Merge branch 'master' of https://git.frank-ebner.de/FHWS/IndoorMap
This commit is contained in:
@@ -299,12 +299,47 @@ private:
|
||||
return true;
|
||||
}
|
||||
|
||||
if (e->key() == Qt::Key_Up || e->key() == Qt::Key_Down || e->key() == Qt::Key_Left || e->key() == Qt::Key_Right) {
|
||||
moveNodes(m, focused, e->key());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
void moveNodes(MapView2D* v, MapModelElement* focused, const int key) {
|
||||
|
||||
MV2DElement* me = focused->getMV2D();
|
||||
if (!me) {return;}
|
||||
|
||||
HasMoveableNodes* elem = dynamic_cast<HasMoveableNodes*>(me);
|
||||
if (!elem) {return;}
|
||||
|
||||
// no node selected? -> done
|
||||
if (elem->getSelectedNode() == -1) {return;}
|
||||
|
||||
// get current value
|
||||
MoveableNode& node = elem->getMoveableNodes()[elem->getSelectedNode()];
|
||||
Point2 pos = node.pos;
|
||||
|
||||
// adjust the node
|
||||
switch(key) {
|
||||
case Qt::Key_Up: pos.y += 0.1; break;
|
||||
case Qt::Key_Down: pos.y -= 0.1; break;
|
||||
case Qt::Key_Left: pos.x -= 0.1; break;
|
||||
case Qt::Key_Right: pos.x += 0.1; break;
|
||||
}
|
||||
|
||||
// snap the position
|
||||
pos = v->getScaler().snap(pos);
|
||||
|
||||
// move
|
||||
elem->onNodeMove(v, elem->getSelectedNode(), pos);
|
||||
|
||||
}
|
||||
|
||||
signals:
|
||||
|
||||
/** map element was selected */
|
||||
|
||||
Reference in New Issue
Block a user