summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqkzk <qu3nt1n@gmail.com>2023-12-20 13:18:31 +0100
committerqkzk <qu3nt1n@gmail.com>2023-12-20 13:18:31 +0100
commit46c052bcd7260db0e9b6d6eec08cd4e82b7286db (patch)
tree79624e43453122335ef4ff9a04ed438b7d3b1621
parent2b0699cf720ab9aa1ce328744c93259120916b7c (diff)
don't use option for menu removable devices
-rw-r--r--src/app/status.rs2
-rw-r--r--src/event/event_exec.rs2
-rw-r--r--src/io/display.rs4
-rw-r--r--src/modes/edit/menu.rs6
-rw-r--r--src/modes/edit/removable_devices.rs10
5 files changed, 7 insertions, 17 deletions
diff --git a/src/app/status.rs b/src/app/status.rs
index 09d02d7..bfb65a1 100644
--- a/src/app/status.rs
+++ b/src/app/status.rs
@@ -223,7 +223,7 @@ impl Status {
Navigate::History => self.current_tab_mut().history.set_index(index),
Navigate::Jump => self.menu.flagged.set_index(index),
Navigate::Marks(_) => self.menu.marks.set_index(index),
- Navigate::RemovableDevices => self.menu.removable_set_index(index),
+ Navigate::RemovableDevices => self.menu.removable_devices.set_index(index),
Navigate::Shortcut => self.menu.shortcut.set_index(index),
Navigate::Trash => self.menu.trash.set_index(index),
Navigate::TuiApplication => self.menu.tui_applications.set_index(index),
diff --git a/src/event/event_exec.rs b/src/event/event_exec.rs
index 389d5d7..47f849e 100644
--- a/src/event/event_exec.rs
+++ b/src/event/event_exec.rs
@@ -894,7 +894,7 @@ impl EventAction {
log_line!("gio must be installed.");
return Ok(());
}
- status.menu.removable_devices = RemovableDevices::from_gio();
+ status.menu.removable_devices = RemovableDevices::from_gio().unwrap_or_default();
status.set_edit_mode(status.index, Edit::Navigate(Navigate::RemovableDevices))
}
diff --git a/src/io/display.rs b/src/io/display.rs
index 0cf7344..1dfd857 100644
--- a/src/io/display.rs
+++ b/src/io/display.rs
@@ -1031,9 +1031,7 @@ impl<'a> WinSecondary<'a> {
}
fn draw_removable(&self, canvas: &mut dyn Canvas) -> Result<()> {
- if let Some(removables) = &self.status.menu.removable_devices {
- self.draw_mountable_devices(removables, canvas)?;
- }
+ self.draw_mountable_devices(&self.status.menu.removable_devices, canvas)?;
Ok(())
}
diff --git a/src/modes/edit/menu.rs b/src/modes/edit/menu.rs
index e5c398d..6f1beb3 100644
--- a/src/modes/edit/menu.rs
+++ b/src/modes/edit/menu.rs
@@ -152,9 +152,10 @@ impl Menu {
}
pub fn mount_removable(&mut self) -> Result<()> {
- let Some(device) = &self.removable_devices.selected_mut() else {
+ if self.removable_devices.is_empty() {
return Ok(());
};
+ let device = &mut self.removable_devices.content[self.removable_devices.index];
if device.is_mounted() {
return Ok(());
}
@@ -163,9 +164,10 @@ impl Menu {
}
pub fn umount_removable(&mut self) -> Result<()> {
- let Some(device) = &self.removable_devices.selected_mut() else {
+ if self.removable_devices.is_empty() {
return Ok(());
};
+ let device = &mut self.removable_devices.content[self.removable_devices.index];
if !device.is_mounted() {
return Ok(());
}
diff --git a/src/modes/edit/removable_devices.rs b/src/modes/edit/removable_devices.rs
index e54dfd1..1625576 100644
--- a/src/modes/edit/removable_devices.rs
+++ b/src/modes/edit/removable_devices.rs
@@ -51,16 +51,6 @@ impl RemovableDevices {
Some(Self { content, index: 0 })
}
}
-
- /// Mutable reference to the selected element.
- /// None if the content is empty (aka no removable device detected)
- pub fn selected_mut(&mut self) -> Option<&mut Removable> {
- if self.content.is_empty() {
- None
- } else {
- Some(&mut self.content[self.index])
- }
- }
}
/// Holds a MTP device name, a path and a flag set to true