X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgraphics%2FPreviewImage.cpp;h=da0f1e21ceeb942207dd91152c937ef70a6d10a0;hb=90e2004fde2bc1b2bb310499411a2f49bc3514be;hp=5eecfcc48a8f1a7add5a059b1726c9414e48ae10;hpb=f9bff2d9b1e34a82e77e7f1041755b71045c7006;p=lyx.git diff --git a/src/graphics/PreviewImage.cpp b/src/graphics/PreviewImage.cpp index 5eecfcc48a..da0f1e21ce 100644 --- a/src/graphics/PreviewImage.cpp +++ b/src/graphics/PreviewImage.cpp @@ -12,6 +12,7 @@ #include "PreviewImage.h" +#include "Buffer.h" #include "Dimension.h" #include "GraphicsImage.h" #include "GraphicsLoader.h" @@ -27,7 +28,7 @@ using namespace lyx::support; namespace lyx { namespace graphics { -class PreviewImage::Impl : public boost::signals::trackable { +class PreviewImage::Impl : public boost::signals2::trackable { public: /// Impl(PreviewImage & p, PreviewLoader & l, @@ -85,7 +86,7 @@ Dimension PreviewImage::dim() const if (!image) return dim; - dim.asc = int(pimpl_->ascent_frac_ * double(image->height())); + dim.asc = int(pimpl_->ascent_frac_ * double(image->height()) + 0.5); dim.des = image->height() - dim.asc; dim.wid = image->width(); return dim; @@ -98,11 +99,17 @@ Image const * PreviewImage::image() const } +PreviewLoader & PreviewImage::previewLoader() const +{ + return pimpl_->ploader_; +} + + PreviewImage::Impl::Impl(PreviewImage & p, PreviewLoader & l, string const & s, FileName const & bf, double af) - : parent_(p), ploader_(l), iloader_(bf), + : parent_(p), ploader_(l), iloader_(l.buffer().fileName(), bf), snippet_(s), ascent_frac_(af) { iloader_.setDisplayPixelRatio(l.displayPixelRatio()); @@ -112,7 +119,11 @@ PreviewImage::Impl::Impl(PreviewImage & p, PreviewLoader & l, PreviewImage::Impl::~Impl() { - iloader_.filename().removeFile(); + // If these images are generated for a clone, then that may be + // because we are previewing. We therefore do not want to delete + // them when this Buffer is destroyed. + if (!ploader_.buffer().isClone()) + iloader_.filename().removeFile(); }