summaryrefslogtreecommitdiffstats
path: root/src/app
diff options
context:
space:
mode:
authorCanop <cano.petrole@gmail.com>2022-03-29 13:37:51 +0200
committerCanop <cano.petrole@gmail.com>2022-03-29 13:37:51 +0200
commit178a8c5942df0442ab80e5f305cf237110503123 (patch)
tree3b368268cb126733254ded847d29fabac0053e8c /src/app
parenta697c79919301313a6942808363f5a9483c3b1d7 (diff)
Don't quit on small terminals
Fix #511
Diffstat (limited to 'src/app')
-rw-r--r--src/app/app.rs45
-rw-r--r--src/app/panel_state.rs2
2 files changed, 21 insertions, 26 deletions
diff --git a/src/app/app.rs b/src/app/app.rs
index d7d1839..bd5cf68 100644
--- a/src/app/app.rs
+++ b/src/app/app.rs
@@ -88,7 +88,7 @@ impl App {
)?
.expect("Failed to create BrowserState"),
),
- Areas::create(&mut Vec::new(), 0, screen, false)?,
+ Areas::create(&mut Vec::new(), 0, screen, false),
con,
);
let (tx_seqs, rx_seqs) = unbounded::<Sequence>();
@@ -168,8 +168,7 @@ impl App {
self.panels.as_mut_slice(),
self.screen,
self.preview_panel.is_some(),
- )
- .expect("removing a panel should be easy");
+ );
self.active_panel_idx = self
.panels
.iter()
@@ -560,33 +559,29 @@ impl App {
self.active_panel_idx
};
let with_preview = purpose.is_preview() || self.preview_panel.is_some();
- match Areas::create(
+ let areas = Areas::create(
self.panels.as_mut_slice(),
insertion_idx,
self.screen,
with_preview,
- ) {
- Ok(areas) => {
- let panel_id = self.created_panels_count.into();
- match state.get_type() {
- PanelStateType::Preview => {
- self.preview_panel = Some(panel_id);
- }
- PanelStateType::Stage => {
- self.stage_panel = Some(panel_id);
- }
- _ => {
- self.active_panel_idx = insertion_idx;
- }
- }
- let mut panel = Panel::new(panel_id, state, areas, con);
- panel.purpose = purpose;
- self.created_panels_count += 1;
- self.panels.insert(insertion_idx, panel);
- Ok(())
+ );
+ let panel_id = self.created_panels_count.into();
+ match state.get_type() {
+ PanelStateType::Preview => {
+ self.preview_panel = Some(panel_id);
+ }
+ PanelStateType::Stage => {
+ self.stage_panel = Some(panel_id);
+ }
+ _ => {
+ self.active_panel_idx = insertion_idx;
}
- Err(e) => Err(e.to_string())
}
+ let mut panel = Panel::new(panel_id, state, areas, con);
+ panel.purpose = purpose;
+ self.created_panels_count += 1;
+ self.panels.insert(insertion_idx, panel);
+ Ok(())
}
/// do the pending tasks, if any, and refresh the screen accordingly
@@ -731,7 +726,7 @@ impl App {
self.panels.as_mut_slice(),
self.screen,
self.preview_panel.is_some(),
- )?;
+ );
for panel in &mut self.panels {
panel.mut_state().refresh(self.screen, con);
}
diff --git a/src/app/panel_state.rs b/src/app/panel_state.rs
index 83a0138..f1f2375 100644
--- a/src/app/panel_state.rs
+++ b/src/app/panel_state.rs
@@ -796,7 +796,7 @@ pub fn get_arg<T: Copy + FromStr>(
) -> T {
verb_invocation
.and_then(|vi| vi.args.as_ref())
- .or_else(|| internal_exec.arg.as_ref())
+ .or(internal_exec.arg.as_ref())
.and_then(|s| s.parse::<T>().ok())
.unwrap_or(default)
}