Skip to content

Commit 4a29e79

Browse files
committed
Add tests
1 parent 862f608 commit 4a29e79

File tree

3 files changed

+15
-19
lines changed

3 files changed

+15
-19
lines changed

core/document/src/document.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,6 @@ impl Document {
252252
}
253253

254254
fn working_paths(&mut self) -> Vec<Vec<LayerId>> {
255-
log::debug!("deleting: {:?}", self.work.as_folder().unwrap().layer_ids);
256255
self.work
257256
.as_folder()
258257
.unwrap()

core/editor/src/communication/dispatcher.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,11 +319,11 @@ mod test {
319319
let (all, non_selected, selected) = verify_order(&mut editor.dispatcher.document_message_handler);
320320
assert_eq!(all, non_selected.into_iter().chain(selected.into_iter()).collect::<Vec<_>>());
321321

322-
editor.handle_message(Message::Document(DocumentMessage::ReorderSelectedLayers(1))).unwrap();
322+
editor.handle_message(Message::Document(DocumentMessage::ReorderSelectedLayers(-1))).unwrap();
323323
let (all, non_selected, selected) = verify_order(&mut editor.dispatcher.document_message_handler);
324324
assert_eq!(all, selected.into_iter().chain(non_selected.into_iter()).collect::<Vec<_>>());
325325

326-
editor.handle_message(Message::Document(DocumentMessage::ReorderSelectedLayers(i32::MIN))).unwrap();
326+
editor.handle_message(Message::Document(DocumentMessage::ReorderSelectedLayers(i32::MAX))).unwrap();
327327
let (all, non_selected, selected) = verify_order(&mut editor.dispatcher.document_message_handler);
328328
assert_eq!(all, non_selected.into_iter().chain(selected.into_iter()).collect::<Vec<_>>());
329329
}

core/editor/src/document/document_message_handler.rs

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -608,22 +608,19 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
608608
let max = all_layer_paths.len() as i64 - 1;
609609
let insert_pos = (pos as i64 + relative_positon as i64).clamp(0, max) as usize;
610610
let insert = all_layer_paths.get(insert_pos);
611-
let position_change = (insert_pos) as i32 - pos as i32;
612-
if position_change != 0 {
613-
if let Some(insert_path) = insert {
614-
let (id, path) = insert_path.split_last().expect("Can't move the root folder");
615-
if let Some(folder) = self.active_document().document.document_layer(path).ok().map(|layer| layer.as_folder().ok()).flatten() {
616-
let selected: Vec<_> = selected_layers
617-
.iter()
618-
.filter(|layer| layer.starts_with(path) && layer.len() == path.len() + 1)
619-
.map(|x| x.last().unwrap())
620-
.collect();
621-
let non_selected: Vec<_> = folder.layer_ids.iter().filter(|id| selected.iter().all(|x| x != id)).collect();
622-
let offset = if relative_positon < 0 || non_selected.is_empty() { 0 } else { 1 };
623-
let fallback = offset * (non_selected.len());
624-
let insert_index = non_selected.iter().position(|x| *x == id).map(|x| x + offset).unwrap_or(fallback) as isize;
625-
responses.push_back(DocumentMessage::MoveSelectedLayersTo { path: path.to_vec(), insert_index }.into())
626-
}
611+
if let Some(insert_path) = insert {
612+
let (id, path) = insert_path.split_last().expect("Can't move the root folder");
613+
if let Some(folder) = self.active_document().document.document_layer(path).ok().map(|layer| layer.as_folder().ok()).flatten() {
614+
let selected: Vec<_> = selected_layers
615+
.iter()
616+
.filter(|layer| layer.starts_with(path) && layer.len() == path.len() + 1)
617+
.map(|x| x.last().unwrap())
618+
.collect();
619+
let non_selected: Vec<_> = folder.layer_ids.iter().filter(|id| selected.iter().all(|x| x != id)).collect();
620+
let offset = if relative_positon < 0 || non_selected.is_empty() { 0 } else { 1 };
621+
let fallback = offset * (non_selected.len());
622+
let insert_index = non_selected.iter().position(|x| *x == id).map(|x| x + offset).unwrap_or(fallback) as isize;
623+
responses.push_back(DocumentMessage::MoveSelectedLayersTo { path: path.to_vec(), insert_index }.into())
627624
}
628625
}
629626
}

0 commit comments

Comments
 (0)