Skip to content

Commit 2b36555

Browse files
authored
Merge pull request #249 from cneben/f/#244-navigable-polish
F/#244 navigable polish
2 parents cb25c32 + 0eef270 commit 2b36555

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/qanDraggableCtrl.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,10 @@ void DraggableCtrl::beginDragMove(const QPointF& sceneDragPos, bool dragSelec
226226
_targetItem->setDragged(true);
227227

228228
_initialSceneDragPos = sceneDragPos;
229+
if (!_target->isGroup()) {
230+
_initialTargetZ = _targetItem->z(); // 20240821: Force maximum graph z when dragging a node (not a group), restored
231+
_targetItem->setZ(graph->getMaxZ() + 10.); // in endDragMove
232+
}
229233
const auto rootItem = getGraph()->getContainerItem();
230234
if (rootItem != nullptr) // Project in scene rect (for example if a node is part of a group)
231235
_initialTargetScenePos = rootItem->mapFromItem(_targetItem, QPointF{0,0});
@@ -419,6 +423,11 @@ void DraggableCtrl::endDragMove(bool dragSelection, bool notify)
419423
!_targetItem)
420424
return;
421425

426+
if (!_target->isGroup()) {
427+
_targetItem->setZ(_initialTargetZ);
428+
_initialTargetZ = 0.;
429+
}
430+
422431
if (_target->getIsProtected() || // Prevent dragging of protected or locked objects
423432
_target->getLocked())
424433
return;

src/qanDraggableCtrl.h

+2
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ class DraggableCtrl : public qan::AbstractDraggableCtrl
113113
QPointF _initialSceneDragPos{0., 0.};
114114
//! Internal (target) initial dragging position.
115115
QPointF _initialTargetScenePos{0., 0.};
116+
//! Internal (target) initial dragging z.
117+
double _initialTargetZ = 0.;
116118

117119
//! Last group hovered during a node drag (cached to generate a dragLeave signal on qan::Group).
118120
QPointer<qan::Group> _lastProposedGroup{nullptr};

0 commit comments

Comments
 (0)