mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
..
This commit is contained in:
parent
0fa0acb6ab
commit
b6f572ecec
4 changed files with 17 additions and 18 deletions
|
|
@ -38,13 +38,11 @@ impl Tab {
|
|||
};
|
||||
|
||||
let state = self.mode.is_select();
|
||||
for i in indices {
|
||||
if let Some(file) = self.current.files.get(*i) {
|
||||
if state {
|
||||
self.selected.insert(file.url.clone());
|
||||
} else {
|
||||
self.selected.remove(&file.url);
|
||||
}
|
||||
for f in indices.iter().filter_map(|i| self.current.files.get(*i)) {
|
||||
if state {
|
||||
self.selected.insert(f.url());
|
||||
} else {
|
||||
self.selected.remove(&f.url);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,20 +26,18 @@ impl Tab {
|
|||
let mut b = false;
|
||||
match opt.into().state {
|
||||
Some(true) => {
|
||||
for file in self.current.files.iter() {
|
||||
b |= self.selected.insert(file.url());
|
||||
for f in self.current.files.iter() {
|
||||
b |= self.selected.insert(f.url());
|
||||
}
|
||||
}
|
||||
Some(false) => {
|
||||
for file in self.current.files.iter() {
|
||||
b |= self.selected.remove(&file.url);
|
||||
for f in self.current.files.iter() {
|
||||
b |= self.selected.remove(&f.url);
|
||||
}
|
||||
}
|
||||
None => {
|
||||
for file in self.current.files.iter() {
|
||||
if !self.selected.remove(&file.url) {
|
||||
b |= self.selected.insert(file.url());
|
||||
}
|
||||
for f in self.current.files.iter() {
|
||||
b |= self.selected.remove(&f.url) || self.selected.insert(f.url());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ impl Tab {
|
|||
let pending = self.mode.visual().map(|(_, p)| Cow::Borrowed(p)).unwrap_or_default();
|
||||
let is_unset = self.mode.is_unset();
|
||||
if self.selected.is_empty() && (is_unset || pending.is_empty()) {
|
||||
return vec![];
|
||||
return self.current.hovered().map(|h| vec![h]).unwrap_or_default();
|
||||
}
|
||||
|
||||
let selected: BTreeSet<_> = self.selected.iter().collect();
|
||||
|
|
@ -81,7 +81,10 @@ impl Tab {
|
|||
}
|
||||
}
|
||||
}
|
||||
items
|
||||
Some(items)
|
||||
.filter(|v| !v.is_empty())
|
||||
.or_else(|| self.current.hovered().map(|h| vec![h]))
|
||||
.unwrap_or_default()
|
||||
}
|
||||
|
||||
// --- History
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ impl Files {
|
|||
folder: &yazi_core::folder::Folder,
|
||||
tab: &yazi_core::tab::Tab,
|
||||
) -> mlua::Result<AnyUserData<'static>> {
|
||||
SCOPE.create_any_userdata(Self { folder, window, tab })
|
||||
SCOPE.create_any_userdata(Self { window, folder, tab })
|
||||
}
|
||||
|
||||
pub(super) fn register(lua: &Lua) -> mlua::Result<()> {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue