]> git.lyx.org Git - features.git/commitdiff
Change tracking:
authorMichael Schmitt <michael.schmitt@teststep.org>
Fri, 6 Oct 2006 18:53:35 +0000 (18:53 +0000)
committerMichael Schmitt <michael.schmitt@teststep.org>
Fri, 6 Oct 2006 18:53:35 +0000 (18:53 +0000)
 * rename output_changes to outputChanges
 * rename tracking_changes to trackChanges
 * add FIXMEs for later revision
 * remove trackChanges(); the CT data structure will always be set up
 * decouple LFUNs changes-output/change-accept/change-reject/
   all-changes-accept/all-changes-reject from LFUN changes-track

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

15 files changed:
src/BufferView.C
src/BufferView.h
src/CutAndPaste.C
src/buffer.C
src/bufferparams.C
src/bufferparams.h
src/insets/insettabular.C
src/insets/insettext.C
src/lyxfunc.C
src/paragraph.C
src/paragraph_funcs.C
src/paragraph_pimpl.C
src/tabular.C
src/text.C
src/text3.C

index 3f156cfa73cefab542c66090e5fea4fd96822e27..cea4268b0c0c2a8b8faa926b9a9902baa8bd2487 100644 (file)
@@ -501,7 +501,7 @@ void BufferView::setCursorFromScrollbar()
 
 Change const BufferView::getCurrentChange()
 {
-       if (!buffer_->params().tracking_changes || !cursor_.selection())
+       if (!cursor_.selection())
                return Change(Change::UNCHANGED);
 
        DocIterator dit = cursor_.selectionBegin();
@@ -664,15 +664,14 @@ FuncStatus BufferView::getStatus(FuncRequest const & cmd)
 
        case LFUN_CHANGES_TRACK:
                flag.enabled(true);
-               flag.setOnOff(buffer_->params().tracking_changes);
+               flag.setOnOff(buffer_->params().trackChanges);
                break;
 
        case LFUN_CHANGES_OUTPUT: {
                OutputParams runparams;
                LaTeXFeatures features(*buffer_, buffer_->params(), runparams);
-               flag.enabled(buffer_ && buffer_->params().tracking_changes
-                       && features.isAvailable("dvipost"));
-               flag.setOnOff(buffer_->params().output_changes);
+               flag.enabled(buffer_ && features.isAvailable("dvipost"));
+               flag.setOnOff(buffer_->params().outputChanges);
                break;
        }
 
@@ -680,7 +679,7 @@ FuncStatus BufferView::getStatus(FuncRequest const & cmd)
        case LFUN_CHANGE_NEXT:
        case LFUN_ALL_CHANGES_ACCEPT:
        case LFUN_ALL_CHANGES_REJECT:
-               flag.enabled(buffer_ && buffer_->params().tracking_changes);
+               flag.enabled(buffer_); // FIXME: Change tracking (MG)
                break;
 
        case LFUN_BUFFER_TOGGLE_COMPRESSION: {
@@ -832,12 +831,11 @@ bool BufferView::dispatch(FuncRequest const & cmd)
        }
 
        case LFUN_CHANGES_TRACK:
-               trackChanges();
+               buffer_->params().trackChanges = !buffer_->params().trackChanges;
                break;
 
        case LFUN_CHANGES_OUTPUT: {
-               bool const state = buffer_->params().output_changes;
-               buffer_->params().output_changes = !state;
+               buffer_->params().outputChanges = !buffer_->params().outputChanges;
                break;
        }
 
@@ -1426,33 +1424,3 @@ void BufferView::menuInsertLyXFile(string const & filenm)
        buffer_->errors("Parse");
        resize();
 }
-
-
-void BufferView::trackChanges()
-{
-       bool const tracking = buffer_->params().tracking_changes;
-
-       if (!tracking) {
-               for_each(buffer_->par_iterator_begin(),
-                        buffer_->par_iterator_end(),
-                        bind(&Paragraph::trackChanges, _1, Change::UNCHANGED));
-               buffer_->params().tracking_changes = true;
-
-               // We cannot allow undos beyond the freeze point
-               buffer_->undostack().clear();
-       } else {
-               cursor_.setCursor(doc_iterator_begin(buffer_->inset()));
-               if (lyx::find::findNextChange(this)) {
-                       showDialog("changes");
-                       return;
-               }
-
-               for_each(buffer_->par_iterator_begin(),
-                        buffer_->par_iterator_end(),
-                        mem_fun_ref(&Paragraph::untrackChanges));
-
-               buffer_->params().tracking_changes = false;
-       }
-
-       buffer_->redostack().clear();
-}
index 80199dd27093ebf76ea44f517b8ee7b1be030490..9f8ae09cadbcae84ec56742767854a5f3a19cea7 100644 (file)
@@ -236,9 +236,6 @@ private:
        ///
        ScrollbarParameters scrollbarParameters_;
 
-       /// track changes for the document
-       void trackChanges();
-
        ///
        ViewMetricsInfo metrics_info_;
 
index 4aaa47369f8fb6197267476ed1e258f910dfbf2d..1d44755fd8ac693a8644ec947a5d7879c4a21eb9 100644 (file)
@@ -210,10 +210,8 @@ pasteSelectionHelper(LCursor & cur, ParagraphList const & parlist,
                }
 
                // reset change tracking status
-               if (buffer.params().tracking_changes)
-                       tmpbuf->cleanChanges(Paragraph::trackingOn);
-               else
-                       tmpbuf->cleanChanges(Paragraph::trackingOff);
+               // FIXME: Change tracking (MG)
+               // tmpbuf->cleanChanges(Paragraph::trackingOn/Off);
        }
 
        bool const empty = pars[pit].empty();
@@ -319,7 +317,8 @@ PitPosPair eraseSelectionHelper(BufferParams const & params,
        // only if either (1) change tracking is off, or (2) the para break
        // is "blue"
        for (pit_type pit = startpit; pit != endpit + 1;) {
-               bool const merge = !params.tracking_changes ||
+               // FIXME: Change tracking (MG)
+               bool const merge = !params.trackChanges ||
                        pars[pit].lookupChange(pars[pit].size()) ==
                        Change::INSERTED;
                pos_type const left  = ( pit == startpit ? startpos : 0 );
index 2ce60e9dfc2310db0740ea1a79fd8fe1aa7b01e7..df4cddcdedc6d98dc435733953f8df5b00c514df 100644 (file)
@@ -1106,8 +1106,7 @@ void Buffer::validate(LaTeXFeatures & features) const
 {
        LyXTextClass const & tclass = params().getLyXTextClass();
 
-       if (features.isAvailable("dvipost") && params().tracking_changes
-           && params().output_changes)
+       if (features.isAvailable("dvipost") && params().outputChanges)
                features.require("dvipost");
 
        // AMS Style is at document level
index 9b14b59695437f758a4c6366cb6af56c195e1425..61d1088e46c1eb3a342b445e484e8d80cfa3b390 100644 (file)
@@ -300,8 +300,8 @@ BufferParams::BufferParams()
        use_amsmath = AMS_AUTO;
        cite_engine = biblio::ENGINE_BASIC;
        use_bibtopic = false;
-       tracking_changes = false;
-       output_changes = false;
+       trackChanges = false;
+       outputChanges = false;
        secnumdepth = 3;
        tocdepth = 3;
        language = default_language;
@@ -490,9 +490,9 @@ string const BufferParams::readToken(LyXLex & lex, string const & token)
        } else if (token == "\\use_bibtopic") {
                lex >> use_bibtopic;
        } else if (token == "\\tracking_changes") {
-               lex >> tracking_changes;
+               lex >> trackChanges;
        } else if (token == "\\output_changes") {
-               lex >> output_changes;
+               lex >> outputChanges;
        } else if (token == "\\branch") {
                lex.next();
                string branch = lex.getString();
@@ -699,10 +699,11 @@ void BufferParams::writeFile(ostream & os) const
                }
        }
 
-       os << "\\tracking_changes " << convert<string>(tracking_changes) << "\n";
-       os << "\\output_changes " << convert<string>(output_changes) << "\n";
+       os << "\\tracking_changes " << convert<string>(trackChanges) << "\n";
+       os << "\\output_changes " << convert<string>(outputChanges) << "\n";
 
-       if (tracking_changes) {
+       if (trackChanges) {
+               // FIXME: Change tracking (MG)
                AuthorList::Authors::const_iterator it = pimpl_->authorlist.begin();
                AuthorList::Authors::const_iterator end = pimpl_->authorlist.end();
                for (; it != end; ++it) {
@@ -1084,7 +1085,7 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features,
        lyxpreamble += "\\makeatother\n";
 
        // dvipost settings come after everything else
-       if (features.isAvailable("dvipost") && tracking_changes && output_changes) {
+       if (features.isAvailable("dvipost") && outputChanges) {
                lyxpreamble +=
                        "\\dvipostlayout\n"
                        "\\dvipost{osstart color push Red}\n"
index 4be55bdf4c3bfb9953ab6df9dd5ee2bd69a6de22..3ea4bc7cf86e6bff8cf873eb71a9a233e6d32c9e 100644 (file)
@@ -226,15 +226,15 @@ public:
        ///
        bool use_bibtopic;
        /// revision tracking for this buffer ?
-       bool tracking_changes;
+       bool trackChanges;
        /** This param decides whether change tracking marks should be output
         *  (using the dvipost package) or if the current "state" of the
         *  document should be output instead. Since dvipost needs dvi
         *  specials, it only works with dvi/ps output (the param will be
-        *  ignored with other output flavors and disabled when dbipost is
+        *  ignored with other output flavors and disabled when dvipost is
         *  not installed).
         */
-       bool output_changes;
+       bool outputChanges;
        /// Time ago we agreed that this was a buffer property [ale990407]
        std::string parentname;
        ///
index 0774f66c3fd38245f1c2ff6437992557ffc5e80d..3d772296c48fe12b2f00e9f84c80144c21df59e1 100644 (file)
@@ -1847,7 +1847,8 @@ void InsetTabular::cutSelection(LCursor & cur)
                for (col_type j = cs; j <= ce; ++j) {
                        shared_ptr<InsetText> t
                                = cell(tabular.getCellNumber(i, j));
-                       if (cur.buffer().params().tracking_changes)
+                       if (cur.buffer().params().trackChanges)
+                               // FIXME: Change tracking (MG)
                                t->markErased(true);
                        else
                                t->clear();
index 2ff1fdb0c6c703cc1955130b7fe0b4a9d2d5e0e8..caf81d05aef2b6624a80b506a7fac31359e819f3 100644 (file)
@@ -80,8 +80,6 @@ InsetText::InsetText(BufferParams const & bp)
 {
        paragraphs().push_back(Paragraph());
        paragraphs().back().layout(bp.getLyXTextClass().defaultLayout());
-       if (bp.tracking_changes)
-               paragraphs().back().trackChanges();
        // Dispose of the infamous L-shaped cursor.
        text_.current_font.setLanguage(bp.language);
        text_.real_current_font.setLanguage(bp.language);
@@ -155,12 +153,6 @@ void InsetText::read(Buffer const & buf, LyXLex & lex)
 {
        clear();
 
-#ifdef WITH_WARNINGS
-#warning John, look here. Doesnt make much sense.
-#endif
-       if (buf.params().tracking_changes)
-               paragraphs().begin()->trackChanges();
-
        // delete the initial paragraph
        Paragraph oldpar = *paragraphs().begin();
        paragraphs().clear();
index 6945cc176d652c568ed21445c216133108fa55b2..40d7f275d068b58e2c9e1675f41844192a954100 100644 (file)
@@ -639,8 +639,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
        }
 
        // Are we in a DELETED change-tracking region?
-       if (buf && buf->params().tracking_changes
-           && lookupChangeType(cur, true) == Change::DELETED
+       if (buf && lookupChangeType(cur, true) == Change::DELETED
            && !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly)
            && !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)) {
                flag.message(lyx::from_utf8(N_("This portion of the document is deleted.")));
index 2ca17c2ef2ab804ac93f9a7404aff85a9c88a6fa..aac2e0128d93c32f11ede0c7c779866a10fd0d91 100644 (file)
@@ -894,7 +894,7 @@ bool Paragraph::simpleTeXOnePar(Buffer const & buf,
        // output change tracking marks only if desired,
        // if dvipost is installed,
        // and with dvi/ps (other formats don't work)
-       bool const output = bparams.output_changes
+       bool const output = bparams.outputChanges
                && runparams.flavor == OutputParams::LATEX
                && features.isAvailable("dvipost");
 
index 20a284bb6fe6fab1fe5500513a64310068544b1d..3d4421bd043e01415ebf44e3055cdaa4f9df6158 100644 (file)
@@ -110,9 +110,6 @@ void breakParagraph(BufferParams const & bparams,
        // remember to set the inset_owner
        tmp->setInsetOwner(par.inInset());
 
-       if (bparams.tracking_changes)
-               tmp->trackChanges();
-
        // this is an idea for a more userfriendly layout handling, I will
        // see what the users say
 
@@ -187,7 +184,8 @@ void breakParagraph(BufferParams const & bparams,
        }
 
        // subtle, but needed to get empty pars working right
-       if (bparams.tracking_changes) {
+       if (bparams.trackChanges) {
+               // FIXME: Change tracking (MG)
                if (!par.size()) {
                        par.cleanChanges();
                } else if (!tmp->size()) {
@@ -205,9 +203,6 @@ void breakParagraphConservative(BufferParams const & bparams,
                                       Paragraph());
        Paragraph & par = pars[par_offset];
 
-       if (bparams.tracking_changes)
-               tmp.trackChanges();
-
        tmp.makeSameLayout(par);
 
        // When can pos > size()?
@@ -228,7 +223,8 @@ void breakParagraphConservative(BufferParams const & bparams,
                // If tracking changes, set all the text that is to be
                // erased to Type::INSERTED.
                for (pos_type k = pos_end; k >= pos; --k) {
-                       if (bparams.tracking_changes)
+                       if (bparams.trackChanges)
+                               // FIXME: Change tracking (MG)
                                par.setChange(k, Change::INSERTED);
                        par.erase(k);
                }
index 8c0461b83059a6e275f2f2722462430856ee05b4..f4e77fc8c44f30e74a4a235783c874c40529ee19 100644 (file)
@@ -533,7 +533,7 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf,
                // if dvipost is installed,
                // and with dvi/ps (other formats don't work)
                LaTeXFeatures features(buf, bparams, runparams);
-               bool const output = bparams.output_changes
+               bool const output = bparams.outputChanges
                        && runparams.flavor == OutputParams::LATEX
                        && features.isAvailable("dvipost");
 
index 25aea3843b06198128f6c6fa1804d36ab1dd4456..10c59096e06a964984e03e96c0e6929f27909a4a 100644 (file)
@@ -495,7 +495,8 @@ void LyXTabular::appendRow(BufferParams const & bp, idx_type const cell)
        for (row_type i = row + 2; i < rows_; ++i)
                swap(cell_info[i], old[i - 1]);
 
-       if (bp.tracking_changes)
+       if (bp.trackChanges)
+               // FIXME: Change Tracking (MG)
                for (col_type j = 0; j < columns_; ++j)
                        cell_info[row + 1][j].inset->markNew(true);
 
@@ -523,7 +524,8 @@ void LyXTabular::copyRow(BufferParams const & bp, row_type const row)
        row_info.insert(row_info.begin() + row, row_info[row]);
        cell_info.insert(cell_info.begin() + row, cell_info[row]);
 
-       if (bp.tracking_changes)
+       if (bp.trackChanges)
+               // FIXME: Change Tracking (MG)
                for (col_type j = 0; j < columns_; ++j)
                        cell_info[row + 1][j].inset->markNew(true);
 
@@ -555,7 +557,8 @@ void LyXTabular::appendColumn(BufferParams const & bp, idx_type const cell)
        //++column;
        for (row_type i = 0; i < rows_; ++i) {
                cell_info[i][column + 1].inset->clear();
-               if (bp.tracking_changes)
+               if (bp.trackChanges)
+                       // FIXME: Change Tracking (MG)
                        cell_info[i][column + 1].inset->markNew(true);
        }
        fixCellNums();
@@ -585,7 +588,8 @@ void LyXTabular::copyColumn(BufferParams const & bp, col_type const column)
        for (row_type i = 0; i < rows_; ++i)
                cell_info[i].insert(cell_info[i].begin() + column, cell_info[i][column]);
 
-       if (bp.tracking_changes)
+       if (bp.trackChanges)
+               // FIXME: Change Tracking (MG)
                for (row_type i = 0; i < rows_; ++i)
                        cell_info[i][column + 1].inset->markNew(true);
        fixCellNums();
index f494ca4f00a5a3f84df707a746ac14345a97503e..67ef060a8d98f1876a497f7ebe679728075f7678 100644 (file)
@@ -1170,7 +1170,8 @@ void LyXText::breakParagraph(LCursor & cur, bool keep_layout)
        updateLabels(cur.buffer(), current_it, last_it);
 
        // Mark "carriage return" as inserted if change tracking:
-       if (cur.buffer().params().tracking_changes) {
+       if (cur.buffer().params().trackChanges) {
+               // FIXME: Change tracking (MG)
                cur.paragraph().setChange(cur.paragraph().size(),
                        Change::INSERTED);
        }
@@ -1670,7 +1671,8 @@ bool LyXText::erase(LCursor & cur)
                if (pars_[cur.pit()].layout() == pars_[scur.pit()].layout()) {
                        recordUndo(scur, Undo::DELETE, scur.pit());
                        needsUpdate = backspace(cur);
-                       if (cur.buffer().params().tracking_changes) {
+                       if (cur.buffer().params().trackChanges) {
+                               // FIXME: Change tracking (MG)
                                // move forward after the paragraph break is DELETED
                                Paragraph & par = cur.paragraph();
                                if (par.lookupChange(par.size()) == Change::DELETED)
@@ -1774,7 +1776,8 @@ bool LyXText::backspace(LCursor & cur)
                // the the backspace will collapse two paragraphs into
                // one.
 
-               if (cur.pit() != 0 && cur.buffer().params().tracking_changes) {
+               if (cur.pit() != 0 && cur.buffer().params().trackChanges) {
+                       // FIXME: Change tracking (MG)
                        // Previous paragraph, mark "carriage return" as
                        // deleted:
                        Paragraph & par = pars_[cur.pit() - 1];
@@ -2214,8 +2217,6 @@ bool LyXText::read(Buffer const & buf, LyXLex & lex, ErrorList & errorList)
 
                        Paragraph par;
                        par.params().depth(depth);
-                       if (buf.params().tracking_changes)
-                               par.trackChanges();
                        par.setFont(0, LyXFont(LyXFont::ALL_INHERIT, buf.params().language));
                        pars_.push_back(par);
 
@@ -2372,10 +2373,9 @@ string LyXText::currentState(LCursor & cur)
        Paragraph const & par = cur.paragraph();
        std::ostringstream os;
 
-       bool const show_change = buf.params().tracking_changes
-               && par.lookupChange(cur.pos()) != Change::UNCHANGED;
+       bool const show_change = par.lookupChange(cur.pos()) != Change::UNCHANGED;
 
-       if (buf.params().tracking_changes)
+       if (buf.params().trackChanges)
                os << "[C] ";
 
        if (show_change) {
index 92d8006f978ef6082386c585e65cd17ef2289c51..5a424ec629f531d0cf3d8b34f377e319032bb2f3 100644 (file)
@@ -1708,7 +1708,7 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
 
        case LFUN_CHANGE_ACCEPT:
        case LFUN_CHANGE_REJECT:
-               enable = cur.buffer().params().tracking_changes;
+               enable = true; // FIXME: Change tracking (MG)
                break;
 
        case LFUN_WORD_DELETE_FORWARD: