correctly.
The floatlist type is now stored in the InsetCommand parameter "type".
Formerly it was stored in the command name, which is not possible anymore
because all command names need to be known.
The file format of .lyx files is still the same.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15489
a592a061-630c-0410-9148-
cb99ea01b6c8
InsetFloatList::InsetFloatList(string const & type)
: InsetCommand(InsetCommandParams("floatlist"), "toc")
{
InsetFloatList::InsetFloatList(string const & type)
: InsetCommand(InsetCommandParams("floatlist"), "toc")
{
+ setParam("type", from_ascii(type));
}
docstring const InsetFloatList::getScreenLabel(Buffer const & buf) const
{
FloatList const & floats = buf.params().getLyXTextClass().floats();
}
docstring const InsetFloatList::getScreenLabel(Buffer const & buf) const
{
FloatList const & floats = buf.params().getLyXTextClass().floats();
- FloatList::const_iterator it = floats[getCmdName()];
+ FloatList::const_iterator it = floats[to_ascii(getParam("type"))];
if (it != floats.end())
return buf.B_(it->second.listName());
else
if (it != floats.end())
return buf.B_(it->second.listName());
else
void InsetFloatList::write(Buffer const &, ostream & os) const
{
void InsetFloatList::write(Buffer const &, ostream & os) const
{
- os << "FloatList " << getCmdName() << "\n";
+ os << "FloatList " << to_ascii(getParam("type")) << "\n";
}
void InsetFloatList::read(Buffer const & buf, LyXLex & lex)
{
}
void InsetFloatList::read(Buffer const & buf, LyXLex & lex)
{
- InsetCommand::read(buf, lex);
- lyxerr[Debug::INSETS] << "FloatList::float_type: " << getCmdName() << endl;
- if (!buf.params().getLyXTextClass().floats().typeExist(getCmdName()))
- lex.printError("InsetFloatList: Unknown float type: `$$Token'");
+ FloatList const & floats = buf.params().getLyXTextClass().floats();
+ string token;
+
+ if (lex.eatLine()) {
+ setParam("type", lex.getDocString());
+ lyxerr[Debug::INSETS] << "FloatList::float_type: "
+ << to_ascii(getParam("type")) << endl;
+ if (!floats.typeExist(to_ascii(getParam("type"))))
+ lex.printError("InsetFloatList: Unknown float type: `$$Token'");
+ } else
+ lex.printError("InsetFloatList: Parse error: `$$Token'");
+ while (lex.isOK()) {
+ lex.next();
+ token = lex.getString();
+ if (token == "\\end_inset")
+ break;
+ }
+ if (token != "\\end_inset") {
+ lex.printError("Missing \\end_inset at this point. "
+ "Read: `$$Token'");
+ }
OutputParams const &) const
{
FloatList const & floats = buf.params().getLyXTextClass().floats();
OutputParams const &) const
{
FloatList const & floats = buf.params().getLyXTextClass().floats();
- FloatList::const_iterator cit = floats[getCmdName()];
+ FloatList::const_iterator cit = floats[to_ascii(getParam("type"))];
if (cit != floats.end()) {
if (cit->second.builtin()) {
if (cit != floats.end()) {
if (cit->second.builtin()) {
os << "%% unknown builtin float\n";
}
} else {
os << "%% unknown builtin float\n";
}
} else {
- // FIXME UNICODE
- os << "\\listof{" << from_ascii(getCmdName()) << "}{"
+ os << "\\listof{" << getParam("type") << "}{"
<< buf.B_(cit->second.listName()) << "}\n";
}
} else {
<< buf.B_(cit->second.listName()) << "}\n";
}
} else {
- // FIXME UNICODE
- os << "%%\\listof{" << from_ascii(getCmdName()) << "}{"
+ os << "%%\\listof{" << getParam("type") << "}{"
<< bformat(_("List of %1$s"), from_utf8(cit->second.name()))
<< "}\n";
}
<< bformat(_("List of %1$s"), from_utf8(cit->second.name()))
<< "}\n";
}
{
os << getScreenLabel(buffer) << "\n\n";
{
os << getScreenLabel(buffer) << "\n\n";
- toc::asciiTocList(getCmdName(), buffer, os);
+ toc::asciiTocList(to_ascii(getParam("type")), buffer, os);
void InsetFloatList::validate(LaTeXFeatures & features) const
{
void InsetFloatList::validate(LaTeXFeatures & features) const
{
- features.useFloat(getCmdName());
+ features.useFloat(to_ascii(getParam("type")));
private:
virtual std::auto_ptr<InsetBase> doClone() const
{
private:
virtual std::auto_ptr<InsetBase> doClone() const
{
- return std::auto_ptr<InsetBase>(new InsetFloatList(getCmdName()));
+ return std::auto_ptr<InsetBase>(new InsetFloatList(to_ascii(getParam("type"))));