X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FText3.cpp;h=4c99c15774707dfe432fed950f1eae836d5185d4;hb=ecdeffb52b1dad2f56e0e4210d0a040e807e2caf;hp=2092ac6ac0fb19c52a0278f209a0f818ee047fba;hpb=38f885867178406083ded5b9c7f0a6ddf1b656ec;p=lyx.git diff --git a/src/Text3.cpp b/src/Text3.cpp index 2092ac6ac0..4c99c15774 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -345,8 +345,6 @@ static void outline(OutlineOp mode, Cursor & cur) ParagraphList::iterator finish = start; ParagraphList::iterator const end = pars.end(); - DocumentClass const & tc = buf.params().documentClass(); - int const thistoclevel = buf.text().getTocLevel(distance(bgn, start)); int toclevel; @@ -417,12 +415,17 @@ static void outline(OutlineOp mode, Cursor & cur) toclevel = buf.text().getTocLevel(distance(bgn, start)); if (toclevel == Layout::NOT_IN_TOC) continue; + + DocumentClass const & tc = buf.params().documentClass(); DocumentClass::const_iterator lit = tc.begin(); DocumentClass::const_iterator len = tc.end(); + int const newtoclevel = + (mode == OutlineIn ? toclevel + 1 : toclevel - 1); + LabelType const oldlabeltype = start->layout().labeltype; + for (; lit != len; ++lit) { - if (lit->toclevel == (mode == OutlineIn ? - toclevel + 1 : toclevel - 1) && - start->layout().labeltype == lit->labeltype) { + if (lit->toclevel == newtoclevel && + lit->labeltype == oldlabeltype) { start->setLayout(*lit); break; }