]> git.lyx.org Git - lyx.git/blobdiff - src/Text.cpp
Cleanup: Replace a bunch of Cursor arguments with DocIterators.
[lyx.git] / src / Text.cpp
index e75e94c8d1c51fc08a5e654623be7bc578f929ac..8edbe2f0a69815407583f37e24e9ea08d4793bc8 100644 (file)
@@ -79,11 +79,16 @@ namespace lyx {
 using cap::cutSelection;
 using cap::pasteParagraphList;
 
-namespace {
+InsetText const & Text::inset() const
+{
+       return *owner_;
+}
+
 
-void readParToken(Buffer const & buf, Paragraph & par, Lexer & lex,
+void Text::readParToken(Paragraph & par, Lexer & lex,
        string const & token, Font & font, Change & change, ErrorList & errorList)
 {
+       Buffer const & buf = owner_->buffer();
        BufferParams const & bp = buf.params();
 
        if (token[0] != '\\') {
@@ -102,7 +107,7 @@ void readParToken(Buffer const & buf, Paragraph & par, Lexer & lex,
                if (layoutname.empty())
                        layoutname = tclass.defaultLayoutName();
 
-               if (par.forcePlainLayout()) {
+               if (owner_->forcePlainLayout()) {
                        // in this case only the empty layout is allowed
                        layoutname = tclass.plainLayoutName();
                } else if (par.usePlainLayout()) {
@@ -246,7 +251,7 @@ void readParToken(Buffer const & buf, Paragraph & par, Lexer & lex,
 }
 
 
-void readParagraph(Buffer const & buf, Paragraph & par, Lexer & lex,
+void Text::readParagraph(Paragraph & par, Lexer & lex,
        ErrorList & errorList)
 {
        lex.nextToken();
@@ -255,7 +260,7 @@ void readParagraph(Buffer const & buf, Paragraph & par, Lexer & lex,
        Change change(Change::UNCHANGED);
 
        while (lex.isOK()) {
-               readParToken(buf, par, lex, token, font, change, errorList);
+               readParToken(par, lex, token, font, change, errorList);
 
                lex.nextToken();
                token = lex.getString();
@@ -287,8 +292,6 @@ void readParagraph(Buffer const & buf, Paragraph & par, Lexer & lex,
 }
 
 
-} // namespace anon
-
 class TextCompletionList : public CompletionList
 {
 public:
@@ -328,10 +331,10 @@ bool Text::empty() const
 }
 
 
-double Text::spacing(Buffer const & buffer, Paragraph const & par) const
+double Text::spacing(Paragraph const & par) const
 {
        if (par.params().spacing().isDefault())
-               return buffer.params().spacing().getValue();
+               return owner_->buffer().params().spacing().getValue();
        return par.params().spacing().getValue();
 }
 
@@ -453,12 +456,12 @@ void Text::insertChar(Cursor & cur, char_type c)
                                     || par.isSeparator(cur.pos() - 2)
                                     || par.isNewline(cur.pos() - 2))
                                  ) {
-                                       setCharFont(buffer, pit, cur.pos() - 1, cur.current_font,
+                                       setCharFont(pit, cur.pos() - 1, cur.current_font,
                                                tm.font_);
                                } else if (contains(number_seperators, c)
                                     && cur.pos() >= 2
                                     && tm.displayFont(pit, cur.pos() - 2).fontInfo().number() == FONT_ON) {
-                                       setCharFont(buffer, pit, cur.pos() - 1, cur.current_font,
+                                       setCharFont(pit, cur.pos() - 1, cur.current_font,
                                                tm.font_);
                                }
                        }
@@ -795,8 +798,8 @@ void Text::acceptOrRejectChanges(Cursor & cur, ChangeOp op)
        LASSERT(this == cur.text(), /**/);
 
        if (!cur.selection()) {
-               Change const & change = cur.paragraph().lookupChange(cur.pos());
-               if (!(change.changed() && findNextChange(&cur.bv())))
+               bool const changed = cur.paragraph().isChanged(cur.pos());
+               if (!(changed && findNextChange(&cur.bv())))
                        return;
        }
 
@@ -897,15 +900,17 @@ void Text::acceptOrRejectChanges(Cursor & cur, ChangeOp op)
 }
 
 
-void Text::acceptChanges(BufferParams const & bparams)
+void Text::acceptChanges()
 {
+       BufferParams const & bparams = owner_->buffer().params();
        lyx::acceptChanges(pars_, bparams);
        deleteEmptyParagraphMechanism(0, pars_.size() - 1, bparams.trackChanges);
 }
 
 
-void Text::rejectChanges(BufferParams const & bparams)
+void Text::rejectChanges()
 {
+       BufferParams const & bparams = owner_->buffer().params();
        pit_type pars_size = static_cast<pit_type>(pars_.size());
 
        // first, reject changes within each individual paragraph
@@ -1208,7 +1213,7 @@ bool Text::dissolveInset(Cursor & cur)
 {
        LASSERT(this == cur.text(), return false);
 
-       if (isMainText(cur.bv().buffer()) || cur.inset().nargs() != 1)
+       if (isMainText() || cur.inset().nargs() != 1)
                return false;
 
        cur.recordUndoInset();
@@ -1259,8 +1264,9 @@ void Text::getWord(CursorSlice & from, CursorSlice & to,
 }
 
 
-void Text::write(Buffer const & buf, ostream & os) const
+void Text::write(ostream & os) const
 {
+       Buffer const & buf = owner_->buffer();
        ParagraphList::const_iterator pit = paragraphs().begin();
        ParagraphList::const_iterator end = paragraphs().end();
        depth_type dth = 0;
@@ -1273,9 +1279,10 @@ void Text::write(Buffer const & buf, ostream & os) const
 }
 
 
-bool Text::read(Buffer const & buf, Lexer & lex, 
+bool Text::read(Lexer & lex, 
                ErrorList & errorList, InsetText * insetPtr)
 {
+       Buffer const & buf = owner_->buffer();
        depth_type depth = 0;
        bool res = true;
 
@@ -1308,10 +1315,7 @@ bool Text::read(Buffer const & buf, Lexer & lex,
                        par.params().depth(depth);
                        par.setFont(0, Font(inherit_font, buf.params().language));
                        pars_.push_back(par);
-
-                       // FIXME: goddamn InsetTabular makes us pass a Buffer
-                       // not BufferParams
-                       lyx::readParagraph(buf, pars_.back(), lex, errorList);
+                       readParagraph(pars_.back(), lex, errorList);
 
                        // register the words in the global word list
                        CursorSlice sl = CursorSlice(*insetPtr);
@@ -1356,7 +1360,7 @@ docstring Text::currentState(Cursor const & cur) const
 
        Change change = par.lookupChange(cur.pos());
 
-       if (change.type != Change::UNCHANGED) {
+       if (change.changed()) {
                Author const & a = buf.params().authors().get(change.author);
                os << _("Change: ") << a.name();
                if (!a.email().empty())