X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FRenderPreview.h;h=2f83aff5dc17d2eea2b03dd4777d2ca9a33d9145;hb=88e5e5fd345c280b0927ad84785657cbc9e55f77;hp=38a9aa80d4372b74abb6d0d339110c302050cbed;hpb=237c132c1e6fc720b87f2fea6deb18a8395cbe0a;p=lyx.git diff --git a/src/insets/RenderPreview.h b/src/insets/RenderPreview.h index 38a9aa80d4..2f83aff5dc 100644 --- a/src/insets/RenderPreview.h +++ b/src/insets/RenderPreview.h @@ -18,22 +18,18 @@ #include "RenderBase.h" -#include "support/FileMonitor.h" #include "support/docstring.h" +#include "support/FileMonitor.h" +#include "support/FileName.h" +#include "support/signals.h" -#include -#include -#include namespace lyx { class Buffer; -class LyXRC_PreviewStatus; class MetricsInfo; class PainterInfo; -namespace support { class FileName; } - namespace graphics { class PreviewImage; @@ -42,14 +38,15 @@ class PreviewLoader; } // namespace graphics -class RenderPreview : public RenderBase, public boost::signals::trackable { +class RenderPreview : public RenderBase { public: - /// a wrapper for Previews::status() - static LyXRC_PreviewStatus status(); + /// Return true if preview is enabled in text (from LyXRC::preview) + static bool previewText(); + /// Return true if preview is enabled in mathed (from LyXRC::preview) + static bool previewMath(); RenderPreview(Inset const *); RenderPreview(RenderPreview const &, Inset const *); - ~RenderPreview(); RenderBase * clone(Inset const *) const; /// Compute the size of the object, returned in dim @@ -59,17 +56,23 @@ public: /** Find the PreviewLoader and add a LaTeX snippet to it. * Do not start the loading process. + * \param ignore_lyxrc: generate the preview no matter what LyXRC says */ - void addPreview(docstring const & latex_snippet, Buffer const &); + void addPreview(docstring const & latex_snippet, Buffer const &, + bool ignore_lyxrc = false); /** Add a LaTeX snippet to the PreviewLoader. * Do not start the loading process. + * \param ignore_lyxrc: generate the preview no matter what LyXRC says */ void addPreview(docstring const & latex_snippet, - graphics::PreviewLoader & ploader); + graphics::PreviewLoader & ploader, + bool ignore_lyxrc = false); /// Begin the loading process. - void startLoading(Buffer const & buffer) const; + /// \param forexport : whether this is intended for export. if so, + /// then we ignore LyXRC and wait for the image to be generated. + void startLoading(Buffer const & buffer, bool forexport = false) const; /** Remove a snippet from the cache of previews. * Useful if previewing the contents of a file that has changed. @@ -98,7 +101,7 @@ private: /** Store the connection to the preview loader so that we connect * only once. */ - boost::signals::connection ploader_connection_; + signals2::scoped_connection ploader_connection_; /// Inform the core that the inset has changed. Inset const * parent_; @@ -113,22 +116,30 @@ public: /// void setAbsFile(support::FileName const & file); /// - bool monitoring() const { return monitor_.monitoring(); } - void startMonitoring() const { monitor_.start(); } - void stopMonitoring() const { monitor_.stop(); } + bool monitoring() const; + void startMonitoring() const; + void stopMonitoring() const; /// Connect and you'll be informed when the file changes. - typedef support::FileMonitor::slot_type slot_type; - boost::signals::connection fileChanged(slot_type const &); + /// Do not forget to track objects used by the slot. + typedef signals2::signal sig; + typedef sig::slot_type slot; + signals2::connection connect(slot const & slot); /// equivalent to dynamic_cast virtual RenderMonitoredPreview * asMonitoredPreview() { return this; } private: + /// This signal is emitted if the file is modified + sig changed_; /// - mutable support::FileMonitor monitor_; + mutable support::ActiveFileMonitorPtr monitor_; + /// + support::FileName filename_; }; + + } // namespace lyx #endif // RENDERPREVIEW_H