X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FRenderPreview.cpp;h=5a51d793b213900b6bf76fd1fbdd6aa8b0fe6ffe;hb=bfddee97e191a853f0576f4fab3f095c4e9ce0de;hp=584a8486c9d9f934ed736f5e231c65580c8c3b13;hpb=9b4a26a252b2da164fcd6aa84feed0a738b16c10;p=lyx.git diff --git a/src/insets/RenderPreview.cpp b/src/insets/RenderPreview.cpp index 584a8486c9..5a51d793b2 100644 --- a/src/insets/RenderPreview.cpp +++ b/src/insets/RenderPreview.cpp @@ -15,7 +15,6 @@ #include "BufferView.h" #include "Dimension.h" -#include "support/gettext.h" #include "LyX.h" #include "LyXRC.h" #include "MetricsInfo.h" @@ -27,11 +26,12 @@ #include "graphics/PreviewLoader.h" #include "graphics/Previews.h" -#include "support/lassert.h" #include "support/FileName.h" +#include "support/gettext.h" +#include "support/lassert.h" #include "support/lstrings.h" -#include +#include "support/bind.h" using namespace std; using namespace lyx::support; @@ -76,8 +76,7 @@ namespace { graphics::PreviewLoader & getPreviewLoader(Buffer const & buffer) { - graphics::Previews const & previews = graphics::Previews::get(); - return previews.loader(buffer); + return thePreviews().loader(buffer); } @@ -125,6 +124,8 @@ void RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const getPreviewImage(mi.base.bv->buffer()); if (pimage) { + // If prepared, load the picture before dim calculation. See bug #5627. + pimage->image(); dim = pimage->dim(); } else { dim.asc = 50; @@ -174,31 +175,33 @@ void RenderPreview::draw(PainterInfo & pi, int x, int y) const } -void RenderPreview::startLoading(Buffer const & buffer) const +void RenderPreview::startLoading(Buffer const & buffer, bool forexport) const { - if (status() == LyXRC::PREVIEW_OFF || snippet_.empty()) + if (!forexport && (status() == LyXRC::PREVIEW_OFF || snippet_.empty())) return; graphics::PreviewLoader const & loader = getPreviewLoader(buffer); - loader.startLoading(); + loader.startLoading(forexport); } void RenderPreview::addPreview(docstring const & latex_snippet, - Buffer const & buffer) + Buffer const & buffer, + bool ignore_lyxrc) { - if (status() == LyXRC::PREVIEW_OFF) + if (status() == LyXRC::PREVIEW_OFF && !ignore_lyxrc) return; graphics::PreviewLoader & loader = getPreviewLoader(buffer); - addPreview(latex_snippet, loader); + addPreview(latex_snippet, loader, ignore_lyxrc); } void RenderPreview::addPreview(docstring const & latex_snippet, - graphics::PreviewLoader & ploader) + graphics::PreviewLoader & ploader, + bool ignore_lyxrc) { - if (status() == LyXRC::PREVIEW_OFF) + if (status() == LyXRC::PREVIEW_OFF && !ignore_lyxrc) return; // FIXME UNICODE @@ -215,7 +218,7 @@ void RenderPreview::addPreview(docstring const & latex_snippet, // is ready for loading. if (!ploader_connection_.connected()) { ploader_connection_ = ploader.connect( - boost::bind(&RenderPreview::imageReady, this, _1)); + bind(&RenderPreview::imageReady, this, _1)); } ploader.add(snippet_);