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 spotify::Spotify;
use track::Track;
use ui;
use ui::layout::Layout;
use ui::listview::ListView;
use ui::search::SearchView;
@@ -156,13 +157,13 @@ impl CommandManager {
if dir == "up" || dir == "down" {
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);
});
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);
});
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);
});
s.on_event(Event::Refresh);
@@ -196,7 +197,7 @@ impl CommandManager {
{
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| {
queue.append(t);
}));
@@ -205,7 +206,7 @@ impl CommandManager {
{
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| {
for track in pl.tracks.iter() {
queue.append(track);
@@ -236,14 +237,14 @@ impl CommandManager {
{
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);
});
}
{
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| {
let index = queue.append_next(vec![t]);
queue.play(index, true);
@@ -253,7 +254,7 @@ impl CommandManager {
{
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| {
let index = queue.append_next(pl.tracks.iter().collect());
queue.play(index, true);
@@ -282,7 +283,7 @@ impl CommandManager {
{
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());
});
}

View File

@@ -12,9 +12,10 @@ pub struct PlaylistView {
list: IdView<ListView<Playlist>>,
}
pub const LIST_ID: &str = "playlist_list";
impl 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 }
}

View File

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

View File

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