From: Richard Heck Date: Wed, 6 Aug 2014 15:43:22 +0000 (-0400) Subject: Fix bug #9236: After we recreate the DocumentClass, we have to apply X-Git-Tag: 2.2.0alpha1~1738 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=c2fdbbe01aa4f6c65bcfe391326ff35b8c6d219e;p=features.git Fix bug #9236: After we recreate the DocumentClass, we have to apply it to the document. --- diff --git a/src/frontends/qt4/GuiApplication.cpp b/src/frontends/qt4/GuiApplication.cpp index 660b122329..f1c2e90cc6 100644 --- a/src/frontends/qt4/GuiApplication.cpp +++ b/src/frontends/qt4/GuiApplication.cpp @@ -32,9 +32,12 @@ #include "Buffer.h" #include "BufferList.h" +#include "BufferParams.h" #include "BufferView.h" #include "CmdDef.h" #include "Color.h" +#include "CutAndPaste.h" +#include "ErrorList.h" #include "Font.h" #include "FuncRequest.h" #include "FuncStatus.h" @@ -54,6 +57,8 @@ #include "Thesaurus.h" #include "version.h" +#include "insets/InsetText.h" + #include "support/convert.h" #include "support/debug.h" #include "support/ExceptionMessage.h" @@ -1915,7 +1920,16 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr) istringstream ss(argument); Lexer lex; lex.setStream(ss); + + // See #9236 + // We need to make sure that, after we recreat the DocumentClass, + // which we do in readHeader, we apply it to the document itself. + DocumentClassConstPtr olddc = defaults.params().documentClassPtr(); int const unknown_tokens = defaults.readHeader(lex); + DocumentClassConstPtr newdc = defaults.params().documentClassPtr(); + ErrorList el; + InsetText & theinset = static_cast(defaults.inset()); + cap::switchBetweenClasses(olddc, newdc, theinset, el); if (unknown_tokens != 0) { lyxerr << "Warning in LFUN_BUFFER_SAVE_AS_DEFAULT!\n"