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