diff options
author | rabite <rabite@posteo.de> | 2019-03-16 14:35:32 +0100 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-03-16 14:35:32 +0100 |
commit | 33a9562379b9d6fdd7be19ce20b3a5ac1fa7e1c7 (patch) | |
tree | ceb2a79a8cbc7e22430d8645527339f284d4dfc3 /src/file_browser.rs | |
parent | 45203cff36eced24ce7a7c34bae386ad16ef9ca0 (diff) |
some error handling modifications
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r-- | src/file_browser.rs | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs index ca29eda..f39772a 100644 --- a/src/file_browser.rs +++ b/src/file_browser.rs @@ -364,11 +364,13 @@ impl FileBrowser { pub fn set_left_selection(&mut self) -> HResult<()> { if !self.left_widget()?.ready() { return Ok(()) } + if self.cwd.parent().is_none() { return Ok(()) } let parent = self.cwd()?.parent_as_file(); - let left_selection = self.get_selection(&parent?)?; - self.left_widget()?.widget()?.lock()?.as_mut()?.select_file(&left_selection); + if let Ok(left_selection) = self.get_selection(&parent?) { + self.left_widget()?.widget()?.lock()?.as_mut()?.select_file(&left_selection); + } Ok(()) } @@ -448,8 +450,15 @@ impl FileBrowser { } if let Some(preview_dir) = preview_dir { if !watched_dirs.contains(&preview_dir) && preview_dir.is_dir() { - self.watcher.watch(&preview_dir, RecursiveMode::NonRecursive)?; - self.watches.push(preview_dir); + match self.watcher.watch(&preview_dir, RecursiveMode::NonRecursive) { + Ok(_) => self.watches.push(preview_dir), + Err(notify::Error::Io(ioerr)) => { + if ioerr.kind() != std::io::ErrorKind::PermissionDenied { + Err(ioerr)? + } + } + err @ _ => err? + } } } Ok(()) |