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();
|
let state = self.mode.is_select();
|
||||||
for i in indices {
|
for f in indices.iter().filter_map(|i| self.current.files.get(*i)) {
|
||||||
if let Some(file) = self.current.files.get(*i) {
|
if state {
|
||||||
if state {
|
self.selected.insert(f.url());
|
||||||
self.selected.insert(file.url.clone());
|
} else {
|
||||||
} else {
|
self.selected.remove(&f.url);
|
||||||
self.selected.remove(&file.url);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,20 +26,18 @@ impl Tab {
|
||||||
let mut b = false;
|
let mut b = false;
|
||||||
match opt.into().state {
|
match opt.into().state {
|
||||||
Some(true) => {
|
Some(true) => {
|
||||||
for file in self.current.files.iter() {
|
for f in self.current.files.iter() {
|
||||||
b |= self.selected.insert(file.url());
|
b |= self.selected.insert(f.url());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(false) => {
|
Some(false) => {
|
||||||
for file in self.current.files.iter() {
|
for f in self.current.files.iter() {
|
||||||
b |= self.selected.remove(&file.url);
|
b |= self.selected.remove(&f.url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
for file in self.current.files.iter() {
|
for f in self.current.files.iter() {
|
||||||
if !self.selected.remove(&file.url) {
|
b |= self.selected.remove(&f.url) || self.selected.insert(f.url());
|
||||||
b |= self.selected.insert(file.url());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ impl Tab {
|
||||||
let pending = self.mode.visual().map(|(_, p)| Cow::Borrowed(p)).unwrap_or_default();
|
let pending = self.mode.visual().map(|(_, p)| Cow::Borrowed(p)).unwrap_or_default();
|
||||||
let is_unset = self.mode.is_unset();
|
let is_unset = self.mode.is_unset();
|
||||||
if self.selected.is_empty() && (is_unset || pending.is_empty()) {
|
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();
|
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
|
// --- History
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ impl Files {
|
||||||
folder: &yazi_core::folder::Folder,
|
folder: &yazi_core::folder::Folder,
|
||||||
tab: &yazi_core::tab::Tab,
|
tab: &yazi_core::tab::Tab,
|
||||||
) -> mlua::Result<AnyUserData<'static>> {
|
) -> 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<()> {
|
pub(super) fn register(lua: &Lua) -> mlua::Result<()> {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue