copy paste mysteries with ghost nodes and disappearing connections

This commit is contained in:
Sebastian
2024-11-01 14:46:51 +01:00
parent a10335ed47
commit 41cad27806
3 changed files with 10 additions and 12 deletions
+7 -9
View File
@@ -64,17 +64,15 @@ class GraphManager{
}
SPTR_Node copyNode(SPTR_Node n, Vec2D<float> position){
auto nc = std::make_shared<Node>(*n);
nc->setPosition(position);
nodes.push_back(nc);
return nc;
nodes.emplace_back(std::make_shared<Node>(*n));
nodes.back()->setPosition(position);
return nodes.back();
}
std::shared_ptr<MidiNode> copyNode(std::shared_ptr<MidiNode> n, Vec2D<float> position){
auto nc = std::make_shared<MidiNode>(*n);
nc->setPosition(position);
nodes.push_back(nc);
return nc;
std::shared_ptr<Node> copyNode(std::shared_ptr<MidiNode> n, Vec2D<float> position){
nodes.emplace_back(std::make_shared<Node>(*n));
nodes.back()->setPosition(position);
return nodes.back();
}
SPTR_Node addMidiNode(Vec2D<float> position){
+1 -1
View File
@@ -295,7 +295,7 @@ int main(){
}
case InteractionState::PASTE_SELECTED_NODES:
{
for(auto &n: copied_nodes){
for(auto n: copied_nodes){
n->drag_offset = (n->position - copied_nodes.front()->position);
}
app.copyNodesAndConnections(copied_nodes, mouse_pos);
+2 -2
View File
@@ -56,9 +56,9 @@ class AppState{
SPTR_Node old_node = n;
SPTR_Node new_node = gm.copyNode(n, position + n->drag_offset);
new_node->copied = false;
new_node->selected = true;
new_node->selected = false;
for(auto &c : copy_connections){
for(auto c : copy_connections){
if(c->start == old_node) c->start = new_node;
if(c->end == old_node) c->end = new_node;
}