]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetInfo.h
Update Win installer for new dictionary links. Untested.
[lyx.git] / src / insets / InsetInfo.h
index 811153afb048a08d2071d0edd566349d2a0c2e75..9af4d2fe4dc34f4f84ce8f03032c164915281cd1 100644 (file)
@@ -13,7 +13,6 @@
 #define INSET_INFO_H
 
 #include "InsetCollapsible.h"
-#include <QDate>
 
 namespace lyx {
 
@@ -98,8 +97,8 @@ icon: argument is the name of the LFUN such as "paste". The syntax is the same
 buffer: argument can be one of "name", "name-noext", "path", "class". This inset output the
     filename (with extension), filename (without extension), path, and textclass of this buffer.
 
-lyxinfo: argument must (presently) be "version". This inset outputs information
-    about the version of LyX currently in use.
+lyxinfo: argument must be "version" or "layoutformat". This outputs information
+    about the version of LyX currently in use or the current LyX layout format, respectively.
 
 vcs: argument can be one of "revision", "tree-revision", "author", "time", "date".
     This insets outputs revision control information, if available.
@@ -139,10 +138,6 @@ public:
                UNKNOWN_INFO,    // Invalid type
        };
        ///
-       docstring getDate(std::string const, QDate const date = QDate::currentDate()) const;
-       ///
-       docstring getTime(std::string const, QTime const time = QTime::currentTime()) const;
-       ///
        std::vector<std::pair<std::string,docstring>> getArguments(Buffer const * buf,
                                                                   std::string const &) const;
        ///
@@ -168,53 +163,66 @@ public:
        ///
        InsetInfo(Buffer * buf, std::string const & info = std::string());
        ///
-       InsetCode lyxCode() const { return INFO_CODE; }
+       InsetCode lyxCode() const override { return INFO_CODE; }
        ///
-       docstring layoutName() const;
+       docstring layoutName() const override;
        ///
-       Inset * editXY(Cursor & cur, int x, int y);
+       Inset * editXY(Cursor & cur, int x, int y) override;
        /** FIXME: we would like to do that, but then InsetText::updateBuffer breaks
         * on info insets. Do we need to run this method on InsetInfo contents?
         * Having a InsetInfo that hides an InsetText is really annoying, actually.
         */
-       ///bool isActive() const { return false; }
+       ///bool isActive() const override { return false; }
        ///
-       bool editable() const { return false; }
+       bool editable() const override { return false; }
        ///
-       bool hasSettings() const { return true; }
+       bool hasSettings() const override { return true; }
        ///
-       void read(Lexer & lex);
+       void read(Lexer & lex) override;
        ///
-       void write(std::ostream & os) const;
+       void write(std::ostream & os) const override;
        ///
-       bool validateModifyArgument(docstring const & argument) const {
+       bool validateModifyArgument(docstring const & argument) const override {
                return params_.validateArgument(&buffer(), argument); }
        ///
-       bool showInsetDialog(BufferView * bv) const;
+       bool showInsetDialog(BufferView * bv) const override;
        ///
-       bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
+       bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const override;
        ///
-       void doDispatch(Cursor & cur, FuncRequest & cmd);
+       void doDispatch(Cursor & cur, FuncRequest & cmd) override;
        /// Force inset into LTR environment if surroundings are RTL
-       bool forceLTR() const;
+       bool forceLTR(OutputParams const &) const override;
+       ///
+       bool forceLocalFontSwitch() const override;
        ///
        void setInfo(std::string const & info);
        ///
-       void updateBuffer(ParIterator const & it, UpdateType utype);
+       void updateBuffer(ParIterator const & it, UpdateType utype, bool const deleted = false) override;
+       ///
+       void metrics(MetricsInfo & mi, Dimension & dim) const override;
+       ///
+       void draw(PainterInfo & pi, int x, int y) const override;
+
+       ///
+       docstring toolTip(BufferView const & bv, int x, int y) const override;
        ///
-       docstring toolTip(BufferView const & bv, int x, int y) const;
+       std::string contextMenu(BufferView const &, int, int) const override;
        ///
-       std::string contextMenu(BufferView const &, int, int) const;
+       std::string contextMenuName() const override;
+       /// should paragraph indentation be omitted in any case?
+       bool neverIndent() const override { return true; }
        ///
-       std::string contextMenuName() const;
-       /// should paragraph indendation be omitted in any case?
-       bool neverIndent() const { return true; }
+       void validate(LaTeXFeatures & features) const override;
        ///
        InsetInfoParams params() const { return params_; }
+       /// Outputs the inset as DocBook, taking advantage of the metadata available in InsetInfoParams.
+       void docbook(XMLStream &, OutputParams const &) const override;
+       /// Outputs the inset as XHTML, taking advantage of the metadata available in InsetInfoParams.
+       docstring xhtml(XMLStream &, OutputParams const &) const override;
 
 private:
        ///
-       virtual Inset * clone() const { return new InsetInfo(*this); }
+       Inset * clone() const override { return new InsetInfo(*this); }
        ///
        void error(docstring const & err, Language const *);
        ///
@@ -223,6 +231,8 @@ private:
        void setText(docstring const & str, Language const *);
        // make sure that the other version of setText is still available.
        using InsetCollapsible::setText;
+       /// Compute the information
+       void build();
        ///
        bool initialized_;
        ///