summaryrefslogtreecommitdiff
path: root/share/scripts/_remember_file.lua
diff options
context:
space:
mode:
Diffstat (limited to 'share/scripts/_remember_file.lua')
-rw-r--r--share/scripts/_remember_file.lua37
1 files changed, 37 insertions, 0 deletions
diff --git a/share/scripts/_remember_file.lua b/share/scripts/_remember_file.lua
new file mode 100644
index 0000000000..7a79fc861b
--- /dev/null
+++ b/share/scripts/_remember_file.lua
@@ -0,0 +1,37 @@
+ardour {
+ ["type"] = "EditorAction",
+ name = "File Name Test",
+ author = "Ardour Lua Taskforce",
+ description = [[Example Plugin to show to to select a file and remember the most recently used file.]]
+}
+
+function factory ()
+ local file_name_testscript_last_filename -- this acts as "global" variable, use a unique name
+ return function ()
+ print (file_name_testscript_last_filename) -- debug
+
+ --set filename to most recently used, fall back to use a default
+ local fn = file_name_testscript_last_filename or ARDOUR.LuaAPI.build_filename (Session:path (), Session:name () .. ".ardour")
+
+ -- prepare a dialog
+ local dialog_options = {
+ { type = "file", key = "file", title = "Select a File", path = fn }
+ }
+
+ -- show dialog
+ local od = LuaDialog.Dialog ("title", dialog_options)
+ local rv = od:run()
+
+ if rv then
+ -- remember most recently selected file
+ file_name_testscript_last_filename = rv['file']
+ LuaDialog.Message ("title", "set path to " .. file_name_testscript_last_filename, LuaDialog.MessageType.Info, LuaDialog.ButtonType.Close):run()
+ else
+ -- unset most recently used filename on dialog "cancel"
+ file_name_testscript_last_filename = nil
+ end
+
+ od = nil
+ collectgarbage ()
+ end
+end