clean up debug logging and restore normal tree behavior

This commit is contained in:
Timur Gordon 2025-08-07 15:45:09 +02:00
parent 0df79e78c6
commit 69e612e521

View File

@ -10,7 +10,7 @@ use crossterm::{
execute, execute,
}; };
use hero_job::{Job, JobStatus, ScriptType}; use hero_job::{Job, JobStatus, ScriptType};
use log::{error, info}; use log::error;
use ratatui::{ use ratatui::{
backend::{Backend, CrosstermBackend}, backend::{Backend, CrosstermBackend},
layout::{Alignment, Constraint, Direction, Layout, Rect}, layout::{Alignment, Constraint, Direction, Layout, Rect},
@ -225,32 +225,12 @@ impl App {
pub fn load_examples_tree(&mut self, dir: PathBuf) -> Result<()> { pub fn load_examples_tree(&mut self, dir: PathBuf) -> Result<()> {
if !dir.exists() { if !dir.exists() {
log::warn!("Examples directory does not exist: {:?}", dir);
return Ok(()); return Ok(());
} }
log::info!("Loading examples tree from: {:?}", dir);
// Load hierarchical tree structure // Load hierarchical tree structure
match self.load_example_tree(&dir) { self.example_tree = self.load_example_tree(&dir)?;
Ok(tree) => {
self.example_tree = tree;
log::info!("Successfully loaded {} top-level tree nodes", self.example_tree.len());
}
Err(e) => {
log::error!("Failed to load example tree: {}", e);
// Create a simple fallback structure
self.example_tree = vec![
ExampleTreeNode::File {
name: "Error loading examples".to_string(),
path: dir.join("error.rhai"),
}
];
}
}
self.rebuild_tree_items(); self.rebuild_tree_items();
log::info!("Rebuilt tree items: {} total items", self.example_tree_items.len());
if !self.example_tree_items.is_empty() { if !self.example_tree_items.is_empty() {
self.example_tree_state.select(Some(0)); self.example_tree_state.select(Some(0));
@ -271,13 +251,9 @@ impl App {
fn load_example_tree(&self, dir: &PathBuf) -> Result<Vec<ExampleTreeNode>> { fn load_example_tree(&self, dir: &PathBuf) -> Result<Vec<ExampleTreeNode>> {
let mut nodes = Vec::new(); let mut nodes = Vec::new();
log::debug!("Loading directory: {:?}", dir);
let mut entries: Vec<_> = fs::read_dir(dir)? let mut entries: Vec<_> = fs::read_dir(dir)?
.collect::<Result<Vec<_>, _>>()?; .collect::<Result<Vec<_>, _>>()?;
log::debug!("Found {} entries in {:?}", entries.len(), dir);
// Sort entries: directories first, then files, both alphabetically // Sort entries: directories first, then files, both alphabetically
entries.sort_by(|a, b| { entries.sort_by(|a, b| {
let a_is_dir = a.path().is_dir(); let a_is_dir = a.path().is_dir();
@ -295,17 +271,14 @@ impl App {
let name = entry.file_name().to_string_lossy().to_string(); let name = entry.file_name().to_string_lossy().to_string();
if path.is_dir() { if path.is_dir() {
log::debug!("Loading folder: {}", name);
let children = self.load_example_tree(&path)?; let children = self.load_example_tree(&path)?;
log::debug!("Folder '{}' has {} children", name, children.len());
nodes.push(ExampleTreeNode::Folder { nodes.push(ExampleTreeNode::Folder {
name, name,
path, path,
children, children,
expanded: true, // Expand folders by default to show hierarchy expanded: false, // Folders collapsed by default
}); });
} else if path.extension().map_or(false, |ext| ext == "rhai") { } else if path.extension().map_or(false, |ext| ext == "rhai") {
log::debug!("Loading file: {}", name);
nodes.push(ExampleTreeNode::File { nodes.push(ExampleTreeNode::File {
name: path.file_stem() name: path.file_stem()
.and_then(|s| s.to_str()) .and_then(|s| s.to_str())
@ -355,19 +328,15 @@ impl App {
fn rebuild_tree_items(&mut self) { fn rebuild_tree_items(&mut self) {
self.example_tree_items.clear(); self.example_tree_items.clear();
log::info!("Rebuilding tree items from {} root nodes", self.example_tree.len());
let mut index = 0; let mut index = 0;
let tree_clone = self.example_tree.clone(); let tree_clone = self.example_tree.clone();
for node in &tree_clone { for node in &tree_clone {
log::info!("Processing root node: {:?}", node.name());
self.add_tree_items_recursive(node, 0, &mut index); self.add_tree_items_recursive(node, 0, &mut index);
} }
log::info!("Final tree items count: {}", self.example_tree_items.len());
} }
fn add_tree_items_recursive(&mut self, node: &ExampleTreeNode, depth: usize, index: &mut usize) { fn add_tree_items_recursive(&mut self, node: &ExampleTreeNode, depth: usize, index: &mut usize) {
// Always add the current node to the flattened list // Always add the current node to the flattened list
log::debug!("Adding tree item: {} at depth {}", node.name(), depth);
self.example_tree_items.push(ExampleTreeItem { self.example_tree_items.push(ExampleTreeItem {
node: node.clone(), node: node.clone(),
depth, depth,
@ -377,7 +346,6 @@ impl App {
// For folders, add children only if the folder is expanded // For folders, add children only if the folder is expanded
if let ExampleTreeNode::Folder { children, expanded, .. } = node { if let ExampleTreeNode::Folder { children, expanded, .. } = node {
log::debug!("Folder '{}' has {} children, expanded: {}", node.name(), children.len(), expanded);
if *expanded { if *expanded {
for child in children { for child in children {
self.add_tree_items_recursive(child, depth + 1, index); self.add_tree_items_recursive(child, depth + 1, index);