diff options
author | rabite <rabite@posteo.de> | 2019-02-01 00:21:16 +0100 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-02-01 00:21:16 +0100 |
commit | b7bbcff2840f5b0b0b46f9188ae45be0075f9864 (patch) | |
tree | bc7dc7322403b4cd7c48e26bf8f77dc2a02f8171 /src/preview.rs | |
parent | 305d26d7b6ca2f4b3b289365d3f4d56bb2930d95 (diff) |
lots of stuff.
Diffstat (limited to 'src/preview.rs')
-rw-r--r-- | src/preview.rs | 71 |
1 files changed, 38 insertions, 33 deletions
diff --git a/src/preview.rs b/src/preview.rs index a086b14..5496857 100644 --- a/src/preview.rs +++ b/src/preview.rs @@ -1,8 +1,8 @@ -use crate::widget::Widget; -use crate::coordinates::{Coordinates, Size, Position}; +use crate::coordinates::{Coordinates, Position, Size}; use crate::files::{File, Files, Kind}; use crate::listview::ListView; use crate::textview::TextView; +use crate::widget::Widget; pub struct Previewer { pub file: Option<File>, @@ -44,44 +44,49 @@ impl Widget for Previewer { &self.coordinates } fn set_coordinates(&mut self, coordinates: &Coordinates) { - if self.coordinates == *coordinates { return } + if self.coordinates == *coordinates { + return; + } self.coordinates = coordinates.clone(); self.refresh(); } - fn render_header(&self) -> String { "".to_string() } + fn render_header(&self) -> String { + "".to_string() + } fn refresh(&mut self) { - if self.file == None { return } + if self.file == None { + return; + } let file = self.file.as_ref().unwrap(); - self.buffer = - match &file.kind { - Kind::Directory => { - match Files::new_from_path(&file.path) { - Ok(files) => { - let len = files.len(); - let mut file_list = ListView::new(files); - file_list.set_size(self.coordinates.size.clone()); - file_list.set_position(self.coordinates.position.clone()); - file_list.refresh(); - file_list.get_drawlist() - + &file_list.get_redraw_empty_list(len) - }, Err(err) => { - self.show_status(&format!("Can't preview because: {}", err)); - self.get_clearlist() - } - } - }, - _ => { - if file.get_mime() == Some("text".to_string()) { - let mut textview = TextView::new_from_file(&file); - textview.set_size(self.coordinates.size.clone()); - textview.set_position(self.coordinates.position.clone()); - textview.refresh(); - let len = textview.lines.len(); - textview.get_drawlist() + &textview.get_redraw_empty_list(len-1) - } else { self.get_clearlist() } + self.buffer = match &file.kind { + Kind::Directory => match Files::new_from_path(&file.path) { + Ok(files) => { + let len = files.len(); + let mut file_list = ListView::new(files); + file_list.set_size(self.coordinates.size.clone()); + file_list.set_position(self.coordinates.position.clone()); + file_list.refresh(); + file_list.get_drawlist() + &file_list.get_redraw_empty_list(len) + } + Err(err) => { + self.show_status(&format!("Can't preview because: {}", err)); + self.get_clearlist() + } + }, + _ => { + if file.get_mime() == Some("text".to_string()) { + let mut textview = TextView::new_from_file(&file); + textview.set_size(self.coordinates.size.clone()); + textview.set_position(self.coordinates.position.clone()); + textview.refresh(); + let len = textview.lines.len(); + textview.get_drawlist() + &textview.get_redraw_empty_list(len - 1) + } else { + self.get_clearlist() } - }; + } + }; } fn get_drawlist(&self) -> String { self.buffer.clone() |