Remove inclusion of ardour_ui.h from ui_config.cc
[ardour.git] / libs / pbd / undo.cc
index fd7c4d5fb85f6f052be32ae29bca7db9c039e592..182773ee4925c2811074a9420385b22afbfe4906 100644 (file)
@@ -18,7 +18,6 @@
     $Id$
 */
 
-#include <iostream>
 #include <string>
 #include <sstream>
 #include <time.h>
@@ -221,6 +220,13 @@ UndoHistory::add (UndoTransaction* const ut)
        }
 
        UndoList.push_back (ut);
+       /* Adding a transacrion makes the redo list meaningless. */
+       _clearing = true;
+       for (std::list<UndoTransaction*>::iterator i = RedoList.begin(); i != RedoList.end(); ++i) {
+                delete *i;
+        }
+       RedoList.clear ();
+       _clearing = false;
 
        /* we are now owners of the transaction and must delete it when finished with it */
 
@@ -295,6 +301,9 @@ void
 UndoHistory::clear_redo ()
 {
        _clearing = true;
+        for (std::list<UndoTransaction*>::iterator i = RedoList.begin(); i != RedoList.end(); ++i) {
+                delete *i;
+        }
        RedoList.clear ();
        _clearing = false;
 
@@ -306,6 +315,9 @@ void
 UndoHistory::clear_undo ()
 {
        _clearing = true;
+        for (std::list<UndoTransaction*>::iterator i = UndoList.begin(); i != UndoList.end(); ++i) {
+                delete *i;
+        }
        UndoList.clear ();
        _clearing = false;