summaryrefslogtreecommitdiffstats
path: root/src/file_browser.rs
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-03-16 14:35:32 +0100
committerrabite <rabite@posteo.de>2019-03-16 14:35:32 +0100
commit33a9562379b9d6fdd7be19ce20b3a5ac1fa7e1c7 (patch)
treeceb2a79a8cbc7e22430d8645527339f284d4dfc3 /src/file_browser.rs
parent45203cff36eced24ce7a7c34bae386ad16ef9ca0 (diff)
some error handling modifications
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r--src/file_browser.rs17
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(())