обновление
This commit is contained in:
56
src/ui.rs
56
src/ui.rs
@@ -149,14 +149,20 @@ fn draw_right_panel(f: &mut Frame, app: &mut App, area: Rect) {
|
||||
} else {
|
||||
Style::default()
|
||||
};
|
||||
|
||||
let left = format!(" {}{}{}", marker, num, title);
|
||||
let inner_width = area.width.saturating_sub(4) as usize;
|
||||
|
||||
let left_len = left.chars().count();
|
||||
let dur_len = dur.chars().count();
|
||||
let pad = inner_width
|
||||
.saturating_sub(left_len + dur_len)
|
||||
.max(1);
|
||||
|
||||
ListItem::new(Line::from(vec![
|
||||
Span::raw(" "),
|
||||
Span::raw(marker),
|
||||
Span::styled(format!("{}{}", num, title), style),
|
||||
Span::raw(" "),
|
||||
// цвет таймера
|
||||
Span::styled(dur, Style::default().fg(Color::DarkGray)),
|
||||
Span::styled(left, style),
|
||||
Span::raw(" ".repeat(pad)),
|
||||
Span::styled(dur, style),
|
||||
]))
|
||||
}
|
||||
})
|
||||
@@ -247,13 +253,13 @@ fn draw_equalizer(f: &mut Frame, app: &App, area: Rect) {
|
||||
}
|
||||
|
||||
let bars: Vec<Bar> = display
|
||||
.iter()
|
||||
.map(|&v| {
|
||||
Bar::default()
|
||||
.value((v * 100.0) as u64)
|
||||
.style(Style::default().fg(Color::Rgb(100, 149, 237)))
|
||||
})
|
||||
.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))
|
||||
@@ -282,11 +288,13 @@ fn draw_status(f: &mut Frame, app: &App, area: Rect) {
|
||||
])
|
||||
.split(area);
|
||||
|
||||
let (status_text, status_title) = if app.input_mode == InputMode::Search {
|
||||
(format!("> {}", app.search_buffer), " Поиск ")
|
||||
} else {
|
||||
let prefix = if app.player.is_paused() { "|| " } else { " " };
|
||||
(format!("{}{}", prefix, app.status), " Статус ")
|
||||
let (status_text, status_title) = match app.input_mode {
|
||||
InputMode::Search => (format!("> {}", app.search_buffer), " Поиск "),
|
||||
InputMode::Command => (format!(":{}", app.command_buffer), " Команда "),
|
||||
InputMode::Normal => {
|
||||
let prefix = if app.player.is_paused() { "|| " } else { " " };
|
||||
(format!("{}{}", prefix, app.status), " Статус ")
|
||||
}
|
||||
};
|
||||
|
||||
let status = Paragraph::new(status_text)
|
||||
@@ -327,8 +335,8 @@ fn draw_status(f: &mut Frame, app: &App, area: Rect) {
|
||||
}
|
||||
|
||||
fn draw_help(f: &mut Frame, screen: Rect) {
|
||||
let width = 60u16.min(screen.width.saturating_sub(4));
|
||||
let height = 34u16.min(screen.height.saturating_sub(4));
|
||||
let width = 62u16.min(screen.width.saturating_sub(4));
|
||||
let height = 40u16.min(screen.height.saturating_sub(4));
|
||||
|
||||
let x = (screen.width.saturating_sub(width)) / 2;
|
||||
let y = (screen.height.saturating_sub(height)) / 2;
|
||||
@@ -368,9 +376,17 @@ fn draw_help(f: &mut Frame, screen: Rect) {
|
||||
Line::from(" d / → +5 секунд"),
|
||||
Line::from(" 1..9 перейти к 10%..90% трека"),
|
||||
Line::from(""),
|
||||
Line::from(Span::styled(" Команды", header)),
|
||||
Line::from(" :add <путь> добавить директорию"),
|
||||
Line::from(" :reload пересканировать всё"),
|
||||
Line::from(" :save сохранить библиотеку"),
|
||||
Line::from(" :help эта справка"),
|
||||
Line::from(" :q выход"),
|
||||
Line::from(""),
|
||||
Line::from(Span::styled(" Звук и прочее", header)),
|
||||
Line::from(" + / - громкость"),
|
||||
Line::from(" / поиск"),
|
||||
Line::from(" Del удалить из списка"),
|
||||
Line::from(" t сортировка: артист → альбом → файл"),
|
||||
Line::from(" F1 эта справка"),
|
||||
Line::from(" q / Esc выход"),
|
||||
|
||||
Reference in New Issue
Block a user