use constants for listview IDs and search edit

This commit is contained in:
Henrik Friedrichsen
2019-03-26 21:28:25 +01:00
parent 5c6aa593d8
commit 0e3c9fc504
4 changed files with 21 additions and 18 deletions

View File

@@ -8,6 +8,7 @@ use playlists::{Playlist, Playlists};
use queue::{Queue, RepeatSetting}; use queue::{Queue, RepeatSetting};
use spotify::Spotify; use spotify::Spotify;
use track::Track; use track::Track;
use ui;
use ui::layout::Layout; use ui::layout::Layout;
use ui::listview::ListView; use ui::listview::ListView;
use ui::search::SearchView; use ui::search::SearchView;
@@ -156,13 +157,13 @@ impl CommandManager {
if dir == "up" || dir == "down" { if dir == "up" || dir == "down" {
let dir = if dir == "up" { -1 } else { 1 }; let dir = if dir == "up" { -1 } else { 1 };
s.call_on_id("queue_list", |v: &mut ListView<Track>| { s.call_on_id(ui::queue::LIST_ID, |v: &mut ListView<Track>| {
v.move_focus(dir * amount); v.move_focus(dir * amount);
}); });
s.call_on_id("list", |v: &mut ListView<Track>| { s.call_on_id(ui::search::LIST_ID, |v: &mut ListView<Track>| {
v.move_focus(dir * amount); v.move_focus(dir * amount);
}); });
s.call_on_id("list", |v: &mut ListView<Playlist>| { s.call_on_id(ui::playlists::LIST_ID, |v: &mut ListView<Playlist>| {
v.move_focus(dir * amount); v.move_focus(dir * amount);
}); });
s.on_event(Event::Refresh); s.on_event(Event::Refresh);
@@ -196,7 +197,7 @@ impl CommandManager {
{ {
let queue = queue.clone(); let queue = queue.clone();
s.call_on_id("list", |v: &mut ListView<Track>| { s.call_on_id(ui::search::LIST_ID, |v: &mut ListView<Track>| {
v.with_selected(Box::new(move |t| { v.with_selected(Box::new(move |t| {
queue.append(t); queue.append(t);
})); }));
@@ -205,7 +206,7 @@ impl CommandManager {
{ {
let queue = queue.clone(); let queue = queue.clone();
s.call_on_id("list", |v: &mut ListView<Playlist>| { s.call_on_id(ui::playlists::LIST_ID, |v: &mut ListView<Playlist>| {
v.with_selected(Box::new(move |pl| { v.with_selected(Box::new(move |pl| {
for track in pl.tracks.iter() { for track in pl.tracks.iter() {
queue.append(track); queue.append(track);
@@ -236,14 +237,14 @@ impl CommandManager {
{ {
let queue = queue.clone(); let queue = queue.clone();
s.call_on_id("queue_list", |v: &mut ListView<Track>| { s.call_on_id(ui::queue::LIST_ID, |v: &mut ListView<Track>| {
queue.play(v.get_selected_index(), true); queue.play(v.get_selected_index(), true);
}); });
} }
{ {
let queue = queue.clone(); let queue = queue.clone();
s.call_on_id("list", |v: &mut ListView<Track>| { s.call_on_id(ui::search::LIST_ID, |v: &mut ListView<Track>| {
v.with_selected(Box::new(move |t| { v.with_selected(Box::new(move |t| {
let index = queue.append_next(vec![t]); let index = queue.append_next(vec![t]);
queue.play(index, true); queue.play(index, true);
@@ -253,7 +254,7 @@ impl CommandManager {
{ {
let queue = queue.clone(); let queue = queue.clone();
s.call_on_id("list", |v: &mut ListView<Playlist>| { s.call_on_id(ui::playlists::LIST_ID, |v: &mut ListView<Playlist>| {
v.with_selected(Box::new(move |pl| { v.with_selected(Box::new(move |pl| {
let index = queue.append_next(pl.tracks.iter().collect()); let index = queue.append_next(pl.tracks.iter().collect());
queue.play(index, true); queue.play(index, true);
@@ -282,7 +283,7 @@ impl CommandManager {
{ {
let queue = queue.clone(); let queue = queue.clone();
s.call_on_id("queue_list", |v: &mut ListView<Track>| { s.call_on_id(ui::queue::LIST_ID, |v: &mut ListView<Track>| {
queue.remove(v.get_selected_index()); queue.remove(v.get_selected_index());
}); });
} }

View File

@@ -12,9 +12,10 @@ pub struct PlaylistView {
list: IdView<ListView<Playlist>>, list: IdView<ListView<Playlist>>,
} }
pub const LIST_ID: &str = "playlist_list";
impl PlaylistView { impl PlaylistView {
pub fn new(playlists: &Playlists, queue: Arc<Queue>) -> PlaylistView { pub fn new(playlists: &Playlists, queue: Arc<Queue>) -> PlaylistView {
let list = ListView::new(playlists.store.clone(), queue).with_id("list"); let list = ListView::new(playlists.store.clone(), queue).with_id(LIST_ID);
PlaylistView { list } PlaylistView { list }
} }

View File

@@ -17,18 +17,17 @@ pub struct QueueView {
playlists: Arc<Playlists>, playlists: Arc<Playlists>,
} }
pub const LIST_ID: &str = "queue_list";
impl QueueView { impl QueueView {
pub fn new(queue: Arc<Queue>, playlists: Arc<Playlists>) -> QueueView { pub fn new(queue: Arc<Queue>, playlists: Arc<Playlists>) -> QueueView {
let list = ListView::new(queue.queue.clone(), queue.clone()).with_id("queue_list"); let list = ListView::new(queue.queue.clone(), queue.clone()).with_id(LIST_ID);
QueueView { list, playlists } QueueView { list, playlists }
} }
fn save_dialog_cb(s: &mut Cursive, playlists: Arc<Playlists>, id: Option<String>) { fn save_dialog_cb(s: &mut Cursive, playlists: Arc<Playlists>, id: Option<String>) {
let tracks = s let tracks = s
.call_on_id("queue_list", |view: &mut ListView<_>| { .call_on_id(LIST_ID, |view: &mut ListView<_>| view.content().clone())
view.content().clone()
})
.unwrap(); .unwrap();
match id { match id {
Some(id) => { Some(id) => {

View File

@@ -21,6 +21,8 @@ pub struct SearchView {
edit_focused: bool, edit_focused: bool,
} }
pub const LIST_ID: &str = "search_list";
pub const EDIT_ID: &str = "search_edit";
impl SearchView { impl SearchView {
pub fn new(spotify: Arc<Spotify>, queue: Arc<Queue>) -> SearchView { pub fn new(spotify: Arc<Spotify>, queue: Arc<Queue>) -> SearchView {
let results = Arc::new(RwLock::new(Vec::new())); let results = Arc::new(RwLock::new(Vec::new()));
@@ -30,12 +32,12 @@ impl SearchView {
if !input.is_empty() { if !input.is_empty() {
s.call_on_id("search", |v: &mut SearchView| { s.call_on_id("search", |v: &mut SearchView| {
v.run_search(input, spotify.clone()); v.run_search(input, spotify.clone());
v.focus_view(&Selector::Id("list")).unwrap(); v.focus_view(&Selector::Id(LIST_ID)).unwrap();
}); });
} }
}) })
.with_id("search_edit"); .with_id(EDIT_ID);
let list = ListView::new(results.clone(), queue).with_id("list"); let list = ListView::new(results.clone(), queue).with_id(LIST_ID);
SearchView { SearchView {
results, results,
@@ -49,7 +51,7 @@ impl SearchView {
let query = query.into(); let query = query.into();
let q = query.clone(); let q = query.clone();
self.edit self.edit
.call_on(&Selector::Id("search_edit"), |v: &mut EditView| { .call_on(&Selector::Id(EDIT_ID), |v: &mut EditView| {
v.set_content(q); v.set_content(q);
}); });