]> git.lyx.org Git - lyx.git/blobdiff - src/Changes.cpp
Remove special code for Qt5 to manage HiDPI. It's not needed anymore and leads to...
[lyx.git] / src / Changes.cpp
index 9fa46f92a36708281f150212012dc87514696464..877c3f104281fec2c8cee5b3f4b31b10e67be6a6 100644 (file)
@@ -138,6 +138,8 @@ void Changes::set(Change const & change, pos_type const start, pos_type const en
                        << ", author: " << change.author 
                        << ", time: " << long(change.changetime)
                        << ") in range (" << start << ", " << end << ")");
+               if (!isChanged())
+                       is_update_required_ = true;
        }
 
        Range const newRange(start, end);
@@ -298,8 +300,21 @@ bool Changes::isChanged(pos_type const start, pos_type const end) const
 }
 
 
+bool Changes::isChanged() const
+{
+       ChangeTable::const_iterator it = table_.begin();
+       ChangeTable::const_iterator const itend = table_.end();
+       for (; it != itend; ++it) {
+               if (it->change.changed())
+                       return true;
+       }
+       return false;
+}
+
+
 void Changes::merge()
 {
+       bool merged = false;
        ChangeTable::iterator it = table_.begin();
 
        while (it != table_.end()) {
@@ -312,6 +327,7 @@ void Changes::merge()
                                << it->range.start);
 
                        table_.erase(it);
+                       merged = true;
                        // start again
                        it = table_.begin();
                        continue;
@@ -330,6 +346,7 @@ void Changes::merge()
                        (it + 1)->change.changetime = max(it->change.changetime,
                                                          (it + 1)->change.changetime);
                        table_.erase(it);
+                       merged = true;
                        // start again
                        it = table_.begin();
                        continue;
@@ -337,6 +354,8 @@ void Changes::merge()
 
                ++it;
        }
+       if (merged && !isChanged())
+               is_update_required_ = true;
 }
 
 
@@ -517,4 +536,15 @@ void Changes::addToToc(DocIterator const & cdit, Buffer const & buffer,
        }
 }
 
+
+void Changes::updateBuffer(Buffer const & buf)
+{
+       is_update_required_ = false;
+       if (!buf.areChangesPresent() && isChanged())
+               buf.setChangesPresent(true);
+}
+
+
+
+
 } // namespace lyx