X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffactory.cpp;h=91bce06e94540c4b8d7657477afbdd04d6a51d5c;hb=27d580b5c057d565b9b4b50c811f6e1fab7f1246;hp=5773a9d3f48d6439baacaac27138e815b9519c4b;hpb=629b07b72ffc243247b75fd2f02cec930154b0d6;p=lyx.git diff --git a/src/factory.cpp b/src/factory.cpp index 5773a9d3f4..91bce06e94 100644 --- a/src/factory.cpp +++ b/src/factory.cpp @@ -75,9 +75,9 @@ namespace lyx { namespace Alert = frontend::Alert; -Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) +Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd) { - BufferParams const & params = buf.params(); + BufferParams const & params = buf->params(); try { @@ -151,7 +151,7 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) case LFUN_FLOAT_INSERT: { // check if the float type exists string const argument = to_utf8(cmd.argument()); - if (buf.params().documentClass().floats().typeExist(argument)) + if (params.documentClass().floats().typeExist(argument)) return new InsetFloat(buf, argument); lyxerr << "Non-existent float type: " << argument << endl; } @@ -161,7 +161,7 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) string const argument = to_utf8(cmd.argument()); if (params.documentClass().floats().typeExist(argument)) { auto_ptr p(new InsetFloat(buf, argument)); - p->setWide(true, params); + p->setWide(true); return p.release(); } lyxerr << "Non-existent float type: " << argument << endl; @@ -184,7 +184,7 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) case LFUN_NOMENCL_INSERT: { InsetCommandParams icp(NOMENCL_CODE); icp["symbol"] = cmd.argument(); - return new InsetNomencl(icp); + return new InsetNomencl(buf, icp); } case LFUN_TABULAR_INSERT: { @@ -206,14 +206,17 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) case LFUN_INDEX_PRINT: { InsetCommandParams icp(INDEX_PRINT_CODE); icp["type"] = cmd.argument(); - return new InsetPrintIndex(icp); + return new InsetPrintIndex(buf, icp); } - case LFUN_NOMENCL_PRINT: - return new InsetPrintNomencl(InsetCommandParams(NOMENCL_PRINT_CODE)); + case LFUN_NOMENCL_PRINT: { + InsetCommandParams icp(NOMENCL_PRINT_CODE); + icp["set_width"] = from_ascii("auto"); + return new InsetPrintNomencl(buf, icp); + } case LFUN_TOC_INSERT: - return new InsetTOC(InsetCommandParams(TOC_CODE)); + return new InsetTOC(buf, InsetCommandParams(TOC_CODE)); case LFUN_INFO_INSERT: { InsetInfo * inset = new InsetInfo(buf, to_utf8(cmd.argument())); @@ -244,7 +247,7 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) case CITE_CODE: { InsetCommandParams icp(code); InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetCitation(icp); + return new InsetCitation(buf, icp); } case ERT_CODE: { @@ -260,16 +263,16 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) case EXTERNAL_CODE: { InsetExternalParams iep; - InsetExternal::string2params(to_utf8(cmd.argument()), buf, iep); + InsetExternal::string2params(to_utf8(cmd.argument()), *buf, iep); auto_ptr inset(new InsetExternal(buf)); - inset->setBuffer(buf); + inset->setBuffer(*buf); inset->setParams(iep); return inset.release(); } case GRAPHICS_CODE: { InsetGraphicsParams igp; - InsetGraphics::string2params(to_utf8(cmd.argument()), buf, igp); + InsetGraphics::string2params(to_utf8(cmd.argument()), *buf, igp); auto_ptr inset(new InsetGraphics(buf)); inset->setParams(igp); return inset.release(); @@ -278,13 +281,13 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) case HYPERLINK_CODE: { InsetCommandParams icp(code); InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetHyperlink(icp); + return new InsetHyperlink(buf, icp); } case INCLUDE_CODE: { InsetCommandParams icp(code); InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetInclude(icp); + return new InsetInclude(buf, icp); } case INDEX_CODE: { @@ -295,19 +298,19 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) case INDEX_PRINT_CODE: { InsetCommandParams icp(code); InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetPrintIndex(icp); + return new InsetPrintIndex(buf, icp); } case NOMENCL_CODE: { InsetCommandParams icp(code); InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetNomencl(icp); + return new InsetNomencl(buf, icp); } case LABEL_CODE: { InsetCommandParams icp(code); InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetLabel(icp); + return new InsetLabel(buf, icp); } case REF_CODE: { @@ -325,7 +328,7 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) case TOC_CODE: { InsetCommandParams icp(code); InsetCommand::string2params(name, to_utf8(cmd.argument()), icp); - return new InsetTOC(icp); + return new InsetTOC(buf, icp); } case VSPACE_CODE: { @@ -384,22 +387,22 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) else if (name == "hrulefill") isp.kind = InsetSpaceParams::HRULEFILL; else if (name == "hspace") { - if (len.empty() || !isValidLength(len)) { + if (len.empty() || !isValidGlueLength(len)) { lyxerr << "LyX function 'space-insert hspace' " << "needs a valid length argument." << endl; break; } isp.kind = InsetSpaceParams::CUSTOM; - isp.length = Length(len); + isp.length = GlueLength(len); } else if (name == "hspace*") { - if (len.empty() || !isValidLength(len)) { + if (len.empty() || !isValidGlueLength(len)) { lyxerr << "LyX function 'space-insert hspace*' " << "needs a valid length argument." << endl; break; } isp.kind = InsetSpaceParams::CUSTOM_PROTECTED; - isp.length = Length(len); + isp.length = GlueLength(len); } else { lyxerr << "Wrong argument for LyX function 'space-insert'." << endl; @@ -428,16 +431,16 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd) } -Inset * createInset(Buffer & buf, FuncRequest const & cmd) +Inset * createInset(Buffer * buf, FuncRequest const & cmd) { Inset * inset = createInsetHelper(buf, cmd); if (inset) - inset->setBuffer(buf); + inset->setBuffer(*buf); return inset; } -Inset * readInset(Lexer & lex, Buffer const & buf) +Inset * readInset(Lexer & lex, Buffer * buf) { // consistency check if (lex.getString() != "\\begin_inset") @@ -479,25 +482,25 @@ Inset * readInset(Lexer & lex, Buffer const & buf) inset.reset(new InsetBibtex(buf, inscmd)); break; case CITE_CODE: - inset.reset(new InsetCitation(inscmd)); + inset.reset(new InsetCitation(buf, inscmd)); break; case HYPERLINK_CODE: - inset.reset(new InsetHyperlink(inscmd)); + inset.reset(new InsetHyperlink(buf, inscmd)); break; case INCLUDE_CODE: - inset.reset(new InsetInclude(inscmd)); + inset.reset(new InsetInclude(buf, inscmd)); break; case INDEX_PRINT_CODE: - inset.reset(new InsetPrintIndex(inscmd)); + inset.reset(new InsetPrintIndex(buf, inscmd)); break; case LABEL_CODE: - inset.reset(new InsetLabel(inscmd)); + inset.reset(new InsetLabel(buf, inscmd)); break; case NOMENCL_CODE: - inset.reset(new InsetNomencl(inscmd)); + inset.reset(new InsetNomencl(buf, inscmd)); break; case NOMENCL_PRINT_CODE: - inset.reset(new InsetPrintNomencl(inscmd)); + inset.reset(new InsetPrintNomencl(buf, inscmd)); break; case REF_CODE: if (inscmd["name"].empty() && inscmd["reference"].empty()) @@ -505,7 +508,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf) inset.reset(new InsetRef(buf, inscmd)); break; case TOC_CODE: - inset.reset(new InsetTOC(inscmd)); + inset.reset(new InsetTOC(buf, inscmd)); break; case NO_CODE: default: @@ -515,7 +518,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf) lex.next(); return 0; } - inset->setBuffer(const_cast(buf)); + inset->setBuffer(*buf); } else { // FIXME This branch should be made to use inset codes as the preceding // branch does. Unfortunately, that will take some doing. It requires @@ -526,13 +529,13 @@ Inset * readInset(Lexer & lex, Buffer const & buf) if (tmptok == "Quotes") { inset.reset(new InsetQuotes(buf)); } else if (tmptok == "External") { - inset.reset(new InsetExternal(const_cast(buf))); + inset.reset(new InsetExternal(buf)); } else if (tmptok == "FormulaMacro") { - inset.reset(new MathMacroTemplate); + inset.reset(new MathMacroTemplate(buf)); } else if (tmptok == "Formula") { - inset.reset(new InsetMathHull); + inset.reset(new InsetMathHull(buf)); } else if (tmptok == "Graphics") { - inset.reset(new InsetGraphics(const_cast(buf))); + inset.reset(new InsetGraphics(buf)); } else if (tmptok == "Note") { inset.reset(new InsetNote(buf, tmptok)); } else if (tmptok == "Box") { @@ -552,7 +555,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf) } else if (tmptok == "space") { inset.reset(new InsetSpace); } else if (tmptok == "Tabular") { - inset.reset(new InsetTabular(const_cast(buf))); + inset.reset(new InsetTabular(buf)); } else if (tmptok == "Text") { inset.reset(new InsetText(buf)); } else if (tmptok == "VSpace") { @@ -580,7 +583,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf) } else if (tmptok == "Index") { inset.reset(new InsetIndex(buf, InsetIndexParams())); } else if (tmptok == "FloatList") { - inset.reset(new InsetFloatList); + inset.reset(new InsetFloatList(buf)); } else if (tmptok == "Info") { inset.reset(new InsetInfo(buf)); } else { @@ -593,11 +596,11 @@ Inset * readInset(Lexer & lex, Buffer const & buf) // Set the buffer reference for proper parsing of some insets // (InsetCollapsable for example) - inset->setBuffer(const_cast(buf)); + inset->setBuffer(*buf); inset->read(lex); // Set again the buffer for insets that are created inside this inset // (InsetMathHull for example). - inset->setBuffer(const_cast(buf)); + inset->setBuffer(*buf); } return inset.release(); }