From: Yuriy Skalko Date: Mon, 21 Dec 2020 16:03:45 +0000 (+0200) Subject: Implement `InsetERTParams` X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=e030390499cba2891cb2a0c0514fdabb0e2da7be;p=features.git Implement `InsetERTParams` --- diff --git a/src/frontends/qt/GuiERT.cpp b/src/frontends/qt/GuiERT.cpp index fece83ea76..e3d792c884 100644 --- a/src/frontends/qt/GuiERT.cpp +++ b/src/frontends/qt/GuiERT.cpp @@ -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()); } diff --git a/src/insets/InsetCommand.cpp b/src/insets/InsetCommand.cpp index 0f3b33327b..b8ffd2ce43 100644 --- a/src/insets/InsetCommand.cpp +++ b/src/insets/InsetCommand.cpp @@ -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: { diff --git a/src/insets/InsetERT.cpp b/src/insets/InsetERT.cpp index 559fef2b09..00eb1d0405 100644 --- a/src/insets/InsetERT.cpp +++ b/src/insets/InsetERT.cpp @@ -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(s); +} + + +string InsetERTParams::toString() const { ostringstream data; - data << "ert" << ' ' << status; + data << "ert" << ' '; + write(data); return data.str(); } diff --git a/src/insets/InsetERT.h b/src/insets/InsetERT.h index 72220d07d0..57a8c4ed0e 100644 --- a/src/insets/InsetERT.h +++ b/src/insets/InsetERT.h @@ -17,6 +17,23 @@ 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"; }