]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetinclude.C
Final touch 'inset display()'; fix 'is a bit silly' bug
[lyx.git] / src / insets / insetinclude.C
index 3dea3f35859e6305444d38e5715bb6ed4dd0a4b6..5a02886a53564a4e42acb938db38f3edd0bcd55b 100644 (file)
 #include "gettext.h"
 #include "LaTeXFeatures.h"
 #include "latexrunparams.h"
+#include "lyx_main.h"
 #include "lyxlex.h"
 #include "metricsinfo.h"
 
+#include "frontends/LyXView.h"
 #include "frontends/Painter.h"
 
-#include "graphics/PreviewImage.h"
 #include "graphics/PreviewLoader.h"
 
 #include "insets/render_preview.h"
@@ -106,7 +107,8 @@ InsetInclude::~InsetInclude()
 }
 
 
-dispatch_result InsetInclude::localDispatch(FuncRequest const & cmd)
+dispatch_result
+InsetInclude::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &)
 {
        switch (cmd.action) {
 
@@ -134,7 +136,7 @@ dispatch_result InsetInclude::localDispatch(FuncRequest const & cmd)
                return DISPATCHED;
 
        default:
-               return InsetOld::localDispatch(cmd);
+               return UNDISPATCHED;
        }
 }
 
@@ -173,7 +175,7 @@ Types type(InsetCommandParams const & params)
 bool isVerbatim(InsetCommandParams const & params)
 {
        string const command_name = params.getCmdName();
-       return command_name == "verbatiminput" || 
+       return command_name == "verbatiminput" ||
                command_name == "verbatiminput*";
 }
 
@@ -518,7 +520,7 @@ void InsetInclude::fillWithBibKeys(Buffer const & buffer,
 
 void InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
 {
-       if (preview_->previewReady()) {
+       if (RenderPreview::activated() && preview_->previewReady()) {
                preview_->metrics(mi, dim);
        } else {
                if (!set_label_) {
@@ -540,16 +542,15 @@ void InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const
 
 void InsetInclude::draw(PainterInfo & pi, int x, int y) const
 {
-       cache(pi.base.bv);
-
-       if (!preview_->previewReady()) {
+       if (!RenderPreview::activated() || !preview_->previewReady()) {
                button_.draw(pi, x + button_.box().x1, y);
                return;
        }
 
-       if (!preview_->monitoring()) {
-               string const included_file =
-                       includedFilename(*view()->buffer(), params_);
+       BOOST_ASSERT(pi.base.bv);
+       Buffer const * const buffer = pi.base.bv->buffer();
+       if (!preview_->monitoring() && buffer) {
+               string const included_file = includedFilename(*buffer, params_);
                preview_->startMonitoring(included_file);
        }
 
@@ -557,34 +558,23 @@ void InsetInclude::draw(PainterInfo & pi, int x, int y) const
 }
 
 
-BufferView * InsetInclude::view() const
-{
-       return button_.view();
-}
-
-
 //
 // preview stuff
 //
 
 void InsetInclude::statusChanged() const
 {
-       if (view())
-               view()->updateInset(this);
+       LyX::cref().updateInset(this);
 }
 
 
 void InsetInclude::fileChanged() const
 {
-       BufferView * const bv = view();
-       if (!bv)
-               return;
-       bv->updateInset(this);
-
-       if (!bv->buffer())
+       Buffer const * const buffer_ptr = LyX::cref().updateInset(this);
+       if (!buffer_ptr)
                return;
-       Buffer const & buffer = *bv->buffer();
 
+       Buffer const & buffer = *buffer_ptr;
        preview_->removePreview(buffer);
        generate_preview(*preview_.get(), *this, buffer);
 }