From 26e2eb019afa60c66c4dc89cf24bbf5b25c6a383 Mon Sep 17 00:00:00 2001 From: red-001 Date: Sun, 11 Jun 2017 08:43:31 +0100 Subject: 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 --- builtin/mainmenu/dlg_settings_advanced.lua | 16 +++++++++++----- builtin/settingtypes.txt | 9 ++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) (limited to 'builtin') diff --git a/builtin/mainmenu/dlg_settings_advanced.lua b/builtin/mainmenu/dlg_settings_advanced.lua index 206ce1620..cac9f6983 100644 --- a/builtin/mainmenu/dlg_settings_advanced.lua +++ b/builtin/mainmenu/dlg_settings_advanced.lua @@ -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 diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 0f2715ab5..53fb23859 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -12,6 +12,7 @@ # - float # - enum # - path +# - filepath # - key (will be ignored in GUI, since a special key change dialog exists) # - flags # - noise_params @@ -31,6 +32,8 @@ # - default value1,value2,... # * path: # - default (if default is not specified then "" is set) +# * filepath: +# - default (if default is not specified then "" is set) # * key: # - default # * flags: @@ -642,7 +645,7 @@ tooltip_show_delay (Tooltip delay) int 400 freetype (Freetype fonts) bool true # Path to TrueTypeFont or bitmap. -font_path (Font path) path fonts/liberationsans.ttf +font_path (Font path) filepath fonts/liberationsans.ttf font_size (Font size) int 16 @@ -652,12 +655,12 @@ font_shadow (Font shadow) int 1 # Font shadow alpha (opaqueness, between 0 and 255). font_shadow_alpha (Font shadow alpha) int 127 0 255 -mono_font_path (Monospace font path) path fonts/liberationmono.ttf +mono_font_path (Monospace font path) filepath fonts/liberationmono.ttf mono_font_size (Monospace font size) int 15 # This font will be used for certain languages. -fallback_font_path (Fallback font) path fonts/DroidSansFallbackFull.ttf +fallback_font_path (Fallback font) filepath fonts/DroidSansFallbackFull.ttf fallback_font_size (Fallback font size) int 15 fallback_font_shadow (Fallback font shadow) int 1 fallback_font_shadow_alpha (Fallback font shadow alpha) int 128 0 255 -- cgit v1.2.3