Reworked MODE switch
This commit is contained in:
+3
-3
@@ -383,15 +383,15 @@ fn draw_grid(frame: &mut Frame, area: Rect, state: &AppState) {
|
||||
let global = &state.global;
|
||||
let title = if global.total > 0 {
|
||||
format!(
|
||||
" Library — {} artists · {} ",
|
||||
" Library — {} artists · Mode: {} ",
|
||||
global.total,
|
||||
global.filters.source_mode.label()
|
||||
)
|
||||
} else {
|
||||
format!(" Library · {} ", global.filters.source_mode.label())
|
||||
format!(" Library · Mode: {} ", global.filters.source_mode.label())
|
||||
};
|
||||
let mut title_spans = vec![Span::styled(title, theme::tab_active_for(state))];
|
||||
if global.filters.is_active() {
|
||||
if global.filters.hide_featured_only {
|
||||
title_spans.push(Span::raw(" "));
|
||||
title_spans.push(Span::styled(" FILTERED ", theme::tab_active_for(state)));
|
||||
}
|
||||
|
||||
+3
-2
@@ -247,8 +247,9 @@ fn draw_queue(frame: &mut Frame, area: Rect, state: &AppState) {
|
||||
let player = &state.player;
|
||||
let block = Block::bordered()
|
||||
.title(format!(
|
||||
" Queue — {} tracks · enter: play · d: remove · shift-v: select · :clear ",
|
||||
player.queue.len()
|
||||
" Queue — {} tracks · Mode: {} · enter: play · d: remove · shift-v: select · :clear ",
|
||||
player.queue.len(),
|
||||
state.global.filters.source_mode.label()
|
||||
))
|
||||
.title_style(theme::header_for(state))
|
||||
.border_style(theme::border_for(state));
|
||||
|
||||
+18
-3
@@ -38,7 +38,15 @@ fn centered_line(frame: &mut Frame, area: Rect, line: Line) {
|
||||
}
|
||||
|
||||
fn draw_list(frame: &mut Frame, area: Rect, state: &AppState) {
|
||||
let inner = bordered(frame, area, state, " Playlists ".to_string());
|
||||
let inner = bordered(
|
||||
frame,
|
||||
area,
|
||||
state,
|
||||
format!(
|
||||
" Playlists · Mode: {} ",
|
||||
state.global.filters.source_mode.label()
|
||||
),
|
||||
);
|
||||
let selected = state.playlists.selected;
|
||||
|
||||
let list = match &state.playlists.list {
|
||||
@@ -97,8 +105,15 @@ fn draw_list(frame: &mut Frame, area: Rect, state: &AppState) {
|
||||
fn draw_opened(frame: &mut Frame, area: Rect, state: &AppState, id: i64, cursor: usize) {
|
||||
let loadable = state.playlist_views.get(&id);
|
||||
let title = match loadable {
|
||||
Some(Loadable::Ready(detail)) => format!(" Playlists ▸ {} ", detail.title),
|
||||
_ => " Playlists ▸ … ".to_string(),
|
||||
Some(Loadable::Ready(detail)) => format!(
|
||||
" Playlists ▸ {} · Mode: {} ",
|
||||
detail.title,
|
||||
state.global.filters.source_mode.label()
|
||||
),
|
||||
_ => format!(
|
||||
" Playlists ▸ … · Mode: {} ",
|
||||
state.global.filters.source_mode.label()
|
||||
),
|
||||
};
|
||||
let inner = bordered(frame, area, state, title);
|
||||
|
||||
|
||||
+2
-14
@@ -598,7 +598,7 @@ fn clip_cells(text: &str, max_width: usize) -> String {
|
||||
}
|
||||
|
||||
fn draw_library_filters(frame: &mut Frame, state: &AppState, cursor: usize) {
|
||||
let area = centered(frame.area(), 54, 9);
|
||||
let area = centered(frame.area(), 44, 6);
|
||||
let block = Block::bordered()
|
||||
.title(" Library filters ")
|
||||
.title_style(theme::header_for(state))
|
||||
@@ -608,7 +608,7 @@ fn draw_library_filters(frame: &mut Frame, state: &AppState, cursor: usize) {
|
||||
frame.render_widget(block, area);
|
||||
|
||||
let [list_area, _, footer] = Layout::vertical([
|
||||
Constraint::Length(4),
|
||||
Constraint::Length(1),
|
||||
Constraint::Length(1),
|
||||
Constraint::Length(1),
|
||||
])
|
||||
@@ -624,18 +624,6 @@ fn draw_library_filters(frame: &mut Frame, state: &AppState, cursor: usize) {
|
||||
Span::styled(format!("{checked} "), theme::accent_for(state)),
|
||||
Span::raw("Hide featured only"),
|
||||
]));
|
||||
for mode in crate::config::settings::LibrarySourceMode::ALL {
|
||||
let marker = if state.global.filters.source_mode == mode {
|
||||
"(*)"
|
||||
} else {
|
||||
"( )"
|
||||
};
|
||||
rows.push(Line::from(vec![
|
||||
Span::styled(format!("{marker} "), theme::accent_for(state)),
|
||||
Span::raw(mode.label()),
|
||||
Span::styled(format!(" {}", mode.description()), theme::dim()),
|
||||
]));
|
||||
}
|
||||
for (index, line) in rows.into_iter().enumerate() {
|
||||
let row = Rect {
|
||||
y: list_area.y + index as u16,
|
||||
|
||||
Reference in New Issue
Block a user