mirror of
https://github.com/minetest/minetest.git
synced 2025-07-06 01:40:21 +02:00
Improve the path select GUI (#5852)
- Allow lua to chose whatever directories or files can be selected - Fix selecting directories - Rename dialog to `guiPathSelectMenu` from `guiFileSelectMenu` - Rename lua function for opening the menu from `show_file_open_dialog` to `show_path_select_dialog` - Remove duplicate code and fix code style. Related changes - fix `clang-format` whitelist. - Regenerate minetest.conf.example
This commit is contained in:
@ -196,7 +196,7 @@ local function parse_setting_line(settings, line, read_all, base_level, allow_se
|
||||
return
|
||||
end
|
||||
|
||||
if setting_type == "path" then
|
||||
if setting_type == "path" or setting_type == "filepath" then
|
||||
local default = remaining_line:match("^(.*)$")
|
||||
|
||||
if not default then
|
||||
@ -206,7 +206,7 @@ local function parse_setting_line(settings, line, read_all, base_level, allow_se
|
||||
table.insert(settings, {
|
||||
name = name,
|
||||
readable_name = readable_name,
|
||||
type = "path",
|
||||
type = setting_type,
|
||||
default = default,
|
||||
comment = current_comment,
|
||||
})
|
||||
@ -504,14 +504,14 @@ local function create_change_setting_formspec(dialogdata)
|
||||
end
|
||||
formspec = formspec .. ";" .. selected_index .. "]"
|
||||
|
||||
elseif setting.type == "path" then
|
||||
elseif setting.type == "path" or setting.type == "filepath" then
|
||||
local current_value = dialogdata.selected_path
|
||||
if not current_value then
|
||||
current_value = get_current_value(setting)
|
||||
end
|
||||
formspec = formspec .. "field[0.5,4;7.5,1;te_setting_value;;"
|
||||
.. core.formspec_escape(current_value) .. "]"
|
||||
.. "button[8,3.75;2,1;btn_browser_path;" .. fgettext("Browse") .. "]"
|
||||
.. "button[8,3.75;2,1;btn_browser_" .. setting.type .. ";" .. fgettext("Browse") .. "]"
|
||||
|
||||
else
|
||||
-- TODO: fancy input for float, int, flags, noise_params, v3f
|
||||
@ -606,7 +606,13 @@ local function handle_change_setting_buttons(this, fields)
|
||||
end
|
||||
|
||||
if fields["btn_browser_path"] then
|
||||
core.show_file_open_dialog("dlg_browse_path", fgettext_ne("Select path"))
|
||||
core.show_path_select_dialog("dlg_browse_path",
|
||||
fgettext_ne("Select directory"), false)
|
||||
end
|
||||
|
||||
if fields["btn_browser_filepath"] then
|
||||
core.show_path_select_dialog("dlg_browse_path",
|
||||
fgettext_ne("Select file"), true)
|
||||
end
|
||||
|
||||
if fields["dlg_browse_path_accepted"] then
|
||||
|
Reference in New Issue
Block a user