From a1f2a2b256ab6b867749b0a4960e9c6620834d6b Mon Sep 17 00:00:00 2001 From: Mohamed Osama <67656249+moOsama76@users.noreply.github.com> Date: Sun, 3 Mar 2024 01:34:25 +0200 Subject: [PATCH] Fix layers losing their names upon being grouped (#1637) * no message * no message * no message * Make layers reserve their names when grouped * remove redundancy * replace String::from("") with String::new() * Fix test * Restore unrequested line break changes * Avoid unwraps --------- Co-authored-by: Keavon Chambers --- editor/src/dispatcher.rs | 1 + .../portfolio/document/document_message_handler.rs | 10 +++++++++- .../document/node_graph/graph_operation_message.rs | 1 + .../node_graph/graph_operation_message_handler.rs | 12 +++++++++++- .../portfolio/document/utility_types/clipboards.rs | 1 + .../messages/portfolio/portfolio_message_handler.rs | 5 +++++ editor/src/messages/tool/tool_messages/brush_tool.rs | 1 + .../src/messages/tool/tool_messages/select_tool.rs | 8 +++++++- 8 files changed, 36 insertions(+), 3 deletions(-) diff --git a/editor/src/dispatcher.rs b/editor/src/dispatcher.rs index 3d86309f..c2b4903f 100644 --- a/editor/src/dispatcher.rs +++ b/editor/src/dispatcher.rs @@ -364,6 +364,7 @@ mod test { nodes: HashMap::new(), parent: LayerNodeIdentifier::ROOT, insert_index: -1, + alias: String::new(), }); editor.handle_message(NodeGraphMessage::SelectedNodesSet { nodes: vec![FOLDER_ID] }); diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 46238c34..ca1d4ad4 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -370,6 +370,7 @@ impl MessageHandler> for DocumentMessageHand nodes: HashMap::new(), parent, insert_index: -1, + alias: String::new(), }); responses.add(NodeGraphMessage::SelectedNodesSet { nodes: vec![id] }); } @@ -423,7 +424,13 @@ impl MessageHandler> for DocumentMessageHand let id = NodeId(generate_uuid()); let insert_index = -1; - responses.add(GraphOperationMessage::NewCustomLayer { id, nodes, parent, insert_index }); + responses.add(GraphOperationMessage::NewCustomLayer { + id, + nodes, + parent, + insert_index, + alias: String::new(), + }); } } FlipSelectedLayers { flip_axis } => { @@ -501,6 +508,7 @@ impl MessageHandler> for DocumentMessageHand nodes: HashMap::new(), parent, insert_index: calculated_insert_index.unwrap_or(-1), + alias: String::new(), }); responses.add(PortfolioMessage::PasteIntoFolder { clipboard: Clipboard::Internal, diff --git a/editor/src/messages/portfolio/document/node_graph/graph_operation_message.rs b/editor/src/messages/portfolio/document/node_graph/graph_operation_message.rs index ffec1511..959bd27c 100644 --- a/editor/src/messages/portfolio/document/node_graph/graph_operation_message.rs +++ b/editor/src/messages/portfolio/document/node_graph/graph_operation_message.rs @@ -81,6 +81,7 @@ pub enum GraphOperationMessage { nodes: HashMap, parent: LayerNodeIdentifier, insert_index: isize, + alias: String, }, NewVectorLayer { id: NodeId, diff --git a/editor/src/messages/portfolio/document/node_graph/graph_operation_message_handler.rs b/editor/src/messages/portfolio/document/node_graph/graph_operation_message_handler.rs index ce630c7a..11b3ebbe 100644 --- a/editor/src/messages/portfolio/document/node_graph/graph_operation_message_handler.rs +++ b/editor/src/messages/portfolio/document/node_graph/graph_operation_message_handler.rs @@ -670,7 +670,13 @@ impl MessageHandler> for Gr modify_inputs.insert_image_data(image_frame, layer); } } - GraphOperationMessage::NewCustomLayer { id, nodes, parent, insert_index } => { + GraphOperationMessage::NewCustomLayer { + id, + nodes, + parent, + insert_index, + alias, + } => { trace!("Inserting new layer {id} as a child of {parent:?} at index {insert_index}"); let mut modify_inputs = ModifyInputsContext::new(document_network, document_metadata, node_graph, responses); @@ -678,6 +684,10 @@ impl MessageHandler> for Gr if let Some(layer) = modify_inputs.create_layer_with_insert_index(id, insert_index, parent) { let new_ids: HashMap<_, _> = nodes.iter().map(|(&id, _)| (id, NodeId(generate_uuid()))).collect(); + if let Some(node) = modify_inputs.document_network.nodes.get_mut(&id) { + node.alias = alias.clone(); + } + let shift = nodes .get(&NodeId(0)) .and_then(|node| { diff --git a/editor/src/messages/portfolio/document/utility_types/clipboards.rs b/editor/src/messages/portfolio/document/utility_types/clipboards.rs index c4f16984..b4dd60df 100644 --- a/editor/src/messages/portfolio/document/utility_types/clipboards.rs +++ b/editor/src/messages/portfolio/document/utility_types/clipboards.rs @@ -21,4 +21,5 @@ pub struct CopyBufferEntry { pub nodes: HashMap, pub selected: bool, pub collapsed: bool, + pub alias: String, } diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index 0bd44b95..2e65ba7b 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -180,6 +180,8 @@ impl MessageHandler