summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-07-06 14:30:52 +0200
committerMatthias Beyer <mail@beyermatthias.de>2020-07-06 14:30:52 +0200
commit2ebbaf58ea1d101ce48c73ba7f32e1efed12178a (patch)
treee22c98837e477d12b0cf4af65c9d629c3a58f1e6 /src
parent5848c2082eaae7f1d904cb4bc166c3cfd3e93fca (diff)
Remove cache from sidebar
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src')
-rw-r--r--src/sidebar.rs41
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)
}