Don't load curves becore clearing their command stack.
[hooke.git] / hooke / playlist.py
index 69442da74fa63033980b942431ca04a3a8b84ae5..79f785c5305b35415af5651da7e4f2d25ae0b86c 100644 (file)
@@ -91,11 +91,12 @@ class NoteIndexList (list):
             return self._index
         return super(NoteIndexList, self).index(value, *args, **kwargs)
 
-    def current(self):
+    def current(self, load=True):
         if len(self) == 0:
             return None
         item = self[self._index]
-        self._setup_item(item)
+        if load == True:
+            self._setup_item(item)
         return item
 
     def jump(self, index):
@@ -203,7 +204,10 @@ class Playlist (NoteIndexList):
     def unload(self, curve):
         "Inverse of .`_setup_item`."
         curve.unload()
-        self._loaded.remove(curve)
+        try:
+            self._loaded.remove(curve)
+        except ValueError:
+            pass
 
 
 def playlist_path(path):