1
0
mirror of https://github.com/emilk/egui.git synced 2026-06-27 23:13:13 -04:00

Warn about missing nodes

This commit is contained in:
Emil Ernerfeldt
2023-05-04 16:10:06 +02:00
parent 051ec14b98
commit 6f69a143fe
4 changed files with 14 additions and 4 deletions

1
Cargo.lock generated
View File

@@ -1135,6 +1135,7 @@ dependencies = [
"eframe",
"egui_extras",
"env_logger",
"log",
"serde",
]

View File

@@ -12,9 +12,13 @@ pub trait Behavior<Leaf> {
fn tab_text_for_leaf(&mut self, leaf: &Leaf) -> WidgetText;
fn tab_text_for_node(&mut self, nodes: &Nodes<Leaf>, node_id: NodeId) -> WidgetText {
match &nodes.nodes[&node_id] {
Node::Leaf(leaf) => self.tab_text_for_leaf(leaf),
Node::Branch(branch) => format!("{:?}", branch.get_layout()).into(),
if let Some(node) = nodes.nodes.get(&node_id) {
match node {
Node::Leaf(leaf) => self.tab_text_for_leaf(leaf),
Node::Branch(branch) => format!("{:?}", branch.get_layout()).into(),
}
} else {
"MISSING NODE".into()
}
}

View File

@@ -15,4 +15,5 @@ eframe = { path = "../../crates/eframe", features = [
] }
egui_extras = { path = "../../crates/egui_extras" }
env_logger = "0.10"
log = "0.4"
serde = { version = "1.0", features = ["derive"] }

View File

@@ -244,12 +244,16 @@ fn tree_ui(
nodes: &mut dock::Nodes<View>,
node_id: dock::NodeId,
) {
// Get the name BEFORE we remove the node below
let text = format!(
"{} - {node_id:?}",
behavior.tab_text_for_node(nodes, node_id).text()
);
let Some(mut node) = nodes.nodes.remove(&node_id) else { return; };
let Some(mut node) = nodes.nodes.remove(&node_id) else {
log::warn!("Missing node {node_id:?}");
return;
};
egui::CollapsingHeader::new(text)
.id_source((node_id, "tree"))