changeset 185:74a34c677588

now with autosave
author dmcc
date Sun, 13 Jul 2003 07:41:44 +0000
parents a7f1f75c737b
children 5f9a208e8865
files flax/CueFaders.py
diffstat 1 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/flax/CueFaders.py	Sun Jul 13 05:50:04 2003 +0000
+++ b/flax/CueFaders.py	Sun Jul 13 07:41:44 2003 +0000
@@ -18,6 +18,7 @@
 # FIXE make fades work properly: the set_next / prev bug
 # WONT find cue by page ("not necessawy!")
 # WONT CueFader controls KeyboardController?  unlikely
+# FIXE AutoSave loop
 
 class LabelledScale(Tk.Frame):
     """Scale with two labels: a name and current value"""
@@ -483,9 +484,16 @@
             return empty_cue
     def __del__(self):
         self.save()
-    def save(self):
-        print "Saving cues to", self.filename
-        self.treedict.save(self.filename)
+    def save(self, backup=0):
+        if backup:
+
+            backupfilename = "%s-backup" % self.filename
+            print time.asctime(), "Saving backup version of cues to", \
+                backupfilename
+            self.treedict.save(backupfilename)
+        else:
+            print time.asctime(), "Saving cues to", self.filename
+            self.treedict.save(self.filename)
     def reload(self):
         # TODO: we probably will need to make sure that indices still make
         # sense, etc.
@@ -529,6 +537,7 @@
         for count, cue in enumerate(self.cues):
             self.display_cue(count, cue)
         self.update_cue_indicators()
+        self.save_loop()
     def set_fader(self, fader):
         self.fader = fader
     def wheelscroll(self, evt):
@@ -627,6 +636,10 @@
         sel = self.hlist.info_selection()
         if sel:
             self.set_next(int(sel[0]))
+    def save_loop(self):
+        """This saves the CueList every minute."""
+        self.save(backup=1)
+        self.after(60000, self.save_loop)
 
 class CueEditron(Tk.Frame):
     def __init__(self, master, changed_callback=None, cue=None):