mirror of
https://github.com/emilk/egui.git
synced 2026-09-02 06:40:06 -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",
|
"eframe",
|
||||||
"egui_extras",
|
"egui_extras",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
|
"log",
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,13 @@ pub trait Behavior<Leaf> {
|
|||||||
fn tab_text_for_leaf(&mut self, leaf: &Leaf) -> WidgetText;
|
fn tab_text_for_leaf(&mut self, leaf: &Leaf) -> WidgetText;
|
||||||
|
|
||||||
fn tab_text_for_node(&mut self, nodes: &Nodes<Leaf>, node_id: NodeId) -> WidgetText {
|
fn tab_text_for_node(&mut self, nodes: &Nodes<Leaf>, node_id: NodeId) -> WidgetText {
|
||||||
match &nodes.nodes[&node_id] {
|
if let Some(node) = nodes.nodes.get(&node_id) {
|
||||||
Node::Leaf(leaf) => self.tab_text_for_leaf(leaf),
|
match node {
|
||||||
Node::Branch(branch) => format!("{:?}", branch.get_layout()).into(),
|
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" }
|
egui_extras = { path = "../../crates/egui_extras" }
|
||||||
env_logger = "0.10"
|
env_logger = "0.10"
|
||||||
|
log = "0.4"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
|
|||||||
@@ -244,12 +244,16 @@ fn tree_ui(
|
|||||||
nodes: &mut dock::Nodes<View>,
|
nodes: &mut dock::Nodes<View>,
|
||||||
node_id: dock::NodeId,
|
node_id: dock::NodeId,
|
||||||
) {
|
) {
|
||||||
|
// Get the name BEFORE we remove the node below
|
||||||
let text = format!(
|
let text = format!(
|
||||||
"{} - {node_id:?}",
|
"{} - {node_id:?}",
|
||||||
behavior.tab_text_for_node(nodes, node_id).text()
|
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)
|
egui::CollapsingHeader::new(text)
|
||||||
.id_source((node_id, "tree"))
|
.id_source((node_id, "tree"))
|
||||||
|
|||||||
Reference in New Issue
Block a user