mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Do not compute metrics at each preview when loading file
With the branch-test.lyx file from #12297, loading takes forever when previews are activated. This is because each preview element causes a full screen metrics recomputation. This commit just skips these calls and only does one when all previews have been obtained. As a result, computing the previews takes 1 second instead of 25 seconds on branch-test.lyx. Part of bug #12297.
This commit is contained in:
parent
f15d2ebf38
commit
2449693301
@ -787,6 +787,16 @@ void PreviewLoader::Impl::finishedGenerating(pid_t pid, int retval)
|
|||||||
// Remove the item from the list of still-executing processes.
|
// Remove the item from the list of still-executing processes.
|
||||||
in_progress_.erase(git);
|
in_progress_.erase(git);
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* FIXME : there is no need for all these calls, which recompute
|
||||||
|
* all metrics for each and every preview. The single call at the
|
||||||
|
* end of this method is sufficient.
|
||||||
|
|
||||||
|
* It seems that this whole imageReady mechanism is actually not
|
||||||
|
* needed. If it is the case, the whole updateFrontend/updateInset
|
||||||
|
* bloat can go too.
|
||||||
|
*/
|
||||||
|
|
||||||
// Tell the outside world
|
// Tell the outside world
|
||||||
list<PreviewImagePtr>::const_reverse_iterator
|
list<PreviewImagePtr>::const_reverse_iterator
|
||||||
nit = newimages.rbegin();
|
nit = newimages.rbegin();
|
||||||
@ -795,6 +805,8 @@ void PreviewLoader::Impl::finishedGenerating(pid_t pid, int retval)
|
|||||||
for (; nit != nend; ++nit) {
|
for (; nit != nend; ++nit) {
|
||||||
imageReady(*nit->get());
|
imageReady(*nit->get());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
finished_generating_ = true;
|
finished_generating_ = true;
|
||||||
buffer_.scheduleRedrawWorkAreas();
|
buffer_.scheduleRedrawWorkAreas();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user