node: set ignore node when positioning and shifting recursively
This commit is contained in:
+2
-1
@@ -2294,7 +2294,7 @@ void NodeSetPositionAndShiftSurroundingsCommand::redo()
|
||||
|
||||
// Start moving other nodes
|
||||
foreach (Node* surrounding, node_->parent()->nodes()) {
|
||||
if (bounding_rect.contains(surrounding->GetPosition()) && surrounding != node_) {
|
||||
if (bounding_rect.contains(surrounding->GetPosition()) && surrounding != node_ && surrounding != ignore_node_) {
|
||||
QPointF new_pos = surrounding->GetPosition();
|
||||
|
||||
qreal move_rate = 0.50;
|
||||
@@ -2306,6 +2306,7 @@ void NodeSetPositionAndShiftSurroundingsCommand::redo()
|
||||
new_pos.setY(new_pos.y() + move_rate);
|
||||
|
||||
auto sur_command = new NodeSetPositionAndShiftSurroundingsCommand(surrounding, new_pos, true);
|
||||
sur_command->SetIgnoreNode(node_);
|
||||
sur_command->redo();
|
||||
commands_.append(sur_command);
|
||||
}
|
||||
|
||||
+9
-1
@@ -1351,7 +1351,8 @@ public:
|
||||
NodeSetPositionAndShiftSurroundingsCommand(Node* node, const QPointF& pos, bool move_dependencies_relatively) :
|
||||
node_(node),
|
||||
position_(pos),
|
||||
move_dependencies_(move_dependencies_relatively)
|
||||
move_dependencies_(move_dependencies_relatively),
|
||||
ignore_node_(nullptr)
|
||||
{}
|
||||
|
||||
virtual ~NodeSetPositionAndShiftSurroundingsCommand() override
|
||||
@@ -1373,6 +1374,11 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void SetIgnoreNode(Node* n)
|
||||
{
|
||||
ignore_node_ = n;
|
||||
}
|
||||
|
||||
private:
|
||||
Node* node_;
|
||||
|
||||
@@ -1382,6 +1388,8 @@ private:
|
||||
|
||||
QVector<UndoCommand*> commands_;
|
||||
|
||||
Node* ignore_node_;
|
||||
|
||||
};
|
||||
|
||||
class NodeSetPositionAsChildCommand : public UndoCommand
|
||||
|
||||
Reference in New Issue
Block a user