From 4cfc110d4aeb28c4d570ec47ab1607ad7672e792 Mon Sep 17 00:00:00 2001 From: Scott Kostyshak Date: Sat, 7 Jun 2014 00:41:20 -0400 Subject: [PATCH] Combine OutlineIn and OutlineOut blocks They differ only by adding/subtracting 1. --- src/Text3.cpp | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/src/Text3.cpp b/src/Text3.cpp index b78ba15ce9..ccd8de3c7a 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -409,25 +409,7 @@ static void outline(OutlineOp mode, Cursor & cur) cur.pit() = newpit - len; break; } - case OutlineIn: { - pit_type const len = distance(start, finish); - buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1); - for (; start != finish; ++start) { - toclevel = buf.text().getTocLevel(distance(bgn, start)); - if (toclevel == Layout::NOT_IN_TOC) - continue; - DocumentClass::const_iterator lit = tc.begin(); - DocumentClass::const_iterator len = tc.end(); - for (; lit != len; ++lit) { - if (lit->toclevel == toclevel + 1 && - start->layout().labeltype == lit->labeltype) { - start->setLayout(*lit); - break; - } - } - } - break; - } + case OutlineIn: case OutlineOut: { pit_type const len = distance(start, finish); buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1); @@ -438,10 +420,11 @@ static void outline(OutlineOp mode, Cursor & cur) DocumentClass::const_iterator lit = tc.begin(); DocumentClass::const_iterator len = tc.end(); for (; lit != len; ++lit) { - if (lit->toclevel == toclevel - 1 && - start->layout().labeltype == lit->labeltype) { - start->setLayout(*lit); - break; + if (lit->toclevel == (mode == OutlineIn ? + toclevel + 1 : toclevel - 1) && + start->layout().labeltype == lit->labeltype) { + start->setLayout(*lit); + break; } } }