X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fcomposite-undo-stack-observer.cpp;h=03e4796bd4526be23a3448d42f471d3dd8de3a88;hb=03a65c733a473cd92d50132961d02c3910417f72;hp=04890711ba461e9bca04a49eaa5e5330729dfb21;hpb=6b15695578f07a3f72c4c9475c1a261a3021472a;p=inkscape.git diff --git a/src/composite-undo-stack-observer.cpp b/src/composite-undo-stack-observer.cpp index 04890711b..03e4796bd 100644 --- a/src/composite-undo-stack-observer.cpp +++ b/src/composite-undo-stack-observer.cpp @@ -11,6 +11,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#include #include "composite-undo-stack-observer.h" #include "xml/event.h" @@ -42,7 +43,7 @@ CompositeUndoStackObserver::remove(UndoStackObserver& observer) } void -CompositeUndoStackObserver::notifyUndoEvent(XML::Event* log) +CompositeUndoStackObserver::notifyUndoEvent(Event* log) { this->_lock(); for(UndoObserverRecordList::iterator i = this->_active.begin(); i != _active.end(); ++i) { @@ -54,7 +55,7 @@ CompositeUndoStackObserver::notifyUndoEvent(XML::Event* log) } void -CompositeUndoStackObserver::notifyRedoEvent(XML::Event* log) +CompositeUndoStackObserver::notifyRedoEvent(Event* log) { this->_lock(); @@ -67,7 +68,7 @@ CompositeUndoStackObserver::notifyRedoEvent(XML::Event* log) } void -CompositeUndoStackObserver::notifyUndoCommitEvent(XML::Event* log) +CompositeUndoStackObserver::notifyUndoCommitEvent(Event* log) { this->_lock(); for(UndoObserverRecordList::iterator i = this->_active.begin(); i != _active.end(); ++i) { @@ -78,6 +79,30 @@ CompositeUndoStackObserver::notifyUndoCommitEvent(XML::Event* log) this->_unlock(); } +void +CompositeUndoStackObserver::notifyClearUndoEvent() +{ + this->_lock(); + for(UndoObserverRecordList::iterator i = this->_active.begin(); i != _active.end(); ++i) { + if (!i->to_remove) { + i->issueClearUndo(); + } + } + this->_unlock(); +} + +void +CompositeUndoStackObserver::notifyClearRedoEvent() +{ + this->_lock(); + for(UndoObserverRecordList::iterator i = this->_active.begin(); i != _active.end(); ++i) { + if (!i->to_remove) { + i->issueClearRedo(); + } + } + this->_unlock(); +} + bool CompositeUndoStackObserver::_remove_one(UndoObserverRecordList& list, UndoStackObserver& o) {