Robin Gareus
e612be9037
Note: this only works when loading the script action. Window > Scripting doesn't run the factory method for upindex variables
38 lines
1.2 KiB
Lua
38 lines
1.2 KiB
Lua
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
|