mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-25 05:55:34 +00:00
Fix bug #7517. This restores some code removed when we started adding basic layouts we didn't recognize.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@38983 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
50fc0ea9bb
commit
7b4a9b95e3
@ -647,13 +647,25 @@ void switchBetweenClasses(DocumentClass const * const oldone,
|
|||||||
DocumentClass const & newtc = *newone;
|
DocumentClass const & newtc = *newone;
|
||||||
|
|
||||||
// layouts
|
// layouts
|
||||||
|
ParIterator it = par_iterator_begin(in);
|
||||||
ParIterator end = par_iterator_end(in);
|
ParIterator end = par_iterator_end(in);
|
||||||
for (ParIterator it = par_iterator_begin(in); it != end; ++it) {
|
// for remembering which layouts we've had to add
|
||||||
|
set<docstring> newlayouts;
|
||||||
|
for (; it != end; ++it) {
|
||||||
docstring const name = it->layout().name();
|
docstring const name = it->layout().name();
|
||||||
|
|
||||||
// the pasted text will keep their own layout name. If this layout does
|
// the pasted text will keep their own layout name. If this layout does
|
||||||
// not exist in the new document, it will behave like a standard layout.
|
// not exist in the new document, it will behave like a standard layout.
|
||||||
newtc.addLayoutIfNeeded(name);
|
bool const added_one = newtc.addLayoutIfNeeded(name);
|
||||||
|
if (added_one)
|
||||||
|
newlayouts.insert(name);
|
||||||
|
|
||||||
|
if (added_one || newlayouts.find(name) != newlayouts.end()) {
|
||||||
|
// Warn the user.
|
||||||
|
docstring const s = bformat(_("Layout `%1$s' was not found."), name);
|
||||||
|
errorlist.push_back(
|
||||||
|
ErrorItem(_("Layout Not Found"), s, it->id(), 0, it->size()));
|
||||||
|
}
|
||||||
|
|
||||||
if (in.usePlainLayout())
|
if (in.usePlainLayout())
|
||||||
it->setLayout(newtc.plainLayout());
|
it->setLayout(newtc.plainLayout());
|
||||||
|
@ -357,6 +357,13 @@ void Text::readParToken(Paragraph & par, Lexer & lex,
|
|||||||
// all unknown layouts such as frame will be added to document class article so that
|
// all unknown layouts such as frame will be added to document class article so that
|
||||||
// these layouts can keep their original names.
|
// these layouts can keep their original names.
|
||||||
tclass.addLayoutIfNeeded(layoutname);
|
tclass.addLayoutIfNeeded(layoutname);
|
||||||
|
bool const added_one = tclass.addLayoutIfNeeded(layoutname);
|
||||||
|
if (added_one) {
|
||||||
|
// Warn the user.
|
||||||
|
docstring const s = bformat(_("Layout `%1$s' was not found."), layoutname);
|
||||||
|
errorList.push_back(
|
||||||
|
ErrorItem(_("Layout Not Found"), s, par.id(), 0, par.size()));
|
||||||
|
}
|
||||||
|
|
||||||
par.setLayout(bp.documentClass()[layoutname]);
|
par.setLayout(bp.documentClass()[layoutname]);
|
||||||
|
|
||||||
|
@ -1199,10 +1199,13 @@ bool TextClass::load(string const & path) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DocumentClass::addLayoutIfNeeded(docstring const & n) const
|
bool DocumentClass::addLayoutIfNeeded(docstring const & n) const
|
||||||
{
|
{
|
||||||
if (!hasLayout(n))
|
if (hasLayout(n))
|
||||||
layoutlist_.push_back(createBasicLayout(n, true));
|
return false;
|
||||||
|
|
||||||
|
layoutlist_.push_back(createBasicLayout(n, true));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -373,7 +373,8 @@ public:
|
|||||||
/// a plain inset layout for use as a default
|
/// a plain inset layout for use as a default
|
||||||
static InsetLayout const & plainInsetLayout() { return plain_insetlayout_; }
|
static InsetLayout const & plainInsetLayout() { return plain_insetlayout_; }
|
||||||
/// add a new layout \c name if it does not exist in layoutlist_
|
/// add a new layout \c name if it does not exist in layoutlist_
|
||||||
void addLayoutIfNeeded(docstring const & name) const;
|
/// \return whether we had to add one.
|
||||||
|
bool addLayoutIfNeeded(docstring const & name) const;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////
|
||||||
// accessors
|
// accessors
|
||||||
|
@ -70,6 +70,8 @@ What's new
|
|||||||
|
|
||||||
- Fix output of decimally aligned columns in unviewed (on screen) tables.
|
- Fix output of decimally aligned columns in unviewed (on screen) tables.
|
||||||
|
|
||||||
|
- Inform user of unknown layouts caused by class change (bug 7571).
|
||||||
|
|
||||||
- Avoid LaTeX errors if font changing commands are used in the wrong mode
|
- Avoid LaTeX errors if font changing commands are used in the wrong mode
|
||||||
by assuring to switch to the right mode on export.
|
by assuring to switch to the right mode on export.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user