refactorial spring cleaning (cargo fmt + clippy)
This commit is contained in:
@@ -53,7 +53,7 @@ impl Layout {
|
||||
screenchange: true,
|
||||
last_size: Vec2::new(0, 0),
|
||||
ev: ev.clone(),
|
||||
theme: theme,
|
||||
theme,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ impl Layout {
|
||||
|
||||
pub fn set_view<S: Into<String>>(&mut self, id: S) {
|
||||
let s = id.into();
|
||||
let title = &self.views.get(&s).unwrap().title;
|
||||
let title = &self.views[&s].title;
|
||||
self.title = title.clone();
|
||||
self.focus = Some(s);
|
||||
self.cmdline_focus = false;
|
||||
@@ -132,7 +132,7 @@ impl View for Layout {
|
||||
|
||||
// screen content
|
||||
if let Some(ref id) = self.focus {
|
||||
let screen = self.views.get(id).unwrap();
|
||||
let screen = &self.views[id];
|
||||
let printer = &printer
|
||||
.offset((0, 1))
|
||||
.cropped((printer.size.x, printer.size.y - 3 - cmdline_height))
|
||||
@@ -168,10 +168,7 @@ impl View for Layout {
|
||||
}
|
||||
|
||||
fn on_event(&mut self, event: Event) -> EventResult {
|
||||
if let Event::Mouse {
|
||||
position,
|
||||
..
|
||||
} = event {
|
||||
if let Event::Mouse { position, .. } = event {
|
||||
let error = self.get_error();
|
||||
|
||||
let cmdline_visible = self.cmdline.get_content().len() > 0;
|
||||
@@ -186,7 +183,9 @@ impl View for Layout {
|
||||
screen.view.on_event(event.clone());
|
||||
}
|
||||
} else if position.y < self.last_size.y - cmdline_height {
|
||||
self.statusbar.on_event(event.relativized(Vec2::new(0, self.last_size.y - 2 - cmdline_height)));
|
||||
self.statusbar.on_event(
|
||||
event.relativized(Vec2::new(0, self.last_size.y - 2 - cmdline_height)),
|
||||
);
|
||||
}
|
||||
|
||||
return EventResult::Consumed(None);
|
||||
|
||||
@@ -24,12 +24,12 @@ pub struct ListView<I: 'static + ListItem> {
|
||||
impl<I: ListItem> ListView<I> {
|
||||
pub fn new(content: Arc<RwLock<Vec<I>>>, queue: Arc<Queue>) -> Self {
|
||||
Self {
|
||||
content: content,
|
||||
content,
|
||||
last_content_length: 0,
|
||||
selected: 0,
|
||||
last_size: Vec2::new(0, 0),
|
||||
scrollbar: ScrollBase::new(),
|
||||
queue: queue,
|
||||
queue,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,9 +70,10 @@ impl<I: ListItem> View for ListView<I> {
|
||||
let item = &content[i];
|
||||
|
||||
let style = if self.selected == i {
|
||||
let fg = match item.is_playing(self.queue.clone()) {
|
||||
true => *printer.theme.palette.custom("playing").unwrap(),
|
||||
false => PaletteColor::Tertiary.resolve(&printer.theme.palette)
|
||||
let fg = if item.is_playing(self.queue.clone()) {
|
||||
*printer.theme.palette.custom("playing").unwrap()
|
||||
} else {
|
||||
PaletteColor::Tertiary.resolve(&printer.theme.palette)
|
||||
};
|
||||
ColorStyle::new(
|
||||
ColorType::Color(fg),
|
||||
|
||||
@@ -7,7 +7,7 @@ pub struct Modal<T: View> {
|
||||
|
||||
impl<T: View> Modal<T> {
|
||||
pub fn new(inner: T) -> Self {
|
||||
Modal { inner: inner }
|
||||
Modal { inner }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ impl PlaylistView {
|
||||
pub fn new(playlists: &Playlists, queue: Arc<Queue>) -> PlaylistView {
|
||||
let list = ListView::new(playlists.store.clone(), queue).with_id("list");
|
||||
|
||||
PlaylistView { list: list }
|
||||
PlaylistView { list }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,10 +21,7 @@ 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");
|
||||
|
||||
QueueView {
|
||||
list: list,
|
||||
playlists: playlists,
|
||||
}
|
||||
QueueView { list, playlists }
|
||||
}
|
||||
|
||||
fn save_dialog_cb(s: &mut Cursive, playlists: Arc<Playlists>, id: Option<String>) {
|
||||
@@ -61,7 +58,7 @@ impl QueueView {
|
||||
let mut list_select: SelectView<Option<String>> = SelectView::new().autojump();
|
||||
list_select.add_item("[Create new]", None);
|
||||
|
||||
for ref list in playlists.items().iter() {
|
||||
for list in playlists.items().iter() {
|
||||
list_select.add_item(list.meta.name.clone(), Some(list.meta.id.clone()));
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ impl SearchView {
|
||||
|
||||
let searchfield = EditView::new()
|
||||
.on_submit(move |s, input| {
|
||||
if input.len() > 0 {
|
||||
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();
|
||||
@@ -38,9 +38,9 @@ impl SearchView {
|
||||
let list = ListView::new(results.clone(), queue).with_id("list");
|
||||
|
||||
SearchView {
|
||||
results: results,
|
||||
results,
|
||||
edit: searchfield,
|
||||
list: list,
|
||||
list,
|
||||
edit_focused: true,
|
||||
}
|
||||
}
|
||||
@@ -67,9 +67,10 @@ impl SearchView {
|
||||
}
|
||||
|
||||
fn pass_event_focused(&mut self, event: Event) -> EventResult {
|
||||
match self.edit_focused {
|
||||
true => self.edit.on_event(event),
|
||||
false => self.list.on_event(event),
|
||||
if self.edit_focused {
|
||||
self.edit.on_event(event)
|
||||
} else {
|
||||
self.list.on_event(event)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -111,7 +112,7 @@ impl View for SearchView {
|
||||
}
|
||||
|
||||
fn on_event(&mut self, event: Event) -> EventResult {
|
||||
let ret = match event {
|
||||
match event {
|
||||
Event::Key(Key::Tab) => {
|
||||
self.edit_focused = !self.edit_focused;
|
||||
EventResult::Consumed(None)
|
||||
@@ -121,8 +122,6 @@ impl View for SearchView {
|
||||
EventResult::Consumed(None)
|
||||
}
|
||||
_ => self.pass_event_focused(event),
|
||||
};
|
||||
|
||||
ret
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,10 +22,10 @@ pub struct StatusBar {
|
||||
impl StatusBar {
|
||||
pub fn new(queue: Arc<Queue>, spotify: Arc<Spotify>, cfg: &Config) -> StatusBar {
|
||||
StatusBar {
|
||||
queue: queue,
|
||||
spotify: spotify,
|
||||
queue,
|
||||
spotify,
|
||||
last_size: Vec2::new(0, 0),
|
||||
use_nerdfont: cfg.use_nerdfont.unwrap_or(false)
|
||||
use_nerdfont: cfg.use_nerdfont.unwrap_or(false),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -87,13 +87,19 @@ impl View for StatusBar {
|
||||
RepeatSetting::RepeatPlaylist => "[R] ",
|
||||
RepeatSetting::RepeatTrack => "[R1] ",
|
||||
}
|
||||
}.to_string();
|
||||
}
|
||||
.to_string();
|
||||
|
||||
let shuffle = if self.use_nerdfont {
|
||||
if self.queue.get_shuffle() { "\u{f99c} " } else { "" }
|
||||
let shuffle = if self.queue.get_shuffle() {
|
||||
if self.use_nerdfont {
|
||||
"\u{f99c} "
|
||||
} else {
|
||||
"[Z]"
|
||||
}
|
||||
} else {
|
||||
if self.queue.get_shuffle() { "[Z] " } else { "" }
|
||||
}.to_string();
|
||||
""
|
||||
}
|
||||
.to_string();
|
||||
|
||||
if let Some(ref t) = self.queue.get_current() {
|
||||
let elapsed = self.spotify.get_current_progress();
|
||||
@@ -105,7 +111,8 @@ impl View for StatusBar {
|
||||
elapsed.as_secs() % 60
|
||||
);
|
||||
|
||||
let right = repeat + &shuffle + &format!("{} / {} ", formatted_elapsed, t.duration_str());
|
||||
let right =
|
||||
repeat + &shuffle + &format!("{} / {} ", formatted_elapsed, t.duration_str());
|
||||
let offset = HAlign::Right.get_offset(right.width(), printer.size.x);
|
||||
|
||||
printer.with_color(style, |printer| {
|
||||
@@ -115,8 +122,7 @@ impl View for StatusBar {
|
||||
|
||||
printer.with_color(style_bar, |printer| {
|
||||
printer.print((0, 0), &"—".repeat(printer.size.x));
|
||||
let duration_width =
|
||||
(((printer.size.x as u32) * elapsed_ms) / t.duration) as usize;
|
||||
let duration_width = (((printer.size.x as u32) * elapsed_ms) / t.duration) as usize;
|
||||
printer.print((0, 0), &format!("{}{}", "=".repeat(duration_width), ">"));
|
||||
});
|
||||
} else {
|
||||
@@ -145,8 +151,9 @@ impl View for StatusBar {
|
||||
if let Event::Mouse {
|
||||
offset,
|
||||
position,
|
||||
event
|
||||
} = event {
|
||||
event,
|
||||
} = event
|
||||
{
|
||||
let position = position - offset;
|
||||
|
||||
if position.y == 0 {
|
||||
@@ -158,20 +165,17 @@ impl View for StatusBar {
|
||||
self.spotify.seek_relative(500);
|
||||
}
|
||||
|
||||
if event == MouseEvent::Press(MouseButton::Left) ||
|
||||
event == MouseEvent::Hold(MouseButton::Left)
|
||||
if event == MouseEvent::Press(MouseButton::Left)
|
||||
|| event == MouseEvent::Hold(MouseButton::Left)
|
||||
{
|
||||
if let Some(ref t) = self.queue.get_current() {
|
||||
let f: f32 = position.x as f32 / self.last_size.x as f32;
|
||||
let new = t.duration as f32 * f;
|
||||
self.spotify.seek(new as u32);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
if event == MouseEvent::Press(MouseButton::Left) {
|
||||
self.queue.toggleplayback();
|
||||
}
|
||||
} else if event == MouseEvent::Press(MouseButton::Left) {
|
||||
self.queue.toggleplayback();
|
||||
}
|
||||
|
||||
EventResult::Consumed(None)
|
||||
|
||||
Reference in New Issue
Block a user