feat(tui): results across the top, with panes you can hide, zoom and Tab through

The results pane now has the whole width, where a long file name needs it,
and Searches, Downloads and Info share the row underneath. Tab and Shift-Tab
walk the panes, z zooms the focused one to the window, w hides it so the
others widen, and its number brings it back. Every list takes the same
navigation keys, the shortcuts bar wraps instead of cutting keys off, and ?
lists every key by pane, scrolling on a short terminal.

Follows up on #55.
This commit is contained in:
Michel de Graaf
2026-09-07 07:49:32 +00:00
parent c91b97de7c
commit da8ab45303
15 changed files with 1209 additions and 232 deletions
+7 -3
View File
@@ -43,10 +43,12 @@ pub fn render_searches_pane(
} else {
search.results.len()
};
// Nothing yet from a search still out: the status column already
// says it is looking.
let results_text = if results_count == 0
&& search.status == SearchStatus::Active
{
"Searching...".to_string()
"…".to_string()
} else {
format!("{results_count}")
};
@@ -59,10 +61,12 @@ pub fn render_searches_pane(
})
.collect();
// The pane shares a row with two others, so the fixed columns are as
// narrow as their widest word: the query gets the rest.
let widths = [
ratatui::layout::Constraint::Length(15),
ratatui::layout::Constraint::Length(6),
ratatui::layout::Constraint::Fill(1),
ratatui::layout::Constraint::Length(10),
ratatui::layout::Constraint::Length(7),
];
let table = Table::new(rows, widths)