#include "factory.h"
-#include "Buffer.h"
-#include "BufferParams.h"
-#include "FloatList.h"
#include "FuncRequest.h"
-#include "Lexer.h"
#include "LyX.h"
-#include "TextClass.h"
#include "insets/InsetBibitem.h"
#include "insets/InsetBibtex.h"
#include "insets/InsetBranch.h"
#include "insets/InsetCaption.h"
#include "insets/InsetCitation.h"
+#include "insets/InsetCounter.h"
#include "insets/InsetFlex.h"
#include "insets/InsetERT.h"
#include "insets/InsetListings.h"
#include "insets/InsetHyperlink.h"
#include "insets/InsetInclude.h"
#include "insets/InsetIndex.h"
+#include "insets/InsetIndexMacro.cpp"
#include "insets/InsetInfo.h"
#include "insets/InsetIPA.h"
#include "insets/InsetIPAMacro.h"
#include "insets/InsetArgument.h"
#include "insets/InsetPhantom.h"
#include "insets/InsetPreview.h"
+#include "insets/InsetQuotes.h"
#include "insets/InsetRef.h"
#include "insets/InsetScript.h"
#include "insets/InsetSeparator.h"
#include "support/debug.h"
#include "support/ExceptionMessage.h"
-#include "support/lassert.h"
+#include "support/Lexer.h"
#include "support/lstrings.h"
#include "support/unique_ptr.h"
inp.kind = InsetNewpageParams::CLEARPAGE;
else if (name == "cleardoublepage")
inp.kind = InsetNewpageParams::CLEARDOUBLEPAGE;
+ else if (name == "nopagebreak")
+ inp.kind = InsetNewpageParams::NOPAGEBREAK;
return new InsetNewpage(inp);
}
string const arg2 = cmd.getArg(1);
if (arg1 != "deco") {
LYXERR0("LFUN_IPAMACRO_INSERT: wrong argument");
- return 0;
+ return nullptr;
}
return new InsetIPADeco(buf, arg2);
}
+ case LFUN_INDEXMACRO_INSERT: {
+ string const arg = cmd.getArg(0);
+ if (arg != "see" && arg != "seealso"
+ && arg != "subentry" && arg != "sortkey") {
+ LYXERR0("LFUN_INDEXMACRO_INSERT: wrong argument");
+ return nullptr;
+ }
+ return new InsetIndexMacro(buf, arg);
+ }
+
case LFUN_ERT_INSERT:
return new InsetERT(buf);
string arg = cmd.getArg(0);
if (arg.empty()) {
LYXERR0("argument-insert needs an argument!");
- return 0;
+ return nullptr;
}
return new InsetArgument(buf, arg);
}
if (argument == "figure" || argument == "table")
return new InsetWrap(buf, argument);
lyxerr << "Non-existent wrapfig type: " << argument << endl;
- return 0;
+ return nullptr;
}
case LFUN_INDEX_INSERT: {
- docstring arg = cmd.argument();
+ docstring const & arg = cmd.argument();
return new InsetIndex(buf, InsetIndexParams(arg));
}
case LFUN_TABULAR_INSERT: {
if (cmd.argument().empty())
- return 0;
+ return nullptr;
istringstream ss(to_utf8(cmd.argument()));
int r = 0, c = 0;
ss >> r >> c;
switch (code) {
case NO_CODE:
lyxerr << "No such inset '" << name << "'.";
- return 0;
+ return nullptr;
case BIBITEM_CODE: {
InsetCommandParams icp(code);
return new InsetCitation(buf, icp);
}
+ case COUNTER_CODE: {
+ InsetCommandParams icp(code);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetCounter(buf, icp);
+ }
+
case ERT_CODE: {
return new InsetERT(buf,
InsetERT::string2params(to_utf8(cmd.argument())));
}
case INDEX_CODE: {
- docstring arg = cmd.argument();
+ docstring const & arg = cmd.argument();
return new InsetIndex(buf, InsetIndexParams(arg));
}
default:
lyxerr << "Inset '" << name << "' not permitted with LFUN_INSET_INSERT."
<< endl;
- return 0;
+ return nullptr;
}
} //end LFUN_INSET_INSERT
}
return new InsetSpace(isp);
}
- break;
default:
break;
lyx_exit(1);
} else if (message.type_ == WarningException) {
Alert::warning(message.title_, message.details_);
- return 0;
+ return nullptr;
}
}
- return 0;
+ return nullptr;
}
case CITE_CODE:
inset.reset(new InsetCitation(buf, inscmd));
break;
+ case COUNTER_CODE:
+ inset.reset(new InsetCounter(buf, inscmd));
+ break;
case HYPERLINK_CODE:
inset.reset(new InsetHyperlink(buf, inscmd));
break;
break;
case REF_CODE:
if (inscmd["name"].empty() && inscmd["reference"].empty())
- return 0;
+ return nullptr;
inset.reset(new InsetRef(buf, inscmd));
break;
case TOC_CODE:
<< "'" << endl;
while (lex.isOK() && lex.getString() != "\\end_inset")
lex.next();
- return 0;
+ return nullptr;
}
inset->setBuffer(*buf);
} else {
inset.reset(new InsetFloat(buf, string()));
} else if (tmptok == "Wrap") {
lex.next();
- string tmptok = lex.getString();
- inset.reset(new InsetWrap(buf, tmptok));
+ string tmptok2 = lex.getString();
+ inset.reset(new InsetWrap(buf, tmptok2));
} else if (tmptok == "Caption") {
lex.eatLine();
string s = lex.getString();
inset.reset(new InsetCaption(buf, s));
} else if (tmptok == "Index") {
inset.reset(new InsetIndex(buf, InsetIndexParams()));
+ } else if (tmptok == "IndexMacro") {
+ string s = lex.getString();
+ inset.reset(new InsetIndexMacro(buf, s));
} else if (tmptok == "FloatList") {
inset.reset(new InsetFloatList(buf));
} else if (tmptok == "Info") {
<< "'" << endl;
while (lex.isOK() && lex.getString() != "\\end_inset")
lex.next();
- return 0;
+ return nullptr;
}
// Set the buffer reference for proper parsing of some insets
- // (InsetCollapsable for example)
+ // (InsetCollapsible for example)
inset->setBuffer(*buf);
inset->read(lex);
// Set again the buffer for insets that are created inside this inset