2019-06-20 18:43:29 -04:00
|
|
|
ardour {
|
2019-06-20 18:46:23 -04:00
|
|
|
["type"] = "EditorAction",
|
|
|
|
name = "Track Sort",
|
|
|
|
author = "Ardour Lua Taskforce",
|
|
|
|
description = [[Sort tracks alphabetically by name]]
|
2019-06-20 18:43:29 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
function factory () return function ()
|
|
|
|
|
|
|
|
function tsort (a, b)
|
|
|
|
return a:name() < b:name()
|
|
|
|
end
|
|
|
|
|
|
|
|
local tracklist = {}
|
2019-06-20 18:46:23 -04:00
|
|
|
for t in Session:get_tracks():iter() do
|
|
|
|
table.insert(tracklist, t)
|
|
|
|
end
|
2019-06-20 18:43:29 -04:00
|
|
|
|
2019-06-20 18:46:23 -04:00
|
|
|
table.sort(tracklist, tsort)
|
2019-06-20 18:43:29 -04:00
|
|
|
|
2019-06-20 18:46:23 -04:00
|
|
|
local pos = 1;
|
|
|
|
for _, t in ipairs(tracklist) do
|
|
|
|
t:set_presentation_order(pos)
|
|
|
|
pos = pos + 1
|
|
|
|
end
|
2019-06-20 18:43:29 -04:00
|
|
|
|
2019-06-20 18:46:23 -04:00
|
|
|
tracklist = nil
|
|
|
|
collectgarbage ()
|
|
|
|
end end
|