X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FUndo.h;h=c2b9b5d074b4e6e8fbef33e40e5aac73e74df3b3;hb=dab71087cf2954b77d3d2c0e67b868f9be82fba9;hp=70897bfa28fe336f21d428b27ea62c4708bed3af;hpb=4eb9b50dc642a3532d8126a93571696b3db57640;p=lyx.git diff --git a/src/Undo.h b/src/Undo.h index 70897bfa28..c2b9b5d074 100644 --- a/src/Undo.h +++ b/src/Undo.h @@ -60,10 +60,10 @@ public: void clear(); /// this will undo the last action - returns false if no undo possible - bool textUndo(CursorData &); + bool undoAction(CursorData &); /// this will redo the last undo - returns false if no redo possible - bool textRedo(CursorData &); + bool redoAction(CursorData &); /// End a sequence of INSERT_UNDO or DELETE_UNDO type of undo /// operations (grouping of consecutive characters insertion/deletion). @@ -96,6 +96,10 @@ public: void endUndoGroup(); /// end the current undo group and set UndoElement::cur_after if necessary. void endUndoGroup(CursorData const & cur_after); + /// end abruptly the current group and create a new one wih the same nesting level + void splitUndoGroup(CursorData const & cur); + /// return true if an undo group is open and contains at least one element + bool activeUndoGroup() const; /// The general case: record undo information for an arbitrary range. /** @@ -135,15 +139,9 @@ private: */ class UndoGroupHelper { public: - UndoGroupHelper(Buffer * buf = 0) : buffer_(0) - { - resetBuffer(buf); - } + UndoGroupHelper(Buffer * buf = 0); - ~UndoGroupHelper() - { - resetBuffer(0); - } + ~UndoGroupHelper(); /** Close the current undo group if necessary and create a new one * for buffer \c buf. @@ -151,7 +149,8 @@ public: void resetBuffer(Buffer * buf); private: - Buffer * buffer_; + class Impl; + Impl * const d; };