summaryrefslogtreecommitdiffstats
path: root/src/file_browser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r--src/file_browser.rs94
1 files changed, 69 insertions, 25 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs
index f3cec19..1ff263a 100644
--- a/src/file_browser.rs
+++ b/src/file_browser.rs
@@ -1,10 +1,12 @@
use termion::event::Key;
+use parking_lot::{Mutex, RwLock};
+
use pathbuftools::PathBufTools;
use osstrtools::OsStrTools;
use async_value::Stale;
use std::io::Write;
-use std::sync::{Arc, Mutex, RwLock};
+use std::sync::Arc;
use std::path::PathBuf;
use std::ffi::OsString;
use std::os::unix::ffi::OsStringExt;
@@ -193,8 +195,15 @@ impl Tabbable for TabView<FileBrowser> {
dirs
});
- self.active_tab_mut_().fs_cache.watch_only(open_dirs).log();
- self.active_tab_mut_().fs_stat.write()?.refresh().log();
+ self.active_tab_mut_()
+ .fs_cache
+ .watch_only(open_dirs)
+ .log();
+ self.active_tab_mut_()
+ .fs_stat
+ .write()
+ .refresh()
+ .log();
Ok(())
}
@@ -461,7 +470,9 @@ impl FileBrowser {
tab_paths: None
};
- self.proc_view.lock()?.run_proc_raw(cmd)?;
+ self.proc_view
+ .lock()
+ .run_proc_raw(cmd)?;
Ok(())
}
@@ -618,10 +629,15 @@ impl FileBrowser {
None => &self.cwd
}.path.to_string_lossy().to_string();
- self.bookmarks.lock()?.set_coordinates(&self.core.coordinates).log();
+ self.bookmarks
+ .lock()
+ .set_coordinates(&self.core.coordinates)
+ .log();
loop {
- let bookmark = self.bookmarks.lock()?.pick(cwd.to_string());
+ let bookmark = self.bookmarks
+ .lock()
+ .pick(cwd.to_string());
if let Err(HError::TerminalResizedError) = bookmark {
self.core.screen.clear().log();
@@ -633,7 +649,10 @@ impl FileBrowser {
if let Err(HError::WidgetResizedError) = bookmark {
let coords = &self.core.coordinates;
- self.bookmarks.lock()?.set_coordinates(&coords).log();
+ self.bookmarks
+ .lock()
+ .set_coordinates(&coords)
+ .log();
self.core.screen.clear().log();
self.refresh().log();
self.draw().log();
@@ -660,8 +679,14 @@ impl FileBrowser {
pub fn add_bookmark(&mut self) -> HResult<()> {
let cwd = self.cwd.path.to_string_lossy().to_string();
let coords = &self.core.coordinates;
- self.bookmarks.lock()?.set_coordinates(&coords).log();
- self.bookmarks.lock()?.add(&cwd)?;
+
+ self.bookmarks
+ .lock()
+ .set_coordinates(&coords)
+ .log();
+ self.bookmarks
+ .lock()
+ .add(&cwd)?;
Ok(())
}
@@ -1074,10 +1099,11 @@ impl FileBrowser {
fn external_select(&mut self) -> HResult<()> {
let shell = std::env::var("SHELL").unwrap_or("bash".into());
let cmd = self.core
- .config.read()?
- .get()?
- .select_cmd
- .clone();
+ .config
+ .read()
+ .get()?
+ .select_cmd
+ .clone();
self.core.get_sender().send(Events::InputEnabled(false))?;
self.core.screen.suspend().log();
@@ -1182,10 +1208,11 @@ impl FileBrowser {
fn external_cd(&mut self) -> HResult<()> {
let shell = std::env::var("SHELL").unwrap_or("bash".into());
let cmd = self.core
- .config.read()?
- .get()?
- .cd_cmd
- .clone();
+ .config
+ .read()
+ .get()?
+ .cd_cmd
+ .clone();
self.core.get_sender().send(Events::InputEnabled(false))?;
self.core.screen.suspend().log();
@@ -1272,7 +1299,9 @@ impl FileBrowser {
tab_paths: Some(tab_dirs)
};
- self.proc_view.lock()?.run_proc_subshell(cmd)?;
+ self.proc_view
+ .lock()
+ .run_proc_subshell(cmd)?;
Ok(())
}
@@ -1309,7 +1338,7 @@ impl FileBrowser {
self.preview_widget().map(|preview| preview.cancel_animation()).log();
let procview = self.proc_view.clone();
loop {
- match procview.lock()?.popup() {
+ match procview.lock().popup() {
// Ignore refresh
Err(HError::RefreshParent) => continue,
Err(HError::TerminalResizedError) |
@@ -1323,7 +1352,9 @@ impl FileBrowser {
pub fn show_log(&mut self) -> HResult<()> {
self.preview_widget().map(|preview| preview.cancel_animation()).log();
loop {
- let res = self.log_view.lock()?.popup();
+ let res = self.log_view
+ .lock()
+ .popup();
if let Err(HError::RefreshParent) = res {
continue
@@ -1382,7 +1413,10 @@ impl FileBrowser {
let count_xpos = xsize - file_count.len() as u16;
let count_ypos = ypos + self.get_coordinates()?.ysize();
- let fs = self.fs_stat.read()?.find_fs(&file.path)?.clone();
+ let fs = self.fs_stat
+ .read()
+ .find_fs(&file.path)?
+ .clone();
let dev = fs.get_dev().unwrap_or(String::from(""));
let free_space = fs.get_free();
@@ -1429,9 +1463,19 @@ impl Widget for FileBrowser {
fn set_coordinates(&mut self, coordinates: &Coordinates) -> HResult<()> {
self.core.coordinates = coordinates.clone();
self.columns.set_coordinates(&coordinates).log();
- self.proc_view.lock()?.set_coordinates(&coordinates).log();
- self.log_view.lock()?.set_coordinates(&coordinates).log();
- self.bookmarks.lock()?.set_coordinates(&coordinates).log();
+
+ self.proc_view
+ .lock()
+ .set_coordinates(&coordinates)
+ .log();
+ self.log_view
+ .lock()
+ .set_coordinates(&coordinates)
+ .log();
+ self.bookmarks
+ .lock()
+ .set_coordinates(&coordinates)
+ .log();
Ok(())
}
@@ -1468,7 +1512,7 @@ impl Widget for FileBrowser {
let xsize = term::xsize_u();
let mut status = self.get_core()?
.status_bar_content
- .lock()?;
+ .lock();
let status = status.as_mut()
.take();
let active = self.columns