mirror of
https://github.com/forkless/NotAlterra.git
synced 2026-08-16 08:36:37 +02:00
Fix column header alignment and blank line separator
This commit is contained in:
+13
-12
@@ -420,7 +420,7 @@ fn action_recover_bak<B: Backend>(terminal: &mut Terminal<B>, app: &mut App) ->
|
||||
let mut labelled: std::collections::HashSet<String> = std::collections::HashSet::new();
|
||||
let header = format!(" {:<8} {:<16} {:<14} {:<8} {:>6} {}",
|
||||
"Slot", "Description", "Game Type", "Playtime", "Size", "Date");
|
||||
let mut items: Vec<String> = vec![header];
|
||||
let mut items: Vec<String> = vec![header, String::new()];
|
||||
items.extend(bak_summaries
|
||||
.iter()
|
||||
.map(|s| {
|
||||
@@ -459,12 +459,12 @@ fn action_recover_bak<B: Backend>(terminal: &mut Terminal<B>, app: &mut App) ->
|
||||
.map(|_| "Restore this backup to its canonical .sav file".to_string())
|
||||
.collect();
|
||||
let desc_refs: Vec<&str> = descs.iter().map(|s| s.as_str()).collect();
|
||||
let mut state = ListState::default().with_selected(Some(1)); // skip header
|
||||
let mut state = ListState::default().with_selected(Some(2)); // skip header + blank
|
||||
|
||||
loop {
|
||||
let selected_info = state
|
||||
.selected()
|
||||
.and_then(|i| filenames.get(i.saturating_sub(1)))
|
||||
.and_then(|i| filenames.get(i.saturating_sub(2)))
|
||||
.map(|s| s.as_str());
|
||||
|
||||
terminal.draw(|f| {
|
||||
@@ -488,9 +488,9 @@ fn action_recover_bak<B: Backend>(terminal: &mut Terminal<B>, app: &mut App) ->
|
||||
state.select(Some((i + 1).min(items.len().saturating_sub(1))));
|
||||
}
|
||||
KeyCode::Enter => {
|
||||
let sel = state.selected().unwrap_or(1);
|
||||
if sel == 0 { continue; } // header row
|
||||
let idx = sel.saturating_sub(1);
|
||||
let sel = state.selected().unwrap_or(2);
|
||||
if sel < 2 { continue; } // header + blank
|
||||
let idx = sel.saturating_sub(2);
|
||||
let chosen = &bak_summaries[idx];
|
||||
let target = derive_target_sav(&chosen.filename);
|
||||
let target_path = save_folder.join(&target);
|
||||
@@ -915,16 +915,17 @@ fn action_inspect_saves<B: Backend>(terminal: &mut Terminal<B>, app: &mut App) -
|
||||
let sz = e.metadata().map(|m| m.len()).unwrap_or(0);
|
||||
format!(" {:<8} {:<30} {:>7}", label, name, format_size(sz))
|
||||
}).collect();
|
||||
let header = format!(" {:<8} {:<30} {:>7}", "Slot", "Filename", "Size");
|
||||
let header = format!(" {:<8} {:<30} {:>7}", "Slot", "Filename", "Size");
|
||||
items.insert(0, header);
|
||||
items.insert(1, String::new());
|
||||
let item_refs: Vec<&str> = items.iter().map(|s| s.as_str()).collect();
|
||||
let filenames: Vec<String> = files.iter().map(|e| e.file_name().to_string_lossy().to_string()).collect();
|
||||
let descs = vec!["Press Enter to view full GVAS metadata"; files.len()];
|
||||
let desc_refs: Vec<&str> = descs.iter().map(|s| *s).collect();
|
||||
let mut state = ListState::default().with_selected(Some(1)); // skip header
|
||||
let mut state = ListState::default().with_selected(Some(2)); // skip header + blank
|
||||
|
||||
loop {
|
||||
let selected_info = state.selected().and_then(|i| filenames.get(i.saturating_sub(1))).map(|s| s.as_str());
|
||||
let selected_info = state.selected().and_then(|i| filenames.get(i.saturating_sub(2))).map(|s| s.as_str());
|
||||
terminal.draw(|f| {
|
||||
tui::draw_picker_with_info(f, &app.tui_state, &item_refs, &desc_refs, &mut state, selected_info);
|
||||
})?;
|
||||
@@ -933,9 +934,9 @@ fn action_inspect_saves<B: Backend>(terminal: &mut Terminal<B>, app: &mut App) -
|
||||
KeyCode::Up => { let i = state.selected().unwrap_or(0); state.select(Some(i.saturating_sub(1))); }
|
||||
KeyCode::Down => { let i = state.selected().unwrap_or(0); state.select(Some((i+1).min(items.len().saturating_sub(1)))); }
|
||||
KeyCode::Enter => {
|
||||
let sel = state.selected().unwrap_or(1);
|
||||
if sel == 0 { continue; }
|
||||
let idx = sel.saturating_sub(1);
|
||||
let sel = state.selected().unwrap_or(2);
|
||||
if sel < 2 { continue; }
|
||||
let idx = sel.saturating_sub(2);
|
||||
let path = files[idx].path();
|
||||
match crate::gvas::extract_full_metadata(&path) {
|
||||
Ok(meta) => {
|
||||
|
||||
Reference in New Issue
Block a user