]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
Hopefully this works on other archs too.
[lyx.git] / src / Text3.cpp
index 18ec4777ede673c72ab0bc88d36b403d575ccfb9..86d1ba6a11416e14845f576ef4675395058d0f27 100644 (file)
@@ -41,7 +41,6 @@
 #include "Lexer.h"
 #include "LyXRC.h"
 #include "Paragraph.h"
-#include "paragraph_funcs.h"
 #include "ParagraphParameters.h"
 #include "TextClass.h"
 #include "TextMetrics.h"
@@ -245,7 +244,7 @@ static bool doInsertInset(Cursor & cur, Text * text,
                if (edit)
                        inset->edit(cur, true);
                // Now put this into inset
-               cur.text()->insertStringAsLines(cur, ds);
+               cur.text()->insertStringAsLines(cur, ds, cur.current_font);
                cur.leaveInset(*inset);
                return true;
        }
@@ -507,8 +506,9 @@ void Text::number(Cursor & cur)
 }
 
 
-bool Text::isRTL(Buffer const & buffer, Paragraph const & par) const
+bool Text::isRTL(Paragraph const & par) const
 {
+       Buffer const & buffer = owner_->buffer();
        return par.isRTL(buffer.params());
 }
 
@@ -554,7 +554,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                pit_type const pit = cur.pit();
                recUndo(cur, pit, pit + 1);
                cur.finishUndo();
-               swap(pars_[pit], pars_[pit + 1]);
+               pars_.swap(pit, pit + 1);
                cur.buffer()->updateLabels();
                needsUpdate = true;
                ++cur.pit();
@@ -565,7 +565,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                pit_type const pit = cur.pit();
                recUndo(cur, pit - 1, pit);
                cur.finishUndo();
-               swap(pars_[pit], pars_[pit - 1]);
+               pars_.swap(pit, pit - 1);
                cur.buffer()->updateLabels();
                --cur.pit();
                needsUpdate = true;
@@ -1287,7 +1287,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (layout.empty())
                        layout = tclass.defaultLayoutName();
 
-               if (para.forcePlainLayout())
+               if (owner_->forcePlainLayout())
                        // in this case only the empty layout is allowed
                        layout = tclass.plainLayoutName();
                else if (para.usePlainLayout()) {
@@ -1684,7 +1684,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());
+               pars.back().setInsetOwner(&cur.text()->inset());
                pars.back().setPlainOrDefaultLayout(tclass);
                int cap_pit = pars.size() - 1;
 
@@ -1693,7 +1693,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                // the graphics (or table).
                if (!content) {
                        pars.push_back(Paragraph());
-                       pars.back().setInsetOwner(&pars[0].inInset());
+                       pars.back().setInsetOwner(&cur.text()->inset());
                        pars.back().setPlainOrDefaultLayout(tclass);
                }
 
@@ -2543,7 +2543,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                        enable = cur.inset().lyxCode() == FLEX_CODE
                                 && il.lyxtype() == type;
                } else {
-                       enable = ((!isMainText(cur.bv().buffer())
+                       enable = ((!isMainText()
                                      && cur.inset().nargs() == 1)
                                  || (cur.nextInset()
                                      && cur.nextInset()->nargs() == 1));
@@ -2557,10 +2557,9 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                // However, without proper optimizations, this will inevitably
                // result in unacceptable performance - just imagine a user who
                // wants to select the complete content of a long document.
-               if (!cur.selection()) {
-                       Change const & change = cur.paragraph().lookupChange(cur.pos());
-                       enable = change.changed();
-               } else
+               if (!cur.selection())
+                       enable = cur.paragraph().isChanged(cur.pos());
+               else
                        // TODO: context-sensitive enabling of LFUN_CHANGE_ACCEPT/REJECT
                        // for selections.
                        enable = true;
@@ -2572,7 +2571,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_OUTLINE_OUT:
        case LFUN_OUTLINE_DRAGMOVE:
                // FIXME: LyX is not ready for outlining within inset.
-               enable = isMainText(cur.bv().buffer())
+               enable = isMainText()
                        && cur.paragraph().layout().toclevel != Layout::NOT_IN_TOC;
                break;
 
@@ -2779,9 +2778,9 @@ void Text::pasteString(Cursor & cur, docstring const & clip,
        if (!clip.empty()) {
                cur.recordUndo();
                if (asParagraphs)
-                       insertStringAsParagraphs(cur, clip);
+                       insertStringAsParagraphs(cur, clip, cur.current_font);
                else
-                       insertStringAsLines(cur, clip);
+                       insertStringAsLines(cur, clip, cur.current_font);
        }
 }