]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
Kill indexing into the list of layouts.
[lyx.git] / src / Text3.cpp
index e7bbb9b9b192ac602e85f587bf55023d75e8d682..d434eb5aaf25f5029e3e24f53085b7a2013653ba 100644 (file)
@@ -320,14 +320,17 @@ static void outline(OutlineOp mode, Cursor & cur)
                        pars.erase(start, finish);
                        return;
                }
-               case OutlineIn:
-                       buf.undo().recordUndo(cur);
+               case OutlineIn: {
+                       pit_type const len = distance(start, finish);
+                       buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1);
                        for (; start != finish; ++start) {
                                toclevel = start->layout()->toclevel;
                                if (toclevel == Layout::NOT_IN_TOC)
                                        continue;
-                               for (size_t i = 0; i != tc.layoutCount(); ++i) {
-                                       LayoutPtr const & lt = tc.layout(i);
+                               DocumentClass::const_iterator lit = tc.begin();
+                               DocumentClass::const_iterator len = tc.end();
+                               for (; lit != len; ++lit) {
+                                       LayoutPtr const & lt = *lit;
                                        if (lt->toclevel == toclevel + 1 &&
                                            start->layout()->labeltype == lt->labeltype) {
                                                start->setLayout(lt);
@@ -336,15 +339,18 @@ static void outline(OutlineOp mode, Cursor & cur)
                                }
                        }
                        return;
-
-               case OutlineOut:
-                       buf.undo().recordUndo(cur);
+               }
+               case OutlineOut: {
+                       pit_type const len = distance(start, finish);
+                       buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1);
                        for (; start != finish; ++start) {
                                toclevel = start->layout()->toclevel;
                                if (toclevel == Layout::NOT_IN_TOC)
                                        continue;
-                               for (size_t i = 0; i != tc.layoutCount(); ++i) {
-                                       LayoutPtr const & lt = tc.layout(i);
+                               DocumentClass::const_iterator lit = tc.begin();
+                               DocumentClass::const_iterator len = tc.end();
+                               for (; lit != len; ++lit) {
+                                       LayoutPtr const & lt = *lit;
                                        if (lt->toclevel == toclevel - 1 &&
                                                start->layout()->labeltype == lt->labeltype) {
                                                        start->setLayout(lt);
@@ -353,6 +359,7 @@ static void outline(OutlineOp mode, Cursor & cur)
                                }
                        }
                        return;
+               }
        }
 }
 
@@ -851,7 +858,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        */
                        if (cur.selection())
                                cutSelection(cur, true, false);
-                       insertInset(cur, inset);
+                       cur.insert(inset);
                        cur.posForward();
                }
                break;
@@ -932,7 +939,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        pasteFromStack(cur, bv->buffer().errorList("Paste"),
                                       convert<unsigned int>(arg));
                } else {
-                       Clipboard::GraphicsType type;
+                       Clipboard::GraphicsType type = Clipboard::AnyGraphicsType;
                        if (arg == "pdf")
                                type = Clipboard::PdfGraphicsType;
                        else if (arg == "png")
@@ -1332,7 +1339,6 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        }
 #if 0
        case LFUN_LIST_INSERT:
-       case LFUN_THEOREM_INSERT:
 #endif
        case LFUN_CAPTION_INSERT:
        case LFUN_FOOTNOTE_INSERT:
@@ -1923,9 +1929,6 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_LIST_INSERT:
                code = LIST_CODE;
                break;
-       case LFUN_THEOREM_INSERT:
-               code = THEOREM_CODE;
-               break;
 #endif
        case LFUN_CAPTION_INSERT:
                code = CAPTION_CODE;