Pimpl(Paragraph * owner);
/// "Copy constructor"
Pimpl(Pimpl const &, Paragraph * owner);
- ///
- void setContentsFromPar(Paragraph const & par);
//
// Change tracking
Change const lookupChange(pos_type pos) const;
/// is there a change within the given range ?
bool isChanged(pos_type start, pos_type end) const;
- /// set change for the entire par
- void setChange(Change const & change);
+ /// 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 change
- void acceptChange(pos_type start, pos_type end);
- /// reject change
- void rejectChange(pos_type start, pos_type end);
+ /// accept changes within the given range
+ void acceptChanges(pos_type start, pos_type end);
+ /// reject changes within the given range
+ void rejectChanges(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);
- /// definite erase
- void eraseChar(pos_type pos);
- /// erase the given position. Returns true if it was actually erased
+ /// (logically) erase the char at pos; return true if it was actually erased
bool eraseChar(pos_type pos, bool trackChanges);
- /// erase the given range
- int erase(pos_type start, pos_type end, 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;