summaryrefslogtreecommitdiffstats
path: root/src/listview.rs
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-04-03 15:35:29 +0200
committerrabite <rabite@posteo.de>2019-04-03 15:35:29 +0200
commit10d9a5462cd3c64ce8a1e3e6f724fb1528cc99ce (patch)
treef6acef7291ffcdacc88b2086bb590964041d18eb /src/listview.rs
parent8bfc707a596c45ce134a427d8c800620042ba78c (diff)
configurable hidden files/animation
Diffstat (limited to 'src/listview.rs')
-rw-r--r--src/listview.rs26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/listview.rs b/src/listview.rs
index 125683f..ddf8c90 100644
--- a/src/listview.rs
+++ b/src/listview.rs
@@ -14,6 +14,7 @@ pub trait Listable {
fn render(&self) -> Vec<String>;
fn render_header(&self) -> HResult<String> { Ok("".to_string()) }
fn render_footer(&self) -> HResult<String> { Ok("".to_string()) }
+ fn on_new(&mut self) -> HResult<()> { Ok(()) }
fn on_refresh(&mut self) -> HResult<()> { Ok(()) }
fn on_key(&mut self, _key: Key) -> HResult<()> { Ok(()) }
}
@@ -27,6 +28,12 @@ impl Listable for ListView<Files> {
self.render()
}
+ fn on_new(&mut self) -> HResult<()> {
+ let show_hidden = self.config().show_hidden();
+ self.content.show_hidden = show_hidden;
+ Ok(())
+ }
+
fn on_refresh(&mut self) -> HResult<()> {
let sender = self.core.get_sender();
@@ -97,7 +104,7 @@ where
ListView<T>: Listable
{
pub fn new(core: &WidgetCore, content: T) -> ListView<T> {
- let view = ListView::<T> {
+ let mut view = ListView::<T> {
content: content,
lines: 0,
selection: 0,
@@ -107,6 +114,7 @@ where
seeking: false,
searching: None
};
+ view.on_new().log();
view
}
@@ -161,19 +169,18 @@ impl ListView<Files>
{
pub fn selected_file(&self) -> &File {
let selection = self.selection;
- let file = &self.content[selection];
+ let file = &self.content.get_files()[selection];
file
}
pub fn selected_file_mut(&mut self) -> &mut File {
let selection = self.selection;
- let file = &mut self.content.files[selection];
- file
+ let mut file = self.content.get_file_mut(selection);
+ file.unwrap()
}
pub fn clone_selected_file(&self) -> File {
- let selection = self.selection;
- let file = self.content[selection].clone();
+ let file = self.selected_file().clone();
file
}
@@ -211,9 +218,9 @@ impl ListView<Files>
pub fn select_file(&mut self, file: &File) {
let pos = self
.content
- .files
+ .get_files()
.iter()
- .position(|item| item == file)
+ .position(|item| item == &file)
.unwrap_or(0);
self.set_selection(pos);
}
@@ -291,10 +298,9 @@ impl ListView<Files>
self.refresh().log();
}
- fn toggle_hidden(&mut self) {
+ pub fn toggle_hidden(&mut self) {
let file = self.clone_selected_file();
self.content.toggle_hidden();
- //self.content.reload_files();
self.select_file(&file);
self.refresh().log();
}