namespace Alert = frontend::Alert;
-Inset * createInset(Buffer & buf, FuncRequest const & cmd)
+Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd)
{
BufferParams const & params = buf.params();
case LFUN_FLEX_INSERT: {
string s = cmd.getArg(0);
- TextClass const & tclass = params.getTextClass();
- InsetLayout const & il = tclass.insetlayout(from_utf8(s));
- return new InsetFlex(params, il);
+ return new InsetFlex(params, params.documentClassPtr(), s);
}
case LFUN_NOTE_INSERT: {
case LFUN_FLOAT_INSERT: {
// check if the float type exists
string const argument = to_utf8(cmd.argument());
- if (params.getTextClass().floats().typeExist(argument))
+ if (params.documentClass().floats().typeExist(argument))
return new InsetFloat(params, argument);
lyxerr << "Non-existent float type: " << argument << endl;
}
case LFUN_FLOAT_WIDE_INSERT: {
// check if the float type exists
string const argument = to_utf8(cmd.argument());
- if (params.getTextClass().floats().typeExist(argument)) {
+ if (params.documentClass().floats().typeExist(argument)) {
auto_ptr<InsetFloat> p(new InsetFloat(params, argument));
p->wide(true, params);
return p.release();
InsetExternalParams iep;
InsetExternalMailer::string2params(to_utf8(cmd.argument()), buf, iep);
auto_ptr<InsetExternal> inset(new InsetExternal);
- inset->setParams(iep, buf);
+ inset->setParams(iep);
return inset.release();
}
} catch (ExceptionMessage const & message) {
if (message.type_ == ErrorException) {
+ // This should never happen!
Alert::error(message.title_, message.details_);
- LyX::cref().emergencyCleanup();
- support::abort();
+ LyX::cref().exit(1);
} else if (message.type_ == WarningException) {
Alert::warning(message.title_, message.details_);
return 0;
return 0;
}
+Inset * createInset(Buffer & buf, FuncRequest const & cmd)
+{
+ Inset * inset = createInsetHelper(buf, cmd);
+ if (inset)
+ inset->setBuffer(buf);
+ return inset;
+}
Inset * readInset(Lexer & lex, Buffer const & buf)
{
auto_ptr<Inset> inset;
- TextClass const & tclass = buf.params().getTextClass();
-
lex.next();
string tmptok = lex.getString();
lex.next();
return 0;
}
+ inset->setBuffer(const_cast<Buffer &>(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
} else if (tmptok == "Flex") {
lex.next();
string s = lex.getString();
- InsetLayout const & il = tclass.insetlayout(from_utf8(s));
- inset.reset(new InsetFlex(buf.params(), il));
+ inset.reset(new InsetFlex(buf.params(),
+ buf.params().documentClassPtr(), s));
} else if (tmptok == "Branch") {
inset.reset(new InsetBranch(buf.params(),
InsetBranchParams()));
return 0;
}
- inset->read(buf, lex);
+ inset->setBuffer(const_cast<Buffer &>(buf));
+ inset->read(lex);
}
-
return inset.release();
}