(1) remove most uses of MementoCommand for Playlist and Region (2) move frozen state...
[ardour.git] / libs / pbd / pbd / undo.h
index 0e48bea96238c7b414572d50815e818121c08aad..6eb9e00056c140bddf6d67981fdbc1057c3a7d3e 100644 (file)
 #include <sigc++/slot.h>
 #include <sigc++/bind.h>
 #include <sys/time.h>
+
+#include "pbd/signals.h"
 #include "pbd/command.h"
-#include "pbd/shiva.h"
 
 typedef sigc::slot<void> UndoAction;
 
-class UndoTransaction : public Command
+class UndoTransaction : public Command, public PBD::ScopedConnectionList
 {
   public:
        UndoTransaction ();
@@ -61,7 +62,6 @@ class UndoTransaction : public Command
 
   private:
        std::list<Command*>    actions;
-       std::list<PBD::ProxyShiva<Command,UndoTransaction>*> shivas;
        struct timeval        _timestamp;
        bool                  _clearing;
 
@@ -71,10 +71,9 @@ class UndoTransaction : public Command
 
        ~UndoTransaction ();
        void about_to_explicitly_delete ();
-       
 };
 
-class UndoHistory : public sigc::trackable
+class UndoHistory : public PBD::ScopedConnectionList
 {
   public:
        UndoHistory();
@@ -107,7 +106,9 @@ class UndoHistory : public sigc::trackable
 
        void set_depth (uint32_t);
 
-       sigc::signal<void> Changed;
+       PBD::Signal0<void> Changed;
+       PBD::Signal0<void> BeginUndoRedo;
+       PBD::Signal0<void> EndUndoRedo;
        
   private:
        bool _clearing;