diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-07-06 14:30:52 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-07-06 14:30:52 +0200 |
commit | 2ebbaf58ea1d101ce48c73ba7f32e1efed12178a (patch) | |
tree | e22c98837e477d12b0cf4af65c9d629c3a58f1e6 /src | |
parent | 5848c2082eaae7f1d904cb4bc166c3cfd3e93fca (diff) |
Remove cache from sidebar
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src')
-rw-r--r-- | src/sidebar.rs | 41 |
1 files changed, 16 insertions, 25 deletions
diff --git a/src/sidebar.rs b/src/sidebar.rs index deaaa15..8d7e487 100644 --- a/src/sidebar.rs +++ b/src/sidebar.rs @@ -9,7 +9,6 @@ use cursive::views::NamedView; use cursive_tree_view::TreeView; use crate::main_view::MainView; -use crate::mailcache::MailCache; #[derive(Debug)] pub struct TreeEntry { @@ -27,13 +26,27 @@ pub const SIDEBAR_VIEW_NAME: &'static str = "sidebar_tree_view"; pub struct Sidebar { inner_view: NamedView<TreeView<TreeEntry>>, - cache: MailCache, } impl Sidebar { - pub fn new(mailcache: MailCache) -> Self { + pub fn new(pathes: Vec<PathBuf>) -> Self { let mut tv = cursive_tree_view::TreeView::default(); + pathes + .into_iter() + .map(|path| { + path.file_name() + .and_then(OsStr::to_str) + .map(String::from) + .ok_or_else(|| anyhow!("UTF8 error")) + .map(|name| TreeEntry { name, path }) + }) + .enumerate() + .for_each(|(i, item)| { + let item = item.expect("UNEX"); + tv.insert_item(item, cursive_tree_view::Placement::After, i); + }); + tv.set_on_submit(|siv: &mut Cursive, row: usize| { let borrow = siv.call_on_name(SIDEBAR_VIEW_NAME, move |tree: &mut TreeView<TreeEntry>| { tree.borrow_item(row).map(|b| b.path.clone()) @@ -42,7 +55,6 @@ impl Sidebar { if let Some(path) = borrow { siv.call_on_name(crate::main_view::MAIN_VIEW_NAME, move |main_view: &mut MainView| { - main_view.load_maildir(path); None as Option<()> }); } @@ -50,7 +62,6 @@ impl Sidebar { Sidebar { inner_view: tv.with_name(SIDEBAR_VIEW_NAME), - cache: mailcache } } } @@ -61,26 +72,6 @@ impl View for Sidebar { } fn layout(&mut self, xy: XY<usize>) { - let _ = self.cache.update_cache().expect("Failed to update cache"); - - // Fill the tree from the iterator - self.cache - .cached_pathes() - .expect("UNEXPECTED ERROR FIXME") - .into_iter() - .map(|path| { - path.file_name() - .and_then(OsStr::to_str) - .map(String::from) - .ok_or_else(|| anyhow!("UTF8 error")) - .map(|name| TreeEntry { name, path }) - }) - .enumerate() - .for_each(|(i, item)| { - let item = item.expect("UNEX"); - self.inner_view.get_mut().insert_item(item, cursive_tree_view::Placement::After, i); - }); - self.inner_view.layout(xy) } |