X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffactory.cpp;h=a03f88fa2838900d71da17959df81bcd4d2afc1d;hb=b874bdfd402a94428c8f5fe7ef2180146069120a;hp=2ffa85018c1666ab32b1a8b57d688aec03ed2433;hpb=c246076ed57e0ee80320477349d25330e9d24e64;p=lyx.git diff --git a/src/factory.cpp b/src/factory.cpp index 2ffa85018c..a03f88fa28 100644 --- a/src/factory.cpp +++ b/src/factory.cpp @@ -52,6 +52,7 @@ #include "insets/InsetPreview.h" #include "insets/InsetRef.h" #include "insets/InsetScript.h" +#include "insets/InsetSeparator.h" #include "insets/InsetSpace.h" #include "insets/InsetTabular.h" #include "insets/InsetTOC.h" @@ -64,13 +65,14 @@ #include "frontends/alert.h" #include "support/debug.h" -#include "support/lstrings.h" #include "support/ExceptionMessage.h" - #include "support/lassert.h" +#include "support/lstrings.h" +#include "support/unique_ptr.h" #include + using namespace std; using namespace lyx::support; @@ -99,6 +101,22 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) return new InsetNewpage(inp); } + case LFUN_SEPARATOR_INSERT: { + string const name = cmd.getArg(0); + InsetSeparatorParams inp; + if (name.empty() || name == "plain") + inp.kind = InsetSeparatorParams::PLAIN; + else if (name == "parbreak") + inp.kind = InsetSeparatorParams::PARBREAK; + else if (name == "latexpar") + inp.kind = InsetSeparatorParams::LATEXPAR; + else { + lyxerr << "Wrong argument for LyX function 'separator-insert'." << endl; + break; + } + return new InsetSeparator(inp); + } + case LFUN_FLEX_INSERT: { string s = cmd.getArg(0); return new InsetFlex(buf, s); @@ -292,7 +310,7 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) case EXTERNAL_CODE: { InsetExternalParams iep; InsetExternal::string2params(to_utf8(cmd.argument()), *buf, iep); - auto_ptr inset(new InsetExternal(buf)); + auto inset = make_unique(buf); inset->setBuffer(*buf); inset->setParams(iep); return inset.release(); @@ -301,7 +319,7 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) case GRAPHICS_CODE: { InsetGraphicsParams igp; InsetGraphics::string2params(to_utf8(cmd.argument()), *buf, igp); - auto_ptr inset(new InsetGraphics(buf)); + auto inset = make_unique(buf); inset->setParams(igp); return inset.release(); } @@ -497,7 +515,7 @@ Inset * readInset(Lexer & lex, Buffer * buf) if (lex.getString() != "\\begin_inset") LYXERR0("Buffer::readInset: Consistency check failed."); - auto_ptr inset; + unique_ptr inset; string tmptok; lex >> tmptok; @@ -523,7 +541,7 @@ Inset * readInset(Lexer & lex, Buffer * buf) //Worst case, we could put it in each case below. Better, we could //pass the lexer to the constructor and let the params be built there. InsetCommandParams inscmd(code); - inscmd.read(lex); + inscmd.Read(lex, buf); switch (code) { case BIBITEM_CODE: @@ -627,6 +645,8 @@ Inset * readInset(Lexer & lex, Buffer * buf) inset.reset(new InsetNewpage); } else if (tmptok == "Newline") { inset.reset(new InsetNewline); + } else if (tmptok == "Separator") { + inset.reset(new InsetSeparator); } else if (tmptok == "Argument") { inset.reset(new InsetArgument(buf, tmptok)); } else if (tmptok == "Float") {