summaryrefslogtreecommitdiffstats
path: root/src/fs/entry.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/entry.rs')
-rw-r--r--src/fs/entry.rs26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/fs/entry.rs b/src/fs/entry.rs
index 8337bc4..f7dae32 100644
--- a/src/fs/entry.rs
+++ b/src/fs/entry.rs
@@ -12,7 +12,10 @@ pub struct JoshutoDirEntry {
label: String,
path: path::PathBuf,
pub metadata: JoshutoMetadata,
- selected: bool,
+ /// Directly selected by the user, _not_ by a current visual mode selection
+ permanent_selected: bool,
+ /// Temporarily selected by the visual mode range
+ visual_mode_selected: bool,
_marked: bool,
}
@@ -63,11 +66,23 @@ impl JoshutoDirEntry {
}
pub fn is_selected(&self) -> bool {
- self.selected
+ self.permanent_selected || self.visual_mode_selected
}
- pub fn set_selected(&mut self, selected: bool) {
- self.selected = selected;
+ pub fn is_permanent_selected(&self) -> bool {
+ self.permanent_selected
+ }
+
+ pub fn is_visual_mode_selected(&self) -> bool {
+ self.visual_mode_selected
+ }
+
+ pub fn set_permanent_selected(&mut self, selected: bool) {
+ self.permanent_selected = selected;
+ }
+
+ pub fn set_visual_mode_selected(&mut self, visual_mode_selected: bool) {
+ self.visual_mode_selected = visual_mode_selected;
}
pub fn get_ext(&self) -> &str {
@@ -102,7 +117,8 @@ impl JoshutoDirEntry {
label,
path,
metadata,
- selected: false,
+ permanent_selected: false,
+ visual_mode_selected: false,
_marked: false,
})
}