mirror of https://github.com/bobwen-dev/hunter
don't draw preview dir twice
This commit is contained in:
parent
e993c2c275
commit
b359cc9119
|
@ -331,32 +331,41 @@ impl FileListBuilder {
|
||||||
}
|
}
|
||||||
}?;
|
}?;
|
||||||
|
|
||||||
if self.meta_all {
|
let mut view = ListView::new(&self.core, files);
|
||||||
files.meta_all();
|
|
||||||
} else if self.meta_upto > 0 {
|
|
||||||
files.meta_upto(self.meta_upto, Some(self.core.get_sender()));
|
|
||||||
}
|
|
||||||
|
|
||||||
let selected_file = match self.selected_file {
|
let selected_file = match self.selected_file {
|
||||||
Some(f) => Some(f),
|
Some(f) => Some(f),
|
||||||
None => {
|
None => {
|
||||||
c.as_ref()
|
c.as_ref()
|
||||||
.map(|c| c.get_selection(&files.directory).ok())
|
.map(|c| c.get_selection(&view.content.directory).ok())
|
||||||
.flatten()
|
.flatten()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut view = ListView::new(&self.core, files);
|
|
||||||
|
|
||||||
selected_file.map(|mut f| {
|
selected_file.map(|mut f| {
|
||||||
f.meta_sync().log();
|
f.meta_sync().log();
|
||||||
view.select_file(&f);
|
view.select_file(&f);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let from = match self.meta_all {
|
||||||
|
true => 0,
|
||||||
|
false => view.offset,
|
||||||
|
};
|
||||||
|
|
||||||
|
let ysize = view.core.coordinates.ysize_u();
|
||||||
|
let upto = match self.meta_all {
|
||||||
|
true => view.content.len,
|
||||||
|
false => from + ysize + 1
|
||||||
|
};
|
||||||
|
|
||||||
|
view.content
|
||||||
|
.iter_files_mut()
|
||||||
|
.skip(from)
|
||||||
|
.take(upto)
|
||||||
|
.for_each(|f| f.meta_sync().log());
|
||||||
|
view.content.meta_upto = Some(view.content.len);
|
||||||
|
|
||||||
if self.prerender {
|
if self.prerender {
|
||||||
view.refresh().log();
|
|
||||||
|
|
||||||
|
|
||||||
match self.stale {
|
match self.stale {
|
||||||
Some(s) => view.render_buffer_stale(s)?,
|
Some(s) => view.render_buffer_stale(s)?,
|
||||||
None => view.render_buffer()?
|
None => view.render_buffer()?
|
||||||
|
@ -367,6 +376,10 @@ impl FileListBuilder {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
view.content.set_clean();
|
||||||
|
view.content.dirty_meta.set_clean();
|
||||||
|
view.core.set_clean();
|
||||||
|
|
||||||
Ok(view)
|
Ok(view)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -451,6 +451,8 @@ impl Previewer {
|
||||||
stale: &Stale,
|
stale: &Stale,
|
||||||
animator: &Stale)
|
animator: &Stale)
|
||||||
-> HResult<PreviewWidget> {
|
-> HResult<PreviewWidget> {
|
||||||
|
use crate::dirty::Dirtyable;
|
||||||
|
|
||||||
if stale.is_stale()? { return Previewer::preview_failed(&file) }
|
if stale.is_stale()? { return Previewer::preview_failed(&file) }
|
||||||
let source = FileSource::Path(file.clone());
|
let source = FileSource::Path(file.clone());
|
||||||
|
|
||||||
|
@ -463,6 +465,8 @@ impl Previewer {
|
||||||
if stale.is_stale()? { return Previewer::preview_failed(&file) }
|
if stale.is_stale()? { return Previewer::preview_failed(&file) }
|
||||||
|
|
||||||
file_list.animate_slide_up(Some(animator))?;
|
file_list.animate_slide_up(Some(animator))?;
|
||||||
|
file_list.core.set_clean();
|
||||||
|
|
||||||
Ok(PreviewWidget::FileList(file_list))
|
Ok(PreviewWidget::FileList(file_list))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue