- /// reject change
- void rejectChange(lyx::pos_type start, lyx::pos_type end);
-
- /// are we tracking changes ?
- bool tracking() const {
- return changes_.get();
- }
-
- ///
- value_type getChar(lyx::pos_type pos) const;
- ///
- void setChar(lyx::pos_type pos, value_type c);
- ///
- void insertChar(lyx::pos_type pos, value_type c, LyXFont const & font, Change change = Change(Change::INSERTED));
- ///
- void insertInset(lyx::pos_type pos, Inset * inset, LyXFont const & font, Change change = Change(Change::INSERTED));
- /// definite erase
- void eraseIntern(lyx::pos_type pos);
- /// erase the given position. Returns true if it was actually erased
- bool erase(lyx::pos_type pos);
- /// erase the given range
- int erase(lyx::pos_type start, lyx::pos_type end);
- ///
- UpdatableInset * inset_owner;
+ //
+ // Change tracking
+ //
+ /// look up change at given pos
+ Change const & lookupChange(pos_type pos) const;
+ /// is there a change within the given range ?
+ bool isChanged(pos_type start, pos_type end) const;
+ /// will the paragraph be physically merged with the next
+ /// one if the imaginary end-of-par character is logically deleted?
+ bool isMergedOnEndOfParDeletion(bool trackChanges) const;
+ /// set change for the entire par
+ void setChange(Change const & change);
+ /// set change at given pos
+ void setChange(pos_type pos, Change const & change);
+ /// accept changes within the given range
+ void acceptChanges(BufferParams const & bparams, pos_type start, pos_type end);
+ /// reject changes within the given range
+ void rejectChanges(BufferParams const & bparams, pos_type start, pos_type end);
+
+ ///
+ value_type getChar(pos_type pos) const;
+ ///
+ void insertChar(pos_type pos, value_type c, Change const & change);
+ ///
+ void insertInset(pos_type pos, InsetBase * inset, Change const & change);
+ /// (logically) erase the char at pos; return true if it was actually erased
+ bool eraseChar(pos_type pos, bool trackChanges);
+ /// (logically) erase the given range; return the number of chars actually erased
+ int eraseChars(pos_type start, pos_type end, bool trackChanges);
+ ///
+ InsetBase * inset_owner;