summaryrefslogtreecommitdiffstats
path: root/src/interactive/widgets/mark.rs
diff options
context:
space:
mode:
authorFederico Stra <stra.federico@gmail.com>2021-06-30 00:32:56 +0200
committerFederico Stra <stra.federico@gmail.com>2021-06-30 00:32:56 +0200
commit02dd1b72c8fe741fb153094fdb08816f7f593c6f (patch)
tree6e3adcc26afb09ff315b588c68a4f71c19f0855b /src/interactive/widgets/mark.rs
parent00fae90e0dffc468c75bd362fa4220bc8650fb86 (diff)
Refactor: deduplicate code
Diffstat (limited to 'src/interactive/widgets/mark.rs')
-rw-r--r--src/interactive/widgets/mark.rs15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/interactive/widgets/mark.rs b/src/interactive/widgets/mark.rs
index e01604b..a122f6c 100644
--- a/src/interactive/widgets/mark.rs
+++ b/src/interactive/widgets/mark.rs
@@ -109,8 +109,8 @@ impl MarkPane {
pub fn process_events(mut self, key: Key) -> Option<(Self, Option<MarkMode>)> {
let action = None;
match key {
- Ctrl('r') => return Some(self.prepare_deletion()),
- Ctrl('t') => return Some(self.prepare_trashing()),
+ Ctrl('r') => return Some(self.prepare_deletion(MarkMode::Delete)),
+ Ctrl('t') => return Some(self.prepare_deletion(MarkMode::Trash)),
Char('x') | Char('d') | Char(' ') => {
return self.remove_selected().map(|s| (s, action))
}
@@ -179,19 +179,12 @@ impl MarkPane {
d.num_errors_during_deletion = num_errors;
}
}
- fn prepare_deletion(mut self) -> (Self, Option<MarkMode>) {
+ fn prepare_deletion(mut self, mark: MarkMode) -> (Self, Option<MarkMode>) {
for entry in self.marked.values_mut() {
entry.num_errors_during_deletion = 0;
}
self.selected = Some(0);
- (self, Some(MarkMode::Delete))
- }
- fn prepare_trashing(mut self) -> (Self, Option<MarkMode>) {
- for entry in self.marked.values_mut() {
- entry.num_errors_during_deletion = 0;
- }
- self.selected = Some(0);
- (self, Some(MarkMode::Trash))
+ (self, Some(mark))
}
fn remove_selected(mut self) -> Option<Self> {
if let Some(mut selected) = self.selected {