allow exported orders files to be deleted from the import dialog

develop
Myk Taylor 2023-03-27 03:52:12 -07:00
parent 63772fd808
commit 0ed311c108
No known key found for this signature in database
1 changed files with 27 additions and 5 deletions

@ -19,15 +19,37 @@ local function do_clear()
function() dfhack.run_command('orders', 'clear') end) function() dfhack.run_command('orders', 'clear') end)
end end
local function get_import_choices()
return dfhack.run_command_silent('orders', 'list'):split('\n')
end
local function do_import() local function do_import()
local output = dfhack.run_command_silent('orders', 'list') local dlg
dialogs.ListBox{ local function get_dlg() return dlg end
frame_title='Import Manager Orders', dlg = dialogs.ListBox{
frame_title='Import/Delete Manager Orders',
with_filter=true, with_filter=true,
choices=output:split('\n'), choices=get_import_choices(),
on_select=function(idx, choice) on_select=function(_, choice)
dfhack.run_command('orders', 'import', choice.text) dfhack.run_command('orders', 'import', choice.text)
end, end,
dismiss_on_select2=false,
on_select2=function(_, choice)
if choice.text:startswith('library/') then return end
local fname = 'dfhack-config/orders/'..choice.text..'.json'
if not dfhack.filesystem.isfile(fname) then return end
dialogs.showYesNoPrompt('Delete orders file?',
'Are you sure you want to delete "' .. fname .. '"?', nil,
function()
print('deleting ' .. fname)
os.remove(fname)
local list = get_dlg().subviews.list
local filter = list:getFilter()
list:setChoices(get_import_choices(), list:getSelected())
list:setFilter(filter)
end)
end,
select2_hint='Delete file',
}:show() }:show()
end end