X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FRenderPreview.cpp;h=1d4fb9d6a5f521c8a73b4d9cb3e19beff22bc64d;hb=2c357c1d23b7b83839a9beb8225d4f1ae4f793b4;hp=54c0f7d7c4a2447de6e72a7c1ebe0f9ebd2a3295;hpb=c8d00ed1272cd489041bed2115081008b6a26489;p=lyx.git diff --git a/src/insets/RenderPreview.cpp b/src/insets/RenderPreview.cpp index 54c0f7d7c4..1d4fb9d6a5 100644 --- a/src/insets/RenderPreview.cpp +++ b/src/insets/RenderPreview.cpp @@ -14,12 +14,11 @@ #include "insets/Inset.h" #include "BufferView.h" -#include "dimension.h" -#include "gettext.h" -#include "LColor.h" -#include "lyx_main.h" -#include "lyxrc.h" -#include "metricsinfo.h" +#include "Dimension.h" +#include "support/gettext.h" +#include "LyX.h" +#include "LyXRC.h" +#include "MetricsInfo.h" #include "frontends/FontMetrics.h" #include "frontends/Painter.h" @@ -28,19 +27,16 @@ #include "graphics/PreviewLoader.h" #include "graphics/Previews.h" -#include "support/filename.h" +#include "support/FileName.h" #include "support/lstrings.h" #include +using namespace std; +using namespace lyx::support; namespace lyx { -using support::FileName; - -using std::string; -using std::auto_ptr; - LyXRC_PreviewStatus RenderPreview::status() { @@ -48,13 +44,13 @@ LyXRC_PreviewStatus RenderPreview::status() } -RenderPreview::RenderPreview(InsetBase const * inset) +RenderPreview::RenderPreview(Inset const * inset) : parent_(inset) {} RenderPreview::RenderPreview(RenderPreview const & other, - InsetBase const * inset) + Inset const * inset) : RenderBase(other), boost::signals::trackable(), snippet_(other.snippet_), @@ -62,9 +58,16 @@ RenderPreview::RenderPreview(RenderPreview const & other, {} -auto_ptr RenderPreview::clone(InsetBase const * inset) const +RenderPreview::~RenderPreview() +{ + if (ploader_connection_.connected()) + ploader_connection_.disconnect(); +} + + +RenderBase * RenderPreview::clone(Inset const * inset) const { - return auto_ptr(new RenderPreview(*this, inset)); + return new RenderPreview(*this, inset); } @@ -79,9 +82,9 @@ graphics::PreviewLoader & getPreviewLoader(Buffer const & buffer) docstring const statusMessage(BufferView const * bv, string const & snippet) { - BOOST_ASSERT(bv && bv->buffer()); + BOOST_ASSERT(bv); - Buffer const & buffer = *bv->buffer(); + Buffer const & buffer = bv->buffer(); graphics::PreviewLoader const & loader = getPreviewLoader(buffer); graphics::PreviewLoader::Status const status = loader.status(snippet); @@ -113,40 +116,36 @@ RenderPreview::getPreviewImage(Buffer const & buffer) const } -bool RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const +void RenderPreview::metrics(MetricsInfo & mi, Dimension & dim) const { - BOOST_ASSERT(mi.base.bv && mi.base.bv->buffer()); + BOOST_ASSERT(mi.base.bv); graphics::PreviewImage const * const pimage = - getPreviewImage(*mi.base.bv->buffer()); + getPreviewImage(mi.base.bv->buffer()); if (pimage) { - dim.asc = pimage->ascent(); - dim.des = pimage->descent(); - dim.wid = pimage->width(); + dim = pimage->dim(); } else { dim.asc = 50; dim.des = 0; - LyXFont font(mi.base.font); - font.setFamily(LyXFont::SANS_FAMILY); - font.setSize(LyXFont::SIZE_FOOTNOTE); + FontInfo font(mi.base.font); + font.setFamily(SANS_FAMILY); + font.setSize(FONT_SIZE_FOOTNOTE); docstring const stat = statusMessage(mi.base.bv, snippet_); dim.wid = 15 + theFontMetrics(font).width(stat); } - bool const changed = dim_ != dim; dim_ = dim; - return changed; } void RenderPreview::draw(PainterInfo & pi, int x, int y) const { - BOOST_ASSERT(pi.base.bv && pi.base.bv->buffer()); + BOOST_ASSERT(pi.base.bv); graphics::PreviewImage const * const pimage = - getPreviewImage(*pi.base.bv->buffer()); + getPreviewImage(pi.base.bv->buffer()); graphics::Image const * const image = pimage ? pimage->image() : 0; if (image) { @@ -154,17 +153,17 @@ void RenderPreview::draw(PainterInfo & pi, int x, int y) const *image); } else { - int const offset = InsetOld::TEXT_TO_INSET_OFFSET; + int const offset = Inset::TEXT_TO_INSET_OFFSET; pi.pain.rectangle(x + offset, y - dim_.asc, dim_.wid - 2 * offset, dim_.asc + dim_.des, - LColor::foreground); + Color_foreground); - LyXFont font(pi.base.font); - font.setFamily(LyXFont::SANS_FAMILY); - font.setSize(LyXFont::SIZE_FOOTNOTE); + FontInfo font(pi.base.font); + font.setFamily(SANS_FAMILY); + font.setSize(FONT_SIZE_FOOTNOTE); docstring const stat = statusMessage(pi.base.bv, snippet_); pi.pain.text(x + offset + 6, @@ -237,13 +236,12 @@ void RenderPreview::imageReady(graphics::PreviewImage const & pimage) { // Check the current snippet is the same as that previewed. if (snippet_ == pimage.snippet()) - LyX::cref().updateInset(parent_); + parent_->updateFrontend(); } -RenderMonitoredPreview::RenderMonitoredPreview(InsetBase const * inset) - : RenderPreview(inset), - monitor_(FileName(), 2000) +RenderMonitoredPreview::RenderMonitoredPreview(Inset const * inset) + : RenderPreview(inset), monitor_(FileName(), 2000) {}