From 4c9ef0fe6c2d2c0f44865adfb49e8e5e43d4dda0 Mon Sep 17 00:00:00 2001 From: Christopher Mendoza <57922269+ChrisMend19@users.noreply.github.com> Date: Sun, 16 Apr 2023 14:42:12 -0700 Subject: [PATCH] Change selection to only the duplicated layer (not both layers) when using Ctrl+D (#1118) * Nudging is now based on local pixel dimensions * Brush tool live preview (#1116) * Disable vector preview for brush tool * Fix brush preview * Fix warping * Left and right square brackets to change size * Add linear interpolation * Modfiy existing selected brush layer * Resolve warnings --------- Co-authored-by: Dennis Kobert Co-authored-by: Keavon Chambers * Duplicating a layer selects only new layer * Add Ctrl+J duplicate alias hotkey --------- Co-authored-by: 0HyperCube <78500760+0HyperCube@users.noreply.github.com> Co-authored-by: Dennis Kobert Co-authored-by: Keavon Chambers --- editor/src/messages/input_mapper/default_mapping.rs | 1 + .../portfolio/document/document_message_handler.rs | 2 ++ node-graph/gcore/src/raster/brightness_contrast.rs | 8 ++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/editor/src/messages/input_mapper/default_mapping.rs b/editor/src/messages/input_mapper/default_mapping.rs index 82da9b21..860a6f31 100644 --- a/editor/src/messages/input_mapper/default_mapping.rs +++ b/editor/src/messages/input_mapper/default_mapping.rs @@ -242,6 +242,7 @@ pub fn default_mapping() -> Mapping { entry!(KeyDown(KeyA); modifiers=[Accel], action_dispatch=DocumentMessage::SelectAllLayers), entry!(KeyDown(KeyS); modifiers=[Accel], action_dispatch=DocumentMessage::SaveDocument), entry!(KeyDown(KeyD); modifiers=[Accel], action_dispatch=DocumentMessage::DuplicateSelectedLayers), + entry!(KeyDown(KeyJ); modifiers=[Accel], action_dispatch=DocumentMessage::DuplicateSelectedLayers), entry!(KeyDown(KeyG); modifiers=[Accel], action_dispatch=DocumentMessage::GroupSelectedLayers), entry!(KeyDown(KeyG); modifiers=[Accel, Shift], action_dispatch=DocumentMessage::UngroupSelectedLayers), entry!(KeyDown(KeyN); modifiers=[Accel, Shift], action_dispatch=DocumentMessage::CreateEmptyFolder { container_path: vec![] }), diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 0b578e79..833047ce 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -348,6 +348,8 @@ impl MessageHandler { self.backup(responses); + responses.push_front(SetSelectedLayers { replacement_selected_layers: vec![] }.into()); + self.layer_range_selection_reference.clear(); for path in self.selected_layers_sorted() { responses.push_back(DocumentOperation::DuplicateLayer { path: path.to_vec() }.into()); } diff --git a/node-graph/gcore/src/raster/brightness_contrast.rs b/node-graph/gcore/src/raster/brightness_contrast.rs index bcea3fd7..2c66160b 100644 --- a/node-graph/gcore/src/raster/brightness_contrast.rs +++ b/node-graph/gcore/src/raster/brightness_contrast.rs @@ -239,12 +239,10 @@ mod tests { #[allow(unused_imports)] use crate::value::ClonedNode; - fn string_data(string: &str) -> Vec { - string.split(',').map(|s| s.parse().unwrap()).collect::>() - } - #[test] fn brightness_contrast_legacy_tests() { + let string_data = |string: &str| string.split(',').map(|s| s.parse().unwrap()).collect::>(); + let brightness_contrast_legacy_map = |brightness, contrast| -> [u8; 256] { let brightness = ClonedNode::new(brightness); let contrast = ClonedNode::new(contrast); @@ -300,6 +298,8 @@ mod tests { #[test] fn brightness_contrast_tests() { + let string_data = |string: &str| string.split(',').map(|s| s.parse().unwrap()).collect::>(); + let brightness_contrast_map = |brightness, contrast| -> [u8; 1024] { let brightness = ClonedNode::new(brightness); let contrast = ClonedNode::new(contrast);