Code cleanup around the input mapper system

This commit is contained in:
Keavon Chambers 2025-02-04 19:20:53 -08:00
parent 41ee1cf8bc
commit 0cda8e2bb4
5 changed files with 6 additions and 47 deletions

View File

@ -74,7 +74,6 @@ pub fn input_mappings() -> Mapping {
entry!(KeyDown(KeyH); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedVisibility), entry!(KeyDown(KeyH); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedVisibility),
entry!(KeyDown(KeyL); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedLocked), entry!(KeyDown(KeyL); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedLocked),
entry!(KeyDown(KeyL); modifiers=[Alt], action_dispatch=NodeGraphMessage::ToggleSelectedAsLayersOrNodes), entry!(KeyDown(KeyL); modifiers=[Alt], action_dispatch=NodeGraphMessage::ToggleSelectedAsLayersOrNodes),
entry!(KeyDown(KeyC); modifiers=[Shift], action_dispatch=NodeGraphMessage::PrintSelectedNodeCoordinates),
entry!(KeyDown(KeyC); modifiers=[Alt], action_dispatch=NodeGraphMessage::SendClickTargets), entry!(KeyDown(KeyC); modifiers=[Alt], action_dispatch=NodeGraphMessage::SendClickTargets),
entry!(KeyDown(KeyM); modifiers=[Accel], action_dispatch=NodeGraphMessage::MergeSelectedNodes), entry!(KeyDown(KeyM); modifiers=[Accel], action_dispatch=NodeGraphMessage::MergeSelectedNodes),
entry!(KeyUp(KeyC); action_dispatch=NodeGraphMessage::EndSendClickTargets), entry!(KeyUp(KeyC); action_dispatch=NodeGraphMessage::EndSendClickTargets),
@ -321,7 +320,6 @@ pub fn input_mappings() -> Mapping {
entry!(KeyUp(Escape); action_dispatch=DocumentMessage::Escape), entry!(KeyUp(Escape); action_dispatch=DocumentMessage::Escape),
entry!(KeyDown(Delete); action_dispatch=DocumentMessage::DeleteSelectedLayers), entry!(KeyDown(Delete); action_dispatch=DocumentMessage::DeleteSelectedLayers),
entry!(KeyDown(Backspace); action_dispatch=DocumentMessage::DeleteSelectedLayers), entry!(KeyDown(Backspace); action_dispatch=DocumentMessage::DeleteSelectedLayers),
entry!(KeyDown(KeyP); modifiers=[Alt], action_dispatch=DocumentMessage::DebugPrintDocument),
entry!(KeyDown(KeyO); modifiers=[Alt], action_dispatch=DocumentMessage::ToggleOverlaysVisibility), entry!(KeyDown(KeyO); modifiers=[Alt], action_dispatch=DocumentMessage::ToggleOverlaysVisibility),
entry!(KeyDown(KeyS); modifiers=[Alt], action_dispatch=DocumentMessage::ToggleSnapping), entry!(KeyDown(KeyS); modifiers=[Alt], action_dispatch=DocumentMessage::ToggleSnapping),
entry!(KeyDown(KeyH); modifiers=[Accel], action_dispatch=DocumentMessage::ToggleSelectedVisibility), entry!(KeyDown(KeyH); modifiers=[Accel], action_dispatch=DocumentMessage::ToggleSelectedVisibility),
@ -427,23 +425,26 @@ pub fn input_mappings() -> Mapping {
entry!(KeyDown(Comma); modifiers=[Accel], action_dispatch=DialogMessage::RequestPreferencesDialog), entry!(KeyDown(Comma); modifiers=[Accel], action_dispatch=DialogMessage::RequestPreferencesDialog),
// //
// DebugMessage // DebugMessage
entry!(KeyDown(KeyT); modifiers=[Alt], action_dispatch=DebugMessage::ToggleTraceLogs),
entry!(KeyDown(Digit0); modifiers=[Alt], action_dispatch=DebugMessage::MessageOff), entry!(KeyDown(Digit0); modifiers=[Alt], action_dispatch=DebugMessage::MessageOff),
entry!(KeyDown(Digit1); modifiers=[Alt], action_dispatch=DebugMessage::MessageNames), entry!(KeyDown(Digit1); modifiers=[Alt], action_dispatch=DebugMessage::MessageNames),
entry!(KeyDown(Digit2); modifiers=[Alt], action_dispatch=DebugMessage::MessageContents), entry!(KeyDown(Digit2); modifiers=[Alt], action_dispatch=DebugMessage::MessageContents),
]; ];
let (mut key_up, mut key_down, mut key_up_no_repeat, mut key_down_no_repeat, mut double_click, mut wheel_scroll, mut pointer_move) = mappings; let (mut key_up, mut key_down, mut key_up_no_repeat, mut key_down_no_repeat, mut double_click, mut wheel_scroll, mut pointer_move) = mappings;
let sort = |list: &mut KeyMappingEntries| list.0.sort_by(|u, v| v.modifiers.ones().cmp(&u.modifiers.ones())); let sort = |list: &mut KeyMappingEntries| list.0.sort_by(|a, b| b.modifiers.count_ones().cmp(&a.modifiers.count_ones()));
// Sort the sublists of `key_up`, `key_down`, `key_up_no_repeat`, and `key_down_no_repeat`
for list in [&mut key_up, &mut key_down, &mut key_up_no_repeat, &mut key_down_no_repeat] { for list in [&mut key_up, &mut key_down, &mut key_up_no_repeat, &mut key_down_no_repeat] {
for sublist in list { for sublist in list {
sort(sublist); sort(sublist);
} }
} }
// Sort the sublists of `double_click`
for sublist in &mut double_click { for sublist in &mut double_click {
sort(sublist) sort(sublist)
} }
// Sort `wheel_scroll`
sort(&mut wheel_scroll); sort(&mut wheel_scroll);
// Sort `pointer_move`
sort(&mut pointer_move); sort(&mut pointer_move);
Mapping { Mapping {

View File

@ -434,7 +434,7 @@ impl<const LENGTH: usize> BitVector<LENGTH> {
result == 0 result == 0
} }
pub fn ones(&self) -> u32 { pub fn count_ones(&self) -> u32 {
let mut result = 0; let mut result = 0;
for storage in self.0.iter() { for storage in self.0.iter() {

View File

@ -96,7 +96,6 @@ pub enum NodeGraphMessage {
PointerOutsideViewport { PointerOutsideViewport {
shift: Key, shift: Key,
}, },
PrintSelectedNodeCoordinates,
RemoveImport { RemoveImport {
import_index: usize, import_index: usize,
}, },

View File

@ -1229,44 +1229,6 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphHandlerData<'a>> for NodeGrap
self.auto_panning.stop(&messages, responses); self.auto_panning.stop(&messages, responses);
} }
} }
NodeGraphMessage::PrintSelectedNodeCoordinates => {
// TODO: This will also have to print all metadata
// for (_, node_to_print) in network
// .nodes
// .iter()
// .filter(|node_id| selected_nodes.selected_nodes().any(|selected_id| selected_id == node_id.0))
// {
// if let DocumentNodeImplementation::Network(network) = &node_to_print.implementation {
// let mut output = "\r\n\r\n".to_string();
// output += &node_to_print.name;
// output += ":\r\n\r\n";
// let mut nodes = network.nodes.iter().collect::<Vec<_>>();
// nodes.sort_by_key(|(a, _)| a.0);
// output += &nodes
// .iter()
// .map(|(_, node)| {
// format!(
// "metadata: DocumentNodeMetadata {{ position: glam::IVec2::new({}, {}) }}, // {}",
// node.metadata().position.x, node.metadata().position.y, node.name
// )
// })
// .collect::<Vec<_>>()
// .join("\r\n");
// output += "\r\n";
// output += &format!(
// "imports_metadata: (NodeId::new(), ({}, {}).into()),\r\n",
// network.imports_metadata.1.x, network.imports_metadata.1.y
// );
// output += &format!(
// "exports_metadata: (NodeId::new(), ({}, {}).into()),",
// network.exports_metadata.1.x, network.exports_metadata.1.y
// );
// output += "\r\n\r\n";
// // KEEP THIS `debug!()` - Someday we can remove this once this development utility is no longer needed
// log::debug!("{output}");
// }
// }
}
NodeGraphMessage::RemoveImport { import_index: usize } => { NodeGraphMessage::RemoveImport { import_index: usize } => {
network_interface.remove_import(usize, selection_network_path); network_interface.remove_import(usize, selection_network_path);
responses.add(NodeGraphMessage::SendGraph); responses.add(NodeGraphMessage::SendGraph);
@ -1738,7 +1700,6 @@ impl NodeGraphMessageHandler {
ToggleSelectedAsLayersOrNodes, ToggleSelectedAsLayersOrNodes,
ToggleSelectedLocked, ToggleSelectedLocked,
ToggleSelectedVisibility, ToggleSelectedVisibility,
PrintSelectedNodeCoordinates,
ShiftSelectedNodes, ShiftSelectedNodes,
)); ));
} }

View File

@ -466,13 +466,11 @@ impl LayoutHolder for MenuBarMessageHandler {
MenuBarEntry { MenuBarEntry {
label: "Debug: Print Trace Logs".into(), label: "Debug: Print Trace Logs".into(),
icon: Some(if log::max_level() == log::LevelFilter::Trace { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()), icon: Some(if log::max_level() == log::LevelFilter::Trace { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()),
shortcut: action_keys!(DebugMessageDiscriminant::ToggleTraceLogs),
action: MenuBarEntry::create_action(|_| DebugMessage::ToggleTraceLogs.into()), action: MenuBarEntry::create_action(|_| DebugMessage::ToggleTraceLogs.into()),
..MenuBarEntry::default() ..MenuBarEntry::default()
}, },
MenuBarEntry { MenuBarEntry {
label: "Debug: Print Document".into(), label: "Debug: Print Document".into(),
shortcut: action_keys!(DocumentMessageDiscriminant::DebugPrintDocument),
action: MenuBarEntry::create_action(|_| DocumentMessage::DebugPrintDocument.into()), action: MenuBarEntry::create_action(|_| DocumentMessage::DebugPrintDocument.into()),
..MenuBarEntry::default() ..MenuBarEntry::default()
}, },