mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-29 00:08:11 +08:00
Make the locked layer cannot be selected using pointer and select all key
This commit is contained in:
@@ -614,8 +614,11 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
|
|||||||
}
|
}
|
||||||
DocumentMessage::SelectAllLayers => {
|
DocumentMessage::SelectAllLayers => {
|
||||||
let metadata = self.metadata();
|
let metadata = self.metadata();
|
||||||
let all_layers_except_artboards = metadata.all_layers().filter(move |&layer| !metadata.is_artboard(layer));
|
let all_layers_except_artboards_locked = metadata
|
||||||
let nodes = all_layers_except_artboards.map(|layer| layer.to_node()).collect();
|
.all_layers()
|
||||||
|
.filter(move |&layer| !metadata.is_artboard(layer))
|
||||||
|
.filter(|&layer| !self.selected_nodes.layer_locked(layer, metadata));
|
||||||
|
let nodes = all_layers_except_artboards_locked.map(|layer| layer.to_node()).collect();
|
||||||
responses.add(NodeGraphMessage::SelectedNodesSet { nodes });
|
responses.add(NodeGraphMessage::SelectedNodesSet { nodes });
|
||||||
}
|
}
|
||||||
DocumentMessage::SelectedLayersLower => {
|
DocumentMessage::SelectedLayersLower => {
|
||||||
@@ -823,6 +826,7 @@ impl DocumentMessageHandler {
|
|||||||
.root()
|
.root()
|
||||||
.descendants(&self.metadata)
|
.descendants(&self.metadata)
|
||||||
.filter(|&layer| self.selected_nodes.layer_visible(layer, self.metadata()))
|
.filter(|&layer| self.selected_nodes.layer_visible(layer, self.metadata()))
|
||||||
|
.filter(|&layer| !self.selected_nodes.layer_locked(layer, self.metadata()))
|
||||||
.filter(|&layer| !is_artboard(layer, network))
|
.filter(|&layer| !is_artboard(layer, network))
|
||||||
.filter_map(|layer| self.metadata.click_target(layer).map(|targets| (layer, targets)))
|
.filter_map(|layer| self.metadata.click_target(layer).map(|targets| (layer, targets)))
|
||||||
.filter(move |(layer, target)| target.iter().any(move |target| target.intersect_rectangle(document_quad, self.metadata.transform_to_document(*layer))))
|
.filter(move |(layer, target)| target.iter().any(move |target| target.intersect_rectangle(document_quad, self.metadata.transform_to_document(*layer))))
|
||||||
@@ -836,6 +840,7 @@ impl DocumentMessageHandler {
|
|||||||
.root()
|
.root()
|
||||||
.descendants(&self.metadata)
|
.descendants(&self.metadata)
|
||||||
.filter(|&layer| self.selected_nodes.layer_visible(layer, self.metadata()))
|
.filter(|&layer| self.selected_nodes.layer_visible(layer, self.metadata()))
|
||||||
|
.filter(|&layer| !self.selected_nodes.layer_locked(layer, self.metadata()))
|
||||||
.filter_map(|layer| self.metadata.click_target(layer).map(|targets| (layer, targets)))
|
.filter_map(|layer| self.metadata.click_target(layer).map(|targets| (layer, targets)))
|
||||||
.filter(move |(layer, target)| target.iter().any(|target: &ClickTarget| target.intersect_point(point, self.metadata.transform_to_document(*layer))))
|
.filter(move |(layer, target)| target.iter().any(|target: &ClickTarget| target.intersect_point(point, self.metadata.transform_to_document(*layer))))
|
||||||
.map(|(layer, _)| layer)
|
.map(|(layer, _)| layer)
|
||||||
|
|||||||
@@ -596,7 +596,7 @@ impl NodeGraphMessageHandler {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Updates the buttons for visibility and preview
|
/// Updates the buttons for visibility, locked, and preview
|
||||||
fn update_selection_action_buttons(&mut self, document_network: &NodeNetwork, document_metadata: &DocumentMetadata, selected_nodes: &SelectedNodes, responses: &mut VecDeque<Message>) {
|
fn update_selection_action_buttons(&mut self, document_network: &NodeNetwork, document_metadata: &DocumentMetadata, selected_nodes: &SelectedNodes, responses: &mut VecDeque<Message>) {
|
||||||
if let Some(network) = document_network.nested_network(&self.network) {
|
if let Some(network) = document_network.nested_network(&self.network) {
|
||||||
let mut widgets = Vec::new();
|
let mut widgets = Vec::new();
|
||||||
|
|||||||
Reference in New Issue
Block a user