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 | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/Text3.cpp b/src/Text3.cpp index b78ba15ce9..ccd8de3c7a 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -409,7 +409,8 @@ static void outline(OutlineOp mode, Cursor & cur) cur.pit() = newpit - len; break; } - case OutlineIn: { + case OutlineIn: + case OutlineOut: { pit_type const len = distance(start, finish); buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1); for (; start != finish; ++start) { @@ -419,7 +420,8 @@ 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 && + if (lit->toclevel == (mode == OutlineIn ? + toclevel + 1 : toclevel - 1) && start->layout().labeltype == lit->labeltype) { start->setLayout(*lit); break; @@ -428,25 +430,6 @@ static void outline(OutlineOp mode, Cursor & cur) } break; } - case OutlineOut: { - 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; - } } } -- 2.39.2