]> git.lyx.org Git - features.git/commitdiff
Implement `InsetERTParams`
authorYuriy Skalko <yuriy.skalko@gmail.com>
Mon, 21 Dec 2020 16:03:45 +0000 (18:03 +0200)
committerYuriy Skalko <yuriy.skalko@gmail.com>
Fri, 15 Jan 2021 19:09:15 +0000 (21:09 +0200)
src/frontends/qt/GuiERT.cpp
src/insets/InsetCommand.cpp
src/insets/InsetERT.cpp
src/insets/InsetERT.h

index fece83ea766d73907ccb34416a6b6d6e16aa14cd..e3d792c884f529a0a99b45cfb90bce66fb9cb6b3 100644 (file)
@@ -42,7 +42,8 @@ docstring GuiERT::dialogToParams() const
 {
        InsetCollapsible::CollapseStatus const status = openRB->isChecked()
                ? InsetCollapsible::Open : InsetCollapsible::Collapsed;
-       return from_ascii(InsetERT::params2string(status));
+       InsetERTParams params(status);
+       return from_ascii(params.toString());
 }
 
 
index 0f3b33327bb218d78f77b3efdefdcde1f45c0062..b8ffd2ce43396d237712c1e88575f3e5d36907d3 100644 (file)
@@ -364,7 +364,7 @@ bool decodeInsetParam(string const & name, string & data,
                break;
        }
        case ERT_CODE: {
-               data = InsetERT::params2string(InsetCollapsible::Open);
+               data = InsetERTParams().toString();
                break;
        }
        case EXTERNAL_CODE: {
index 559fef2b092ea467f745beae6fd5408bfe912842..00eb1d04057eec937833e3fca99f4d218e9522f8 100644 (file)
@@ -192,10 +192,26 @@ InsetCollapsible::CollapseStatus InsetERT::string2params(string const & in)
 }
 
 
-string InsetERT::params2string(CollapseStatus status)
+void InsetERTParams::write(ostream & os) const
+{
+       os << status_;
+}
+
+
+void InsetERTParams::read(Lexer & lex)
+{
+       lex.setContext("InsetERTParams::read");
+       int s;
+       lex >> s;
+       status_ = static_cast<CollapseStatus>(s);
+}
+
+
+string InsetERTParams::toString() const
 {
        ostringstream data;
-       data << "ert" << ' ' << status;
+       data << "ert" << ' ';
+       write(data);
        return data.str();
 }
 
index 72220d07d0c7aeec383533c681a6071fd63cb9ce..57a8c4ed0ed8b6678076b0772ca6fa2d665a7d08 100644 (file)
 
 namespace lyx {
 
+struct InsetERTParams : public InsetParams {
+
+       typedef InsetCollapsible::CollapseStatus CollapseStatus;
+
+       explicit InsetERTParams(CollapseStatus status = CollapseStatus::Open)
+               : status_(status) {}
+       ///
+       void write(std::ostream & os) const override;
+       ///
+       void read(Lexer & lex) override;
+       ///
+       std::string toString() const override;
+       ///
+       CollapseStatus status_;
+};
+
+
 /** A collapsible text inset for LaTeX insertions.
 
   To write full ert (including styles and other insets) in a given
@@ -34,8 +51,6 @@ public:
        InsetERT(InsetERT const & old);
        ///
        static CollapseStatus string2params(std::string const &);
-       ///
-       static std::string params2string(CollapseStatus);
 
        std::string contextMenuName() const override
                { return "context-ert"; }