X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FUndo.h;h=887f7627e1d54854800a34c00678971f77d1f63e;hb=233cfed3331e2a8fef39e2dff483dadbf011b772;hp=bacce0307e8258139f1e2fd41f0f00fd90223313;hpb=1ad4d9e657994f8d723ed4089f7dfeb1b9466edb;p=lyx.git diff --git a/src/Undo.h b/src/Undo.h index bacce0307e..887f7627e1 100644 --- a/src/Undo.h +++ b/src/Undo.h @@ -22,11 +22,8 @@ namespace lyx { class Buffer; -class BufferParams; class CursorData; class Inset; -class MathData; -class ParagraphList; /// This is used to combine consecutive undo recordings of the same kind. enum UndoKind { @@ -60,10 +57,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). @@ -88,7 +85,7 @@ public: /** * This cursor takes precedence over what is passed to recordUndo. * In the case of nested groups, only the first cur_before is - * taken in account. The cursor is reset at the end of the + * taken into account. The cursor is reset at the end of the * top-level group. */ void beginUndoGroup(CursorData const & cur_before); @@ -96,6 +93,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 +136,9 @@ private: */ class UndoGroupHelper { public: - UndoGroupHelper(Buffer * buf) : buffer_(0) - { - resetBuffer(buf); - } + UndoGroupHelper(Buffer * buf); - ~UndoGroupHelper() - { - resetBuffer(0); - } + ~UndoGroupHelper(); /** Close the current undo group if necessary and create a new one * for buffer \c buf. @@ -151,7 +146,8 @@ public: void resetBuffer(Buffer * buf); private: - Buffer * buffer_; + class Impl; + Impl * const d; };