#include <config.h>
#include "insets/insetgraphics.h"
-#include "insets/renderers.h"
+#include "insets/render_graphic.h"
#include "buffer.h"
#include "BufferView.h"
#include "latexrunparams.h"
#include "lyxlex.h"
#include "lyxrc.h"
+#include "metricsinfo.h"
#include "frontends/Alert.h"
+#include "frontends/LyXView.h"
#include "support/filetools.h"
#include "support/lyxalgo.h" // lyx::count
InsetGraphics::InsetGraphics()
: graphic_label(uniqueID()),
- graphic_(new GraphicRenderer)
+ graphic_(new RenderGraphic)
{
graphic_->connect(boost::bind(&InsetGraphics::statusChanged, this));
}
: InsetOld(ig),
boost::signals::trackable(),
graphic_label(uniqueID()),
- graphic_(new GraphicRenderer(*ig.graphic_))
+ graphic_(new RenderGraphic(*ig.graphic_))
{
graphic_->connect(boost::bind(&InsetGraphics::statusChanged, this));
setParams(ig.params());
}
-void InsetGraphics::statusChanged()
+void InsetGraphics::cache(BufferView * view) const
{
- BufferView * bv = graphic_->view();
+ BOOST_ASSERT(view);
+ view_ = view->owner()->view();
+}
+
+BufferView * InsetGraphics::view() const
+{
+ return view_.lock().get();
+}
+
+
+void InsetGraphics::statusChanged() const
+{
+ BufferView * bv = view();
if (bv)
bv->updateInset(this);
}
return DISPATCHED;
default:
- return InsetOld::localDispatch(cmd);
+ return UNDISPATCHED;
}
}
void InsetGraphics::draw(PainterInfo & pi, int x, int y) const
{
+ cache(pi.base.bv);
graphic_->draw(pi, x, y);
}