AutoSave für RagTime
Wegen der fehlenden Möglichkeit, in RagTime mehr als einen Schritt rückgängig zu machen, wurden in diesem Forum schon verschiedene Lösungen vorgeschlagen. Eine solche Lösung war, in regelmässigen Abständen, z.B. alle 5 Minuten, automatisch eine Kopie des aktuell bearbeiteten Dokuments – der Name mit "Zeitstempel" ergänzt – abzulegen. Ich konnte mich für diese Lösung nie begeistern und habe bei mir ein "AutoSave" installiert, das alle 5 Minuten fragt, ob gesichert werden soll. Wenn ich bestätige, wird das Dokument gesichert. Wenn ich gerade daran bin, einen längeren Fliesstext in einem Rechenblatt einzutippen lehne ich jeweils ab. Wichtig; das Script muss als Programm gesichert und in den Einstellungen in die Liste der Startup-Items aufgenommen werden.
___
property saveTime : 300 -- number of seconds between executing a save -- the idle handler is called each time after "saveTime" on idle try tell application "System Events" to set RTinFront to (frontmost of (process 1 whose bundle identifier is "de.ragtime.ragtime")) on error -- RagTime is not open return saveTime end try if RTinFront then try tell application "RagTime 7" to set docName to name of document 1 on error -- there is no open document return saveTime end try tell application "RagTime 7" to tell document docName to set isModified to modified if isModified then activate beep try set SaveOK to display alert "Sichern?" buttons {"Nein", "Ja"} cancel button 1 if button returned of SaveOK = "Ja" then tell application "RagTime 7" to tell document docName to save end if on error -- just to allow ESC key for "Nein" button end try tell application "RagTime 7" to activate end if end if return saveTime end idle
___
Beschreibung:
Dieses Skript muss im "Skript-Editor" als "Programm" gesichert werden.
Die Option "Nach run-Handler anzeigen" muss eingeschaltet sein
Bei laufendem RagTime wird im vorgegebenen Intervall – sofern das zuvorderst liegende Dokument seit dem letzten Sichern modifiziert wurde – gefragt, ob gesichert werden soll. Dieses Vorgehen vermeidet das Risiko, den bestehenden Inhalt einer Rechenblattzelle mit der nächsten Tastatureingabe nach einem automatischen Sichern zu verlieren.
___
Diese Lösung ist also eher eine Erinnerung daran, wass wieder mal gesichert werden sollte, wobei durch Quittieren (mit Return oder Enter) das Sichern sofort ausgelöst wird.
Gruss, Thomas
