]> git.lyx.org Git - lyx.git/commitdiff
change tracking:
authorMichael Schmitt <michael.schmitt@teststep.org>
Fri, 20 Oct 2006 11:44:58 +0000 (11:44 +0000)
committerMichael Schmitt <michael.schmitt@teststep.org>
Fri, 20 Oct 2006 11:44:58 +0000 (11:44 +0000)
        * src/paragraph.h: insertXXX(...) requires either
        boolean parameter 'trackChanges' or a Change
        * src/insets/insettext.h: add trackChanges parameter
        to setText(...)
        * src/insets/*.C:
        * src/*.C: adjust properly & remove a couple of FIXMEs

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15399 a592a061-630c-0410-9148-cb99ea01b6c8

src/CutAndPaste.C
src/buffer.C
src/insets/insettabular.C
src/insets/insettext.C
src/insets/insettext.h
src/lyxfind.C
src/paragraph.C
src/paragraph.h

index 827f441fbb6f2903e5afcd84d2818a01929e93fc..71d700aadc000501d334894543d2de31e5ca8194 100644 (file)
@@ -610,7 +610,8 @@ void copySelection(LCursor & cur)
                BufferParams const & bp = cur.buffer().params();
                pars.back().layout(bp.getLyXTextClass().defaultLayout());
                for_each(pars.begin(), pars.end(), resetParagraph(cur.buffer()));
-               pars.back().insert(0, grabSelection(cur), LyXFont());
+               // FIXME: change tracking (MG)
+               pars.back().insert(0, grabSelection(cur), LyXFont(), Change(Change::UNCHANGED));
                theCuts.push(make_pair(pars, bp.textclass));
        }
        // tell tabular that a recent copy happened
@@ -679,8 +680,7 @@ void replaceSelectionWithString(LCursor & cur, string const & str, bool backward
        string::const_iterator cit = str.begin();
        string::const_iterator end = str.end();
        for (; cit != end; ++cit, ++pos)
-               // FIXME: change tracking (MG)
-               par.insertChar(pos, (*cit), font, Change(Change::INSERTED));
+               par.insertChar(pos, (*cit), font, cur.buffer().params().trackChanges);
 
        // Cut the selection
        cutSelection(cur, true, false);
index bacd13e81c7969013718ea55bcac7bc362f9c9f4..90ebfaeced4d37c7a7998d34e832e498f600d962 100644 (file)
@@ -531,15 +531,13 @@ void Buffer::insertStringAsLines(ParagraphList & pars,
                } else if (*cit == '\t') {
                        if (!par.isFreeSpacing()) {
                                // tabs are like spaces here
-                               // FIXME: change tracking (MG)
-                               par.insertChar(pos, ' ', font, Change(Change::INSERTED));
+                               par.insertChar(pos, ' ', font, params().trackChanges);
                                ++pos;
                                space_inserted = true;
                        } else {
                                const pos_type n = 8 - pos % 8;
                                for (pos_type i = 0; i < n; ++i) {
-                                       // FIXME: change tracking (MG)
-                                       par.insertChar(pos, ' ', font, Change(Change::INSERTED));
+                                       par.insertChar(pos, ' ', font, params().trackChanges);
                                        ++pos;
                                }
                                space_inserted = true;
@@ -551,8 +549,7 @@ void Buffer::insertStringAsLines(ParagraphList & pars,
 */
                } else {
                        // just insert the character
-                       // FIXME: change tracking (MG)
-                       par.insertChar(pos, *cit, font, Change(Change::INSERTED));
+                       par.insertChar(pos, *cit, font, params().trackChanges);
                        ++pos;
                        space_inserted = (*cit == ' ');
                }
index 6b57b7a13cd0e6d95e3bdd48b07c00208174df4d..d5e6dd5c0db8d51bc785242d0e9123f0a0dd7f44 100644 (file)
@@ -1983,7 +1983,8 @@ bool InsetTabular::insertAsciiString(BufferView & bv, docstring const & buf,
                                inset->setViewCache(&bv);
                                Paragraph & par = inset->text_.getPar(0);
                                LyXFont const font = inset->text_.getFont(par, 0);
-                               inset->setText(buf.substr(op, p - op), font);
+                               inset->setText(buf.substr(op, p - op), font,
+                                              bv.buffer()->params().trackChanges);
                                ++cols;
                                ++cell;
                        }
@@ -1995,7 +1996,8 @@ bool InsetTabular::insertAsciiString(BufferView & bv, docstring const & buf,
                                inset->setViewCache(&bv);
                                Paragraph & par = inset->text_.getPar(0);
                                LyXFont const font = inset->text_.getFont(par, 0);
-                               inset->setText(buf.substr(op, p - op), font);
+                               inset->setText(buf.substr(op, p - op), font,
+                                              bv.buffer()->params().trackChanges);
                        }
                        cols = ocol;
                        ++row;
@@ -2012,7 +2014,8 @@ bool InsetTabular::insertAsciiString(BufferView & bv, docstring const & buf,
                inset->setViewCache(&bv);
                Paragraph & par = inset->text_.getPar(0);
                LyXFont const font = inset->text_.getFont(par, 0);
-               inset->setText(buf.substr(op, len - op), font);
+               inset->setText(buf.substr(op, len - op), font,
+                              bv.buffer()->params().trackChanges);
        }
        return true;
 }
index 319482738616185ae2c5b84a1987c4df25aae72c..3f22f7acda2cb22583aec17247eba1ce75e2a3af 100644 (file)
@@ -329,13 +329,12 @@ bool InsetText::showInsetDialog(BufferView *) const
 }
 
 
-void InsetText::setText(docstring const & data, LyXFont const & font)
+void InsetText::setText(docstring const & data, LyXFont const & font, bool trackChanges)
 {
        clear();
        Paragraph & first = paragraphs().front();
        for (unsigned int i = 0; i < data.length(); ++i)
-               // FIXME: change tracking (MG)
-               first.insertChar(i, data[i], font, Change(Change::INSERTED));
+               first.insertChar(i, data[i], font, trackChanges);
 }
 
 
index 824dabe12fc4c09ccea0bb843502332232f1fd0d..2a3f7ea9b32619d133d78a57072404580b3d8380 100644 (file)
@@ -80,7 +80,7 @@ public:
        ///
        Code lyxCode() const { return TEXT_CODE; }
        ///
-       void setText(lyx::docstring const &, LyXFont const &);
+       void setText(lyx::docstring const &, LyXFont const &, bool trackChanges);
        ///
        void setAutoBreakRows(bool);
        ///
index f69b4249b4e9988cdf75fb879f89ce909c8a44b1..a48b5db8f86d838a802f0d6119503b1eb0a4bd05 100644 (file)
@@ -186,7 +186,9 @@ int replaceAll(BufferView * bv,
                LyXFont const font
                        = cur.paragraph().getFontSettings(buf.params(), pos);
                int striked = ssize - cur.paragraph().erase(pos, pos + ssize);
-               cur.paragraph().insert(pos, replacestr, font);
+               cur.paragraph().insert(pos, replacestr, font,
+                                      Change(buf.params().trackChanges ?
+                                             Change::INSERTED : Change::UNCHANGED));
                for (int i = 0; i < rsize + striked; ++i)
                        cur.forwardChar();
                ++num;
index e4664a1fec26e3e317874b7a8f943e78e450ae6e..72332c850c04b4b6e36b4256b7da6a0f750bcac2 100644 (file)
@@ -251,23 +251,32 @@ int Paragraph::erase(pos_type start, pos_type end, bool trackChanges)
 
 
 void Paragraph::insert(pos_type start, string const & str,
-                      LyXFont const & font)
+                      LyXFont const & font, Change const & change)
 {
        for (size_t i = 0, n = str.size(); i != n ; ++i)
-               // FIXME: change tracking (MG)
-               insertChar(start + i, str[i], font, Change(Change::INSERTED));
+               insertChar(start + i, str[i], font, change);
 }
 
 
 void Paragraph::insertChar(pos_type pos, Paragraph::value_type c,
-                          Change const & change)
+                          bool trackChanges)
 {
-       pimpl_->insertChar(pos, c, change);
+       pimpl_->insertChar(pos, c, Change(trackChanges ?
+                          Change::INSERTED : Change::UNCHANGED));
+}
+
+
+void Paragraph::insertChar(pos_type pos, Paragraph::value_type c,
+                          LyXFont const & font, bool trackChanges)
+{
+       pimpl_->insertChar(pos, c, Change(trackChanges ?
+                          Change::INSERTED : Change::UNCHANGED));
+       setFont(pos, font);
 }
 
 
 void Paragraph::insertChar(pos_type pos, Paragraph::value_type c,
-                          LyXFont const & font, Change const & change)
+                           LyXFont const & font, Change const & change)
 {
        pimpl_->insertChar(pos, c, change);
        setFont(pos, font);
index 142c8e49dd1bf64924c5cf89aadcf4b2c28e489f..a3cf57cd63fbb561a3495cab1b0f14cdc93eb8af 100644 (file)
@@ -289,18 +289,21 @@ public:
                                        LyXFont_size def_size) const;
        ///
        void insert(lyx::pos_type pos, std::string const & str,
-                   LyXFont const & font);
+                   LyXFont const & font, Change const & change);
        ///
-       void insertChar(lyx::pos_type pos, value_type c, Change const & change);
+       void insertChar(lyx::pos_type pos, value_type c, bool trackChanges);
        ///
        void insertChar(lyx::pos_type pos, value_type c,
-               LyXFont const &, Change const & change);
+                       LyXFont const &, bool trackChanges);
+       ///
+       void insertChar(lyx::pos_type pos, value_type c,
+                       LyXFont const &, Change const & change);
        ///
        void insertInset(lyx::pos_type pos, InsetBase * inset,
                         Change const & change);
        ///
        void insertInset(lyx::pos_type pos, InsetBase * inset,
-               LyXFont const &, Change const & change);
+                        LyXFont const &, Change const & change);
        ///
        bool insetAllowed(InsetBase_code code);
        ///