X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffactory.cpp;h=bdae9a01f9f660d5e555f89e2e980157f4a5f645;hb=176123afcf4484f1a0859dee515690cfd45bc1b6;hp=91bce06e94540c4b8d7657477afbdd04d6a51d5c;hpb=882e2eeb7bcea230c24eaa69cd6a3e274369adde;p=lyx.git diff --git a/src/factory.cpp b/src/factory.cpp index 91bce06e94..bdae9a01f9 100644 --- a/src/factory.cpp +++ b/src/factory.cpp @@ -45,9 +45,11 @@ #include "insets/InsetNewpage.h" #include "insets/InsetNomencl.h" #include "insets/InsetNote.h" -#include "insets/InsetOptArg.h" +#include "insets/InsetArgument.h" #include "insets/InsetPhantom.h" +#include "insets/InsetPreview.h" #include "insets/InsetRef.h" +#include "insets/InsetScript.h" #include "insets/InsetSpace.h" #include "insets/InsetTabular.h" #include "insets/InsetTOC.h" @@ -77,14 +79,9 @@ namespace Alert = frontend::Alert; Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) { - BufferParams const & params = buf->params(); - try { - switch (cmd.action) { - - case LFUN_LINE_INSERT: - return new InsetLine; + switch (cmd.action()) { case LFUN_NEWPAGE_INSERT: { string const name = cmd.getArg(0); @@ -145,27 +142,33 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) case LFUN_MARGINALNOTE_INSERT: return new InsetMarginal(buf); - case LFUN_OPTIONAL_INSERT: - return new InsetOptArg(buf); + case LFUN_ARGUMENT_INSERT: + return new InsetArgument(buf); case LFUN_FLOAT_INSERT: { - // check if the float type exists - string const argument = to_utf8(cmd.argument()); - if (params.documentClass().floats().typeExist(argument)) - return new InsetFloat(buf, argument); - lyxerr << "Non-existent float type: " << argument << endl; + string argument = to_utf8(cmd.argument()); + if (!argument.empty()) { + if (!contains(argument, "sideways")) { + if (!contains(argument, "wide")) + argument += "\nwide false"; + argument += "\nsideways false"; + } + } + return new InsetFloat(buf, argument); } case LFUN_FLOAT_WIDE_INSERT: { - // check if the float type exists - string const argument = to_utf8(cmd.argument()); - if (params.documentClass().floats().typeExist(argument)) { - auto_ptr p(new InsetFloat(buf, argument)); - p->setWide(true); - return p.release(); + string argument = to_utf8(cmd.argument()); + if (!argument.empty()) { + if (!contains(argument, "sideways")) { + if (!contains(argument, "wide")) + argument += "\nwide true"; + argument += "\nsideways false"; + } } - lyxerr << "Non-existent float type: " << argument << endl; - return 0; + InsetFloat * fl = new InsetFloat(buf, argument); + fl->setWide(true); + return fl; } case LFUN_WRAP_INSERT: { @@ -215,15 +218,21 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) return new InsetPrintNomencl(buf, icp); } - case LFUN_TOC_INSERT: - return new InsetTOC(buf, InsetCommandParams(TOC_CODE)); - case LFUN_INFO_INSERT: { InsetInfo * inset = new InsetInfo(buf, to_utf8(cmd.argument())); inset->updateInfo(); return inset; } + case LFUN_PREVIEW_INSERT: + return new InsetPreview(buf); + + case LFUN_SCRIPT_INSERT: { + InsetScriptParams isp; + InsetScript::string2params("script script " + to_utf8(cmd.argument()), isp); + return new InsetScript(buf, isp); + } + case LFUN_INSET_INSERT: { string const name = cmd.getArg(0); InsetCode code = insetCode(name); @@ -234,19 +243,19 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) case BIBITEM_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); return new InsetBibitem(buf, icp); } case BIBTEX_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); return new InsetBibtex(buf, icp); } case CITE_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); return new InsetCitation(buf, icp); } @@ -254,12 +263,6 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) return new InsetERT(buf, InsetERT::string2params(to_utf8(cmd.argument()))); } - - case LISTINGS_CODE: { - InsetListingsParams par; - InsetListings::string2params(to_utf8(cmd.argument()), par); - return new InsetListings(buf, par); - } case EXTERNAL_CODE: { InsetExternalParams iep; @@ -280,13 +283,13 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) case HYPERLINK_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); return new InsetHyperlink(buf, icp); } case INCLUDE_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); return new InsetInclude(buf, icp); } @@ -297,28 +300,46 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) case INDEX_PRINT_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); return new InsetPrintIndex(buf, icp); } - case NOMENCL_CODE: { + case LABEL_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetNomencl(buf, icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); + return new InsetLabel(buf, icp); } - case LABEL_CODE: { + case LINE_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetLabel(buf, icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); + return new InsetLine(buf, icp); + } + + case LISTINGS_CODE: { + InsetListingsParams par; + InsetListings::string2params(to_utf8(cmd.argument()), par); + return new InsetListings(buf, par); + } + + case NOMENCL_CODE: { + InsetCommandParams icp(code); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); + return new InsetNomencl(buf, icp); } case REF_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); return new InsetRef(buf, icp); } + case SCRIPT_CODE: { + InsetScriptParams isp; + InsetScript::string2params(to_utf8(cmd.argument()), isp); + return new InsetScript(buf, isp); + } + case SPACE_CODE: { InsetSpaceParams isp; InsetSpace::string2params(to_utf8(cmd.argument()), isp); @@ -327,7 +348,7 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) case TOC_CODE: { InsetCommandParams icp(code); - InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); + InsetCommand::string2params(to_utf8(cmd.argument()), icp); return new InsetTOC(buf, icp); } @@ -336,6 +357,9 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) InsetVSpace::string2params(to_utf8(cmd.argument()), vspace); return new InsetVSpace(vspace); } + + case PREVIEW_CODE: + return new InsetPreview(buf); default: lyxerr << "Inset '" << name << "' not permitted with LFUN_INSET_INSERT." @@ -496,6 +520,9 @@ Inset * readInset(Lexer & lex, Buffer * buf) case LABEL_CODE: inset.reset(new InsetLabel(buf, inscmd)); break; + case LINE_CODE: + inset.reset(new InsetLine(buf, inscmd)); + break; case NOMENCL_CODE: inset.reset(new InsetNomencl(buf, inscmd)); break; @@ -552,6 +579,8 @@ Inset * readInset(Lexer & lex, Buffer * buf) inset.reset(new InsetERT(buf)); } else if (tmptok == "listings") { inset.reset(new InsetListings(buf)); + } else if (tmptok == "script") { + inset.reset(new InsetScript(buf)); } else if (tmptok == "space") { inset.reset(new InsetSpace); } else if (tmptok == "Tabular") { @@ -568,12 +597,10 @@ Inset * readInset(Lexer & lex, Buffer * buf) inset.reset(new InsetNewpage); } else if (tmptok == "Newline") { inset.reset(new InsetNewline); - } else if (tmptok == "OptArg") { - inset.reset(new InsetOptArg(buf)); + } else if (tmptok == "Argument") { + inset.reset(new InsetArgument(buf)); } else if (tmptok == "Float") { - lex.next(); - string tmptok = lex.getString(); - inset.reset(new InsetFloat(buf, tmptok)); + inset.reset(new InsetFloat(buf, string())); } else if (tmptok == "Wrap") { lex.next(); string tmptok = lex.getString(); @@ -586,6 +613,8 @@ Inset * readInset(Lexer & lex, Buffer * buf) inset.reset(new InsetFloatList(buf)); } else if (tmptok == "Info") { inset.reset(new InsetInfo(buf)); + } else if (tmptok == "Preview") { + inset.reset(new InsetPreview(buf)); } else { lyxerr << "unknown Inset type '" << tmptok << "'" << endl;