X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetinclude.h;h=c42159e30ce4fdfd0297565ac483ea11d2638921;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=028a05f2f24116e3cca24b8067c7b4d54c284347;hpb=183239b7def8ca0e51432f2d88891d4b9f055953;p=lyx.git diff --git a/src/insets/insetinclude.h b/src/insets/insetinclude.h index 028a05f2f2..c42159e30c 100644 --- a/src/insets/insetinclude.h +++ b/src/insets/insetinclude.h @@ -15,46 +15,65 @@ #include "inset.h" #include "insetcommandparams.h" #include "render_button.h" +#include "mailinset.h" + +#include "support/filename.h" + #include +namespace lyx { + class Buffer; class Dimension; -struct LaTeXFeatures; +class LaTeXFeatures; class RenderMonitoredPreview; /// for including tex/lyx files -class InsetInclude: public InsetOld { +class InsetInclude : public InsetOld { public: /// InsetInclude(InsetCommandParams const &); ~InsetInclude(); /// Override these InsetButton methods if Previewing - void metrics(MetricsInfo & mi, Dimension & dim) const; + bool metrics(MetricsInfo & mi, Dimension & dim) const; /// void draw(PainterInfo & pi, int x, int y) const; /// virtual bool display() const; /// get the parameters - InsetCommandParams const & params(void) const; + InsetCommandParams const & params() const; /// - InsetOld::Code lyxCode() const { return InsetOld::INCLUDE_CODE; } + InsetBase::Code lyxCode() const { return InsetBase::INCLUDE_CODE; } /** Fills \c list * \param buffer the Buffer containing this inset. * \param list the list of labels in the child buffer. */ void getLabelList(Buffer const & buffer, - std::vector & list) const; + std::vector & list) const; /** Fills \c keys * \param buffer the Buffer containing this inset. * \param keys the list of bibkeys in the child buffer. */ - /// void fillWithBibKeys(Buffer const & buffer, - std::vector > & keys) const; + std::vector > & keys) const; + /** Update the cache with all bibfiles in use of the child buffer + * (including bibfiles of grandchild documents). + * Does nothing if the child document is not loaded to prevent + * automatic loading of all child documents upon loading the master. + * \param buffer the Buffer containing this inset. + */ + void updateBibfilesCache(Buffer const & buffer); + /** Return the cache with all bibfiles in use of the child buffer + * (including bibfiles of grandchild documents). + * Return an empty vector if the child doc is not loaded. + * \param buffer the Buffer containing this inset. + */ + std::vector const & + getBibfilesCache(Buffer const & buffer) const; /// EDITABLE editable() const { return IS_EDITABLE; } /// @@ -62,21 +81,24 @@ public: /// void read(Buffer const &, LyXLex &); /// - int latex(Buffer const &, std::ostream &, + int latex(Buffer const &, odocstream &, OutputParams const &) const; /// - int plaintext(Buffer const &, std::ostream &, + int plaintext(Buffer const &, odocstream &, OutputParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &, - OutputParams const &) const; - /// - int docbook(Buffer const &, std::ostream &, - OutputParams const &) const; + int docbook(Buffer const &, odocstream &, + OutputParams const &) const; /// void validate(LaTeXFeatures &) const; /// - void addPreview(lyx::graphics::PreviewLoader &) const; + void addPreview(graphics::PreviewLoader &) const; + /// + void addToToc(TocList &, Buffer const &) const; + /// + void updateLabels(Buffer const & buffer) const; + /// + bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const; protected: InsetInclude(InsetInclude const &); /// @@ -94,7 +116,7 @@ private: /// set the parameters void set(InsetCommandParams const & params, Buffer const &); /// get the text displayed on the button - std::string const getScreenLabel(Buffer const &) const; + docstring const getScreenLabel(Buffer const &) const; /// void write(std::ostream &) const; /// @@ -103,7 +125,7 @@ private: /// the parameters InsetCommandParams params_; /// holds the entity name that defines the file location (SGML) - std::string const include_label; + docstring const include_label; /// The pointer never changes although *preview_'s contents may. boost::scoped_ptr const preview_; @@ -114,8 +136,6 @@ private: }; -#include "mailinset.h" - class InsetIncludeMailer : public MailInset { public: /// @@ -137,4 +157,7 @@ private: InsetInclude & inset_; }; + +} // namespace lyx + #endif // INSETINCLUDE_H