/// a flag
bool undo_frozen;
+
bool textUndo(BufferView * bv)
{
// returns false if no undo possible
- Undo * undo = bv->buffer()->undostack.pop();
+ Undo * undo = bv->buffer()->undostack.top();
+ bv->buffer()->undostack.pop();
if (undo) {
finishUndo();
if (!undo_frozen) {
bool textRedo(BufferView * bv)
{
// returns false if no redo possible
- Undo * undo = bv->buffer()->redostack.pop();
+ Undo * undo = bv->buffer()->redostack.top();
+ bv->buffer()->redostack.pop();
if (undo) {
finishUndo();
if (!undo_frozen) {
bv->buffer()->redostack.push(createUndo(bv, kind, first, behind));
}
-using lyx::pos_type;
Undo * createUndo(BufferView * bv, Undo::undo_kind kind,
Paragraph const * first, Paragraph const * behind)
// check wether storing is needed
if (!bv->buffer()->undostack.empty() &&
bv->buffer()->undostack.top()->kind == kind &&
- bv->buffer()->undostack.top()->number_of_before_par == before_number &&
- bv->buffer()->undostack.top()->number_of_behind_par == behind_number ){
+ bv->buffer()->undostack.top()->number_of_before_par == before_number &&
+ bv->buffer()->undostack.top()->number_of_behind_par == behind_number) {
// no undo needed
return 0;
}
bv->text->cursor.par()->next());
}
+
Paragraph * firstUndoParagraph(BufferView * bv, int inset_id)
{
Inset * inset = bv->buffer()->getInsetFromID(inset_id);
return bv->text->ownerParagraph();
}
+
LyXCursor const & undoCursor(BufferView * bv)
{
if (bv->theLockingInset())
: limit(100) {}
-Undo * UndoStack::pop()
+void UndoStack::pop()
{
- if (stakk.empty()) return 0;
- Undo * result = stakk.front();
+ if (stakk.empty())
+ return;
stakk.pop_front();
- return result;
}
-Undo * UndoStack::top()
+Undo * UndoStack::top() const
{
- if (stakk.empty()) return 0;
+ if (stakk.empty())
+ return 0;
return stakk.front();
}
void UndoStack::push(Undo * undo_arg)
{
- if (!undo_arg) return;
+ if (!undo_arg)
+ return;
stakk.push_front(undo_arg);
if (stakk.size() > limit) {
}
-bool UndoStack::empty() const {
+bool UndoStack::empty() const
+{
return stakk.empty();
}