This commit is contained in:
sxyazi 2024-09-26 00:21:47 +08:00
parent 01f33063e7
commit 892b14e82b
No known key found for this signature in database
4 changed files with 10 additions and 11 deletions

View file

@ -27,7 +27,7 @@ impl From<bool> for Opt {
impl Manager { impl Manager {
pub fn peek(&mut self, opt: impl Into<Opt>) { pub fn peek(&mut self, opt: impl Into<Opt>) {
let Some(hovered) = self.hovered().cloned() else { let Some(hovered) = self.hovered().cloned() else {
return render!(self.active_mut().preview.reset()); return self.active_mut().preview.reset();
}; };
let mime = self.mimetype.get_owned(&hovered.url).unwrap_or_default(); let mime = self.mimetype.get_owned(&hovered.url).unwrap_or_default();
@ -37,7 +37,7 @@ impl Manager {
self.active_mut().preview.skip = folder.map(|f| f.0).unwrap_or_default(); self.active_mut().preview.skip = folder.map(|f| f.0).unwrap_or_default();
} }
if !self.active().preview.same_file(&hovered, &mime) { if !self.active().preview.same_file(&hovered, &mime) {
render!(self.active_mut().preview.reset()); self.active_mut().preview.reset();
} }
let opt = opt.into() as Opt; let opt = opt.into() as Opt;

View file

@ -16,7 +16,7 @@ impl From<Cmd> for Opt {
impl Manager { impl Manager {
pub fn seek(&mut self, opt: impl Into<Opt>) { pub fn seek(&mut self, opt: impl Into<Opt>) {
let Some(hovered) = self.hovered() else { let Some(hovered) = self.hovered() else {
return render!(self.active_mut().preview.reset()); return self.active_mut().preview.reset();
}; };
let mime = if hovered.is_dir() { let mime = if hovered.is_dir() {
@ -24,11 +24,11 @@ impl Manager {
} else if let Some(s) = self.mimetype.get(&hovered.url) { } else if let Some(s) = self.mimetype.get(&hovered.url) {
s s
} else { } else {
return render!(self.active_mut().preview.reset()); return self.active_mut().preview.reset();
}; };
let Some(previewer) = PLUGIN.previewer(&hovered.url, mime) else { let Some(previewer) = PLUGIN.previewer(&hovered.url, mime) else {
return render!(self.active_mut().preview.reset()); return self.active_mut().preview.reset();
}; };
let opt = opt.into() as Opt; let opt = opt.into() as Opt;

View file

@ -18,7 +18,7 @@ impl TryFrom<Cmd> for Opt {
impl Tab { impl Tab {
pub fn preview(&mut self, opt: impl TryInto<Opt>) { pub fn preview(&mut self, opt: impl TryInto<Opt>) {
let Some(hovered) = self.current.hovered().map(|h| &h.url) else { let Some(hovered) = self.current.hovered().map(|h| &h.url) else {
return render!(self.preview.reset()); return self.preview.reset();
}; };
let Ok(opt) = opt.try_into() else { let Ok(opt) = opt.try_into() else {

View file

@ -7,7 +7,7 @@ use yazi_adapter::ADAPTOR;
use yazi_config::PLUGIN; use yazi_config::PLUGIN;
use yazi_fs::Files; use yazi_fs::Files;
use yazi_plugin::{external::Highlighter, isolate, utils::PreviewLock}; use yazi_plugin::{external::Highlighter, isolate, utils::PreviewLock};
use yazi_shared::{MIME_DIR, fs::{Cha, File, FilesOp, Url}}; use yazi_shared::{MIME_DIR, fs::{Cha, File, FilesOp, Url}, render};
#[derive(Default)] #[derive(Default)]
pub struct Preview { pub struct Preview {
@ -27,8 +27,7 @@ impl Preview {
} }
let Some(previewer) = PLUGIN.previewer(&file.url, &mime) else { let Some(previewer) = PLUGIN.previewer(&file.url, &mime) else {
self.reset(); return self.reset();
return;
}; };
self.abort(); self.abort();
@ -70,10 +69,10 @@ impl Preview {
} }
#[inline] #[inline]
pub fn reset(&mut self) -> bool { pub fn reset(&mut self) {
self.abort(); self.abort();
ADAPTOR.image_hide().ok(); ADAPTOR.image_hide().ok();
self.lock.take().is_some() render!(self.lock.take().is_some())
} }
#[inline] #[inline]