(self, tree: dict[str, Any] | None)
| 2706 | self._plot_current() |
| 2707 | |
| 2708 | def _render_stack_tree_panel(self, tree: dict[str, Any] | None) -> None: |
| 2709 | self.stack_tree.delete(*self.stack_tree.get_children()) |
| 2710 | self.stack_item_nodes.clear() |
| 2711 | |
| 2712 | if not tree: |
| 2713 | self.stack_summary_var.set("No stack data") |
| 2714 | self.stack_selected_var.set("No stack data") |
| 2715 | return |
| 2716 | |
| 2717 | self.stack_summary_var.set(f"{_stack_node_name(tree)} | {_format_stack_summary(tree)}") |
| 2718 | self.stack_selected_var.set(tree.get("canonical_name") or tree.get("display_name") or "") |
| 2719 | |
| 2720 | children = tree.get("children", []) |
| 2721 | if not children: |
| 2722 | self.stack_tree.insert("", "end", text="(no stack frames)", values=("0.0%", "0", "0", "0")) |
| 2723 | return |
| 2724 | |
| 2725 | for child in children: |
| 2726 | self._insert_stack_tree_node("", child, open_state=True) |
| 2727 | |
| 2728 | roots = self.stack_tree.get_children("") |
| 2729 | if roots: |
| 2730 | self.stack_tree.selection_set(roots[0]) |
| 2731 | self.stack_tree.focus(roots[0]) |
| 2732 | self._on_stack_tree_select(None) |
| 2733 | |
| 2734 | def _insert_stack_tree_node(self, parent: str, node: dict[str, Any], open_state: bool = False) -> None: |
| 2735 | item = self.stack_tree.insert( |
no test coverage detected