From 5c3110c7843773e617c224e16f150b25884d3fb6 Mon Sep 17 00:00:00 2001 From: salmonik Date: Fri, 8 May 2026 01:20:43 +0200 Subject: Pad queue display numbers with leading zeros display_string now takes a total parameter to compute the zero-padding width. Queue positions are formatted as 01, 02, ..., 10 instead of 1, 2, ..., 10, keeping columns aligned. --- src/daemon.rs | 4 ++-- src/queue.rs | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/daemon.rs b/src/daemon.rs index 00bf35f..e88669a 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -254,7 +254,7 @@ fn process_command( if audio.is_playing() { if let Some(track_path) = audio.current_track() { let track = Track::from_path(track_path); - let track_str = track.display_string(0); + let track_str = track.display_string(0, 1); format!("Playing\nTrack: {}\n", track_str) } else { "Playing\n".to_string() @@ -511,7 +511,7 @@ fn process_command( let is_playing = audio.is_playing(); for (display_idx, &track_idx) in indices.iter().enumerate() { if let Some(track) = q.track_at(track_idx) { - let track_str = track.display_string(display_idx); + let track_str = track.display_string(display_idx, q.len()); if track_idx == playing_track_idx && is_playing { output.push_str(&format!("> {} (playing)\n", track_str)); } else { diff --git a/src/queue.rs b/src/queue.rs index dca8e3d..9e8e1af 100644 --- a/src/queue.rs +++ b/src/queue.rs @@ -96,7 +96,7 @@ impl Track { } } - pub fn display_string(&self, index: usize) -> String { + pub fn display_string(&self, index: usize, total: usize) -> String { let album_artist = self .artist .clone() @@ -109,11 +109,12 @@ impl Track { .unwrap_or("Unknown") .to_string() }); + let width = total.to_string().len(); if album_artist.is_empty() { - format!("{}. {}", index + 1, title) + format!("{:0width$}. {}", index + 1, title) } else { - format!("{}. {} - {}", index + 1, album_artist, title) + format!("{:0width$}. {} - {}", index + 1, album_artist, title) } } } -- cgit v1.2.3