]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
Revert 23154.
[lyx.git] / src / Text3.cpp
index b8e3ce0a200f54b4d061ed9a046c54c0bda2d016..5f2abc8847b562b08cf56af7319b30c2575ed222 100644 (file)
@@ -219,10 +219,8 @@ static bool doInsertInset(Cursor & cur, Text * text,
        InsetText * insetText = dynamic_cast<InsetText *>(inset);
        if (insetText && !insetText->allowMultiPar() || cur.lastpit() == 0) {
                // reset first par to default
-               LayoutPtr const layout = insetText->useEmptyLayout()
-                       ? bparams.getTextClass().emptyLayout()
-                       : bparams.getTextClass().defaultLayout();
-               cur.text()->paragraphs().begin()->layout(layout);
+               cur.text()->paragraphs().begin()
+                       ->setEmptyOrDefaultLayout(bparams.getTextClass());
                cur.pos() = 0;
                cur.pit() = 0;
                // Merge multiple paragraphs -- hack
@@ -268,10 +266,7 @@ static void outline(OutlineOp mode, Cursor & cur)
        ParagraphList::iterator finish = start;
        ParagraphList::iterator end = pars.end();
 
-       TextClass::const_iterator lit =
-               buf.params().getTextClass().begin();
-       TextClass::const_iterator const lend =
-               buf.params().getTextClass().end();
+       TextClass const & tc = buf.params().getTextClass();
 
        int const thistoclevel = start->layout()->toclevel;
        int toclevel;
@@ -346,20 +341,22 @@ static void outline(OutlineOp mode, Cursor & cur)
                }
                case OutlineIn:
                        buf.undo().recordUndo(cur);
-                       for (; lit != lend; ++lit) {
-                               if ((*lit)->toclevel == thistoclevel + 1 &&
-                                   start->layout()->labeltype == (*lit)->labeltype) {
-                                       start->layout((*lit));
+                       for (size_t i = 0; i != tc.layoutCount(); ++i) {
+                               LayoutPtr const & lt = tc.layout(i);
+                               if (lt->toclevel == thistoclevel + 1 &&
+                                   start->layout()->labeltype == lt->labeltype) {
+                                       start->setLayout(lt);
                                        break;
                                }
                        }
                        break;
                case OutlineOut:
                        buf.undo().recordUndo(cur);
-                       for (; lit != lend; ++lit) {
-                               if ((*lit)->toclevel == thistoclevel - 1 &&
-                                   start->layout()->labeltype == (*lit)->labeltype) {
-                                       start->layout((*lit));
+                       for (size_t i = 0; i != tc.layoutCount(); ++i) {
+                               LayoutPtr const & lt = tc.layout(i);
+                               if (lt->toclevel == thistoclevel - 1 &&
+                                   start->layout()->labeltype == lt->labeltype) {
+                                       start->setLayout(lt);
                                        break;
                                }
                        }
@@ -1392,11 +1389,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                // add a separate paragraph for the caption inset
                pars.push_back(Paragraph());
                pars.back().setInsetOwner(pars[0].inInset());
-               if (pars.back().useEmptyLayout())
-                       pars.back().layout(tclass.emptyLayout());
-               else
-                       pars.back().layout(tclass.defaultLayout());
-
+               pars.back().setEmptyOrDefaultLayout(tclass);
                int cap_pit = pars.size() - 1;
 
                // if an empty inset was created, we create an additional empty
@@ -1405,10 +1398,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (!content) {
                        pars.push_back(Paragraph());
                        pars.back().setInsetOwner(pars[0].inInset());
-                       if (pars.back().useEmptyLayout())
-                               pars.back().layout(tclass.emptyLayout());
-                       else
-                               pars.back().layout(tclass.defaultLayout());
+                       pars.back().setEmptyOrDefaultLayout(tclass);
                }
 
                // reposition the cursor to the caption
@@ -1956,7 +1946,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_FLEX_INSERT: {
                code = FLEX_CODE;
                string s = cmd.getArg(0);
-               InsetLayout il =  cur.buffer().params().getTextClass().insetlayout(from_utf8(s));
+               InsetLayout il =  cur.buffer().params().getTextClass().insetLayout(from_utf8(s));
                if (il.lyxtype() != "charstyle" &&
                    il.lyxtype() != "custom" &&
                    il.lyxtype() != "element" &&