]> git.lyx.org Git - lyx.git/blobdiff - src/Changes.cpp
Kornel's gcc compile fix.
[lyx.git] / src / Changes.cpp
index 538893ad823cf11a472196bb15eca5b71a9d741a..2f7feb1256243571d9f253f6201365a95e7f8494 100644 (file)
@@ -76,7 +76,7 @@ Color Change::color() const
        }
 
        if (deleted())
-               color.mergeColor = Color_white;
+               color.mergeColor = Color_deletedtextmodifier;
 
        return color;
 }
@@ -256,6 +256,24 @@ Change const & Changes::lookup(pos_type const pos) const
 }
 
 
+bool Changes::isDeleted(pos_type start, pos_type end) const
+{
+       ChangeTable::const_iterator it = table_.begin();
+       ChangeTable::const_iterator const itend = table_.end();
+
+       for (; it != itend; ++it) {
+               if (it->range.contains(Range(start, end))) {
+                       LYXERR(Debug::CHANGES, "range ("
+                               << start << ", " << end << ") fully contains ("
+                               << it->range.start << ", " << it->range.end
+                               << ") of type " << it->change.type);
+                       return it->change.type == Change::DELETED;
+               }
+       }
+       return false;
+}
+
+
 bool Changes::isChanged(pos_type const start, pos_type const end) const
 {
        ChangeTable::const_iterator it = table_.begin();
@@ -351,7 +369,7 @@ int Changes::latexMarkChange(odocstream & os, BufferParams const & bparams,
 }
 
 
-void Changes::lyxMarkChange(ostream & os, int & column,
+void Changes::lyxMarkChange(ostream & os, BufferParams const & bparams, int & column,
                            Change const & old, Change const & change)
 {
        if (old == change)
@@ -359,19 +377,21 @@ void Changes::lyxMarkChange(ostream & os, int & column,
 
        column = 0;
 
+       int const buffer_id = bparams.authors().get(change.author).buffer_id();
+
        switch (change.type) {
                case Change::UNCHANGED:
                        os << "\n\\change_unchanged\n";
                        break;
 
                case Change::DELETED: {
-                       os << "\n\\change_deleted " << change.author
+                       os << "\n\\change_deleted " << buffer_id
                                << " " << change.changetime << "\n";
                        break;
                }
 
                case Change::INSERTED: {
-                       os << "\n\\change_inserted " << change.author
+                       os << "\n\\change_inserted " << buffer_id
                                << " " << change.changetime << "\n";
                        break;
                }