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:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -1135,6 +1135,7 @@ dependencies = [
|
||||
"eframe",
|
||||
"egui_extras",
|
||||
"env_logger",
|
||||
"log",
|
||||
"serde",
|
||||
]
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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"] }
|
||||
|
||||
@@ -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"))
|
||||
|
||||
Reference in New Issue
Block a user