- Change const lookupChangeFull(lyx::pos_type pos) const;
- /// is there a change in the given range ?
- bool isChanged(lyx::pos_type start, lyx::pos_type end) const;
- /// is there a non-addition in this range ?
- bool isChangeEdited(lyx::pos_type start, lyx::pos_type end) const;
- /// set change at pos
- void setChange(lyx::pos_type pos, Change::Type type);
- /// mark as erased
- void markErased();
- /// accept change
- void acceptChange(lyx::pos_type start, lyx::pos_type end);
- /// 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, InsetBase * 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 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;