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
|