Skip to content

Commit 6a63fbf

Browse files
committed
Add tests
1 parent be4b93a commit 6a63fbf

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
@@ -617,22 +617,19 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
617617
let max = all_layer_paths.len() as i64 - 1;
618618
let insert_pos = (pos as i64 + relative_positon as i64).clamp(0, max) as usize;
619619
let insert = all_layer_paths.get(insert_pos);
620-
let position_change = (insert_pos) as i32 - pos as i32;
621-
if position_change != 0 {
622-
if let Some(insert_path) = insert {
623-
let (id, path) = insert_path.split_last().expect("Can't move the root folder");
624-
if let Some(folder) = self.active_document().document.document_layer(path).ok().map(|layer| layer.as_folder().ok()).flatten() {
625-
let selected: Vec<_> = selected_layers
626-
.iter()
627-
.filter(|layer| layer.starts_with(path) && layer.len() == path.len() + 1)
628-
.map(|x| x.last().unwrap())
629-
.collect();
630-
let non_selected: Vec<_> = folder.layer_ids.iter().filter(|id| selected.iter().all(|x| x != id)).collect();
631-
let offset = if relative_positon < 0 || non_selected.is_empty() { 0 } else { 1 };
632-
let fallback = offset * (non_selected.len());
633-
let insert_index = non_selected.iter().position(|x| *x == id).map(|x| x + offset).unwrap_or(fallback) as isize;
634-
responses.push_back(DocumentMessage::MoveSelectedLayersTo { path: path.to_vec(), insert_index }.into())
635-
}
620+
if let Some(insert_path) = insert {
621+
let (id, path) = insert_path.split_last().expect("Can't move the root folder");
622+
if let Some(folder) = self.active_document().document.document_layer(path).ok().map(|layer| layer.as_folder().ok()).flatten() {
623+
let selected: Vec<_> = selected_layers
624+
.iter()
625+
.filter(|layer| layer.starts_with(path) && layer.len() == path.len() + 1)
626+
.map(|x| x.last().unwrap())
627+
.collect();
628+
let non_selected: Vec<_> = folder.layer_ids.iter().filter(|id| selected.iter().all(|x| x != id)).collect();
629+
let offset = if relative_positon < 0 || non_selected.is_empty() { 0 } else { 1 };
630+
let fallback = offset * (non_selected.len());
631+
let insert_index = non_selected.iter().position(|x| *x == id).map(|x| x + offset).unwrap_or(fallback) as isize;
632+
responses.push_back(DocumentMessage::MoveSelectedLayersTo { path: path.to_vec(), insert_index }.into())
636633
}
637634
}
638635
}

0 commit comments

Comments
 (0)