]> 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 1a3a5090c25235864d7ec78b21d8d830d717e627..5a02886a53564a4e42acb938db38f3edd0bcd55b 100644 (file)
@@ -22,6 +22,7 @@
 #include "gettext.h"
 #include "LaTeXFeatures.h"
 #include "latexrunparams.h"
+#include "lyx_main.h"
 #include "lyxlex.h"
 #include "metricsinfo.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) {
 
@@ -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 (!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,40 +558,23 @@ void InsetInclude::draw(PainterInfo & pi, int x, int y) const
 }
 
 
-void InsetInclude::cache(BufferView * view) const
-{
-       BOOST_ASSERT(view);
-       view_ = view->owner()->view();
-}
-
-BufferView * InsetInclude::view() const
-{
-       return view_.lock().get();
-}
-
-
 //
 // 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);
 }