Make the show/hide layer buttons work (#118) (#127)

This commit is contained in:
akshay1992kalbhor 2021-05-18 22:25:05 +05:30 committed by Keavon Chambers
parent 564560c7dd
commit a5bea53db2
3 changed files with 16 additions and 1 deletions

View File

@ -300,6 +300,14 @@ impl Document {
let children = self.layer_panel(path.as_slice())?;
Some(vec![DocumentResponse::DocumentChanged, DocumentResponse::ExpandFolder { path, children }])
}
Operation::ToggleVisibility { path } => {
let _ = self.layer_mut(&path).map(|layer| {
layer.visible = !layer.visible;
layer.cache_dirty = true;
});
let children = self.layer_panel(&path.as_slice()[..path.len() - 1])?;
Some(vec![DocumentResponse::ExpandFolder { path: vec![], children }])
}
};
Ok(responses)
}

View File

@ -68,4 +68,7 @@ pub enum Operation {
DiscardWorkingFolder,
ClearWorkingFolder,
CommitTransaction,
ToggleVisibility {
path: Vec<LayerId>,
},
}

View File

@ -37,7 +37,11 @@ impl Dispatcher {
editor_state.tool_state.document_tool_data.mouse_state.position = *pos;
}
Event::ToggleLayerVisibility(path) => {
log::debug!("Toggling layer visibility not yet implemented in the Editor Library");
let document_responses = self.dispatch_operations(&mut editor_state.document, vec![Operation::ToggleVisibility { path: path.clone() }]);
self.dispatch_response(ToolResponse::UpdateCanvas {
document: editor_state.document.render_root(),
});
self.dispatch_responses(document_responses);
}
Event::KeyUp(_key) => (),
Event::KeyDown(key) => {