X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fevent-log.h;h=9fcd01e1c7a2b9c45e4d688a3dcd99e9bd237e70;hb=91c307b04acb17109e2811ed9f525217e03cea02;hp=02cfa4b9a2560ecd5d245b970e78be8570932e73;hpb=59e6f961d146b4240984fa229a5e37b833dddd69;p=inkscape.git diff --git a/src/event-log.h b/src/event-log.h index 02cfa4b9a..9fcd01e1c 100644 --- a/src/event-log.h +++ b/src/event-log.h @@ -16,7 +16,7 @@ * Author: * Gustav Broberg * - * Copyright (c) 2006 Authors + * Copyright (c) 2006, 2007 Authors * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -45,7 +45,7 @@ public: typedef Gtk::TreeModel::const_iterator const_iterator; EventLog(SPDocument* document); - ~EventLog(); + virtual ~EventLog(); /** * Event datatype @@ -72,6 +72,8 @@ public: void notifyUndoEvent(Event *log); void notifyRedoEvent(Event *log); void notifyUndoCommitEvent(Event *log); + void notifyClearUndoEvent(); + void notifyClearRedoEvent(); /** * Accessor functions @@ -85,6 +87,7 @@ public: void setCurrEvent(iterator event) { _curr_event = event; } void setCurrEventParent(iterator event) { _curr_event_parent = event; } void blockNotifications(bool status=true) { _notifications_blocked = status; } + void rememberFileSave() { _last_saved = _curr_event; } /* * Callback types for TreeView changes. @@ -116,10 +119,6 @@ private: const EventModelColumns _columns; - /** - * Helper functions for initialization - */ - Glib::RefPtr _event_list_store; Glib::RefPtr _event_list_selection; Gtk::TreeView *_event_list_view; @@ -128,14 +127,25 @@ private: iterator _last_event; //< end position in _event_list_store iterator _curr_event_parent; //< parent to current event, if any + iterator _last_saved; //< position where last document save occurred + bool _notifications_blocked; //< if notifications should be handled // Map of connections used to temporary block/unblock callbacks in a TreeView CallbackMap *_callback_connections; + /** + * Helper functions + */ + const_iterator _getUndoEvent() const; //< returns the current undoable event or NULL if none const_iterator _getRedoEvent() const; //< returns the current redoable event or NULL if none + void _clearUndo(); //< erase all previously commited events + void _clearRedo(); //< erase all previously undone events + + void checkForVirginity(); //< marks the document as untouched if undo/redo reaches a previously saved state + // noncopyable, nonassignable EventLog(EventLog const &other); EventLog& operator=(EventLog const &other);