обновление
This commit is contained in:
@@ -91,7 +91,7 @@ impl App {
|
||||
|
||||
fn default_status(&self) -> String {
|
||||
match self.playing_index.and_then(|i| self.library.track(i)) {
|
||||
Some(t) => format!("▶ {} — {}", t.artist, t.title),
|
||||
Some(t) => format!("{} — {}", t.artist, t.title),
|
||||
None => "F1 — помощь".into(),
|
||||
}
|
||||
}
|
||||
@@ -328,7 +328,7 @@ impl App {
|
||||
match self.player.play(&track.path, None) {
|
||||
Ok(_) => {
|
||||
self.playing_index = Some(index_in_library);
|
||||
self.set_status(format!("▶ {} — {}", track.artist, track.title));
|
||||
self.set_status(format!("{} — {}", track.artist, track.title));
|
||||
}
|
||||
Err(e) => self.set_status(format!("Ошибка: {}", e)),
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@ use crate::track::Track;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub enum RightRow {
|
||||
/// Заголовок группы: в режиме ByArtist — название альбома,
|
||||
/// в режиме ByAlbum — имя исполнителя.
|
||||
/// Заголовок группы: в режиме ByArtist - название альбома,
|
||||
/// в режиме ByAlbum - имя исполнителя.
|
||||
AlbumHeader { name: String },
|
||||
Track { index_in_library: usize },
|
||||
}
|
||||
|
||||
43
src/ui.rs
43
src/ui.rs
@@ -155,6 +155,7 @@ fn draw_right_panel(f: &mut Frame, app: &mut App, area: Rect) {
|
||||
Span::raw(marker),
|
||||
Span::styled(format!("{}{}", num, title), style),
|
||||
Span::raw(" "),
|
||||
// цвет таймера
|
||||
Span::styled(dur, Style::default().fg(Color::DarkGray)),
|
||||
]))
|
||||
}
|
||||
@@ -171,20 +172,20 @@ fn draw_right_panel(f: &mut Frame, app: &mut App, area: Rect) {
|
||||
let title = match app.library.sort_mode {
|
||||
SortMode::ByArtist => {
|
||||
if app.library.filter.is_empty() {
|
||||
format!(" Альбомы и треки — {} ", selected_name)
|
||||
format!(" Альбомы и треки - {} ", selected_name)
|
||||
} else {
|
||||
format!(
|
||||
" Альбомы и треки — {} [{}] ",
|
||||
" Альбомы и треки - {} [{}] ",
|
||||
selected_name, app.library.filter
|
||||
)
|
||||
}
|
||||
}
|
||||
SortMode::ByAlbum => {
|
||||
if app.library.filter.is_empty() {
|
||||
format!(" Исполнители и треки — {} ", selected_name)
|
||||
format!(" Исполнители и треки - {} ", selected_name)
|
||||
} else {
|
||||
format!(
|
||||
" Исполнители и треки — {} [{}] ",
|
||||
" Исполнители и треки - {} [{}] ",
|
||||
selected_name, app.library.filter
|
||||
)
|
||||
}
|
||||
@@ -246,27 +247,13 @@ fn draw_equalizer(f: &mut Frame, app: &App, area: Rect) {
|
||||
}
|
||||
|
||||
let bars: Vec<Bar> = display
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(i, &v)| {
|
||||
let ratio = i as f64 / (num_bars - 1).max(1) as f64;
|
||||
let color = if ratio < 0.2 {
|
||||
Color::Rgb(0, 100, 255)
|
||||
} else if ratio < 0.4 {
|
||||
Color::Rgb(0, 200, 255)
|
||||
} else if ratio < 0.6 {
|
||||
Color::Rgb(0, 255, 100)
|
||||
} else if ratio < 0.8 {
|
||||
Color::Rgb(255, 200, 0)
|
||||
} else {
|
||||
Color::Rgb(255, 50, 50)
|
||||
};
|
||||
|
||||
Bar::default()
|
||||
.value((v * 100.0) as u64)
|
||||
.style(Style::default().fg(color))
|
||||
})
|
||||
.collect();
|
||||
.iter()
|
||||
.map(|&v| {
|
||||
Bar::default()
|
||||
.value((v * 100.0) as u64)
|
||||
.style(Style::default().fg(Color::Rgb(100, 149, 237)))
|
||||
})
|
||||
.collect();
|
||||
|
||||
let chart = BarChart::default()
|
||||
.data(BarGroup::default().bars(&bars))
|
||||
@@ -298,7 +285,7 @@ fn draw_status(f: &mut Frame, app: &App, area: Rect) {
|
||||
let (status_text, status_title) = if app.input_mode == InputMode::Search {
|
||||
(format!("> {}", app.search_buffer), " Поиск ")
|
||||
} else {
|
||||
let prefix = if app.player.is_paused() { "⏸ " } else { "" };
|
||||
let prefix = if app.player.is_paused() { "|| " } else { " " };
|
||||
(format!("{}{}", prefix, app.status), " Статус ")
|
||||
};
|
||||
|
||||
@@ -332,7 +319,7 @@ fn draw_status(f: &mut Frame, app: &App, area: Rect) {
|
||||
.block(Block::default().borders(Borders::ALL).title(" Mode "));
|
||||
f.render_widget(mode, inner[2]);
|
||||
|
||||
let vol_text = format!("vol: {}%", (app.player.volume() * 100.0) as u32);
|
||||
let vol_text = format!("Vol: {}%", (app.player.volume() * 100.0) as u32);
|
||||
let vol = Paragraph::new(vol_text)
|
||||
.alignment(Alignment::Center)
|
||||
.block(Block::default().borders(Borders::ALL).title(" "));
|
||||
@@ -389,7 +376,7 @@ fn draw_help(f: &mut Frame, screen: Rect) {
|
||||
Line::from(" q / Esc выход"),
|
||||
Line::from(""),
|
||||
Line::from(Span::styled(
|
||||
" F1 или Esc — закрыть ",
|
||||
" F1 или Esc - закрыть ",
|
||||
Style::default().fg(Color::DarkGray),
|
||||
)),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user