]> git.lyx.org Git - lyx.git/blobdiff - src/Changes.cpp
* src/LyXRC.{cpp,h}:
[lyx.git] / src / Changes.cpp
index fec558e56ea77d893579e0e55425e67a8eb18de8..ea99b7fc6d71f6b27afd2a738dd9d5a8be5a2402 100644 (file)
 
 #include <boost/assert.hpp>
 
-
-namespace lyx {
-
 using std::abs;
 using std::endl;
 using std::string;
 using std::max;
 
+namespace lyx {
+
 /*
  * Class Change has a changetime field that specifies the exact time at which
  * a specific change was made. The change time is used as a guidance for the
@@ -37,18 +36,16 @@ using std::max;
  * When merging two adjacent changes, the changetime is not considered,
  * only the equality of the change type and author is checked (in method
  * isSimilarTo(...)). If two changes are in fact merged (in method merge()),
- * the later change time is preserved. 
+ * the later change time is preserved.
  */
 
 bool Change::isSimilarTo(Change const & change)
 {
-       if (type != change.type) {
+       if (type != change.type)
                return false;
-       }
 
-       if (type == Change::UNCHANGED) {
+       if (type == Change::UNCHANGED)
                return true;
-       }
 
        return author == change.author;
 }
@@ -56,17 +53,14 @@ bool Change::isSimilarTo(Change const & change)
 
 bool operator==(Change const & l, Change const & r)
 {
-       if (l.type != r.type) {
+       if (l.type != r.type)
                return false;
-       }
 
        // two changes of type UNCHANGED are always equal
-       if (l.type == Change::UNCHANGED) {
+       if (l.type == Change::UNCHANGED)
                return true;
-       }
-       
-       return l.author == r.author &&
-              l.changetime == r.changetime;
+
+       return l.author == r.author && l.changetime == r.changetime;
 }
 
 
@@ -155,9 +149,8 @@ void Changes::set(Change const & change, pos_type const start, pos_type const en
                }
 
                // new change precedes existing change
-               if (it->range.start >= end) {
+               if (it->range.start >= end)
                        break;
-               }
 
                // new change intersects with existing change
                it->range.start = end;
@@ -180,13 +173,11 @@ void Changes::erase(pos_type const pos)
 
        for (; it != end; ++it) {
                // range (pos,pos+x) becomes (pos,pos+x-1)
-               if (it->range.start > pos) {
+               if (it->range.start > pos)
                        --(it->range.start);
-               }
                // range (pos-x,pos) stays (pos-x,pos)
-               if (it->range.end > pos) {
+               if (it->range.end > pos)
                        --(it->range.end);
-               }
        }
 
        merge();
@@ -205,14 +196,12 @@ void Changes::insert(Change const & change, lyx::pos_type pos)
 
        for (; it != end; ++it) {
                // range (pos,pos+x) becomes (pos+1,pos+x+1)
-               if (it->range.start >= pos) {
+               if (it->range.start >= pos)
                        ++(it->range.start);
-               }
 
                // range (pos-x,pos) stays as it is
-               if (it->range.end > pos) {
+               if (it->range.end > pos)
                        ++(it->range.end);
-               }
        }
 
        set(change, pos, pos + 1); // set will call merge
@@ -222,7 +211,7 @@ void Changes::insert(Change const & change, lyx::pos_type pos)
 Change const & Changes::lookup(pos_type const pos) const
 {
        static Change const noChange = Change(Change::UNCHANGED);
-               
+
        ChangeTable::const_iterator it = table_.begin();
        ChangeTable::const_iterator const end = table_.end();
 
@@ -282,7 +271,7 @@ void Changes::merge()
 
                        (it + 1)->range.start = it->range.start;
                        (it + 1)->change.changetime = max(it->change.changetime,
-                                                         (it + 1)->change.changetime);
+                                                         (it + 1)->change.changetime);
                        table_.erase(it);
                        // start again
                        it = table_.begin();
@@ -303,7 +292,7 @@ int Changes::latexMarkChange(odocstream & os, BufferParams const & bparams,
        int column = 0;
 
        if (oldChange.type != Change::UNCHANGED) {
-               os << '}'; // close \lyxinserted or \lyxdeleted
+               os << '}'; // close \lyxadded or \lyxdeleted
                column++;
        }
 
@@ -314,11 +303,11 @@ int Changes::latexMarkChange(odocstream & os, BufferParams const & bparams,
        if (change.type == Change::DELETED) {
                docstring str = "\\lyxdeleted{" +
                        bparams.authors().get(change.author).name() + "}{" +
-                       chgTime + "}{"; 
+                       chgTime + "}{";
                os << str;
                column += str.size();
        } else if (change.type == Change::INSERTED) {
-               docstring str = "\\lyxinserted{" +
+               docstring str = "\\lyxadded{" +
                        bparams.authors().get(change.author).name() + "}{" +
                        chgTime + "}{";
                os << str;
@@ -357,4 +346,13 @@ void Changes::lyxMarkChange(std::ostream & os, int & column,
 }
 
 
+void Changes::checkAuthors(AuthorList const & authorList)
+{
+       ChangeTable::const_iterator it = table_.begin();
+       ChangeTable::const_iterator endit = table_.end();
+       for ( ; it != endit ; ++it) 
+               if (it->change.type != Change::UNCHANGED)
+                       authorList.get(it->change.author).setUsed(true);
+}
+
 } // namespace lyx