1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-15 13:51:40 +00:00

Fix FILE_MODE_OPEN_ANY file dialog not selecting folders.

This commit is contained in:
Pāvels Nadtočajevs
2025-01-27 10:08:32 +02:00
parent e5498020b6
commit adceb32177
2 changed files with 11 additions and 2 deletions

View File

@@ -151,6 +151,7 @@
<member name="mode_overrides_title" type="bool" setter="set_mode_overrides_title" getter="is_mode_overriding_title" default="true"> <member name="mode_overrides_title" type="bool" setter="set_mode_overrides_title" getter="is_mode_overriding_title" default="true">
If [code]true[/code], changing the [member file_mode] property will set the window title accordingly (e.g. setting [member file_mode] to [constant FILE_MODE_OPEN_FILE] will change the window title to "Open a File"). If [code]true[/code], changing the [member file_mode] property will set the window title accordingly (e.g. setting [member file_mode] to [constant FILE_MODE_OPEN_FILE] will change the window title to "Open a File").
</member> </member>
<member name="ok_button_text" type="String" setter="set_ok_button_text" getter="get_ok_button_text" overrides="AcceptDialog" default="&quot;Save&quot;" />
<member name="option_count" type="int" setter="set_option_count" getter="get_option_count" default="0"> <member name="option_count" type="int" setter="set_option_count" getter="get_option_count" default="0">
The number of additional [OptionButton]s and [CheckBox]es in the dialog. The number of additional [OptionButton]s and [CheckBox]es in the dialog.
</member> </member>

View File

@@ -637,8 +637,10 @@ void FileDialog::deselect_all() {
set_ok_button_text(ETR("Select Current Folder")); set_ok_button_text(ETR("Select Current Folder"));
break; break;
case FILE_MODE_OPEN_ANY: case FILE_MODE_OPEN_ANY:
set_ok_button_text(ETR("Open"));
break;
case FILE_MODE_SAVE_FILE: case FILE_MODE_SAVE_FILE:
// FIXME: Implement, or refactor to avoid duplication with set_mode set_ok_button_text(ETR("Save"));
break; break;
} }
} }
@@ -657,7 +659,13 @@ void FileDialog::_tree_selected() {
if (!d["dir"]) { if (!d["dir"]) {
file->set_text(d["name"]); file->set_text(d["name"]);
} else if (mode == FILE_MODE_OPEN_DIR) { if (mode == FILE_MODE_SAVE_FILE) {
set_ok_button_text(ETR("Save"));
} else {
set_ok_button_text(ETR("Open"));
}
} else if (mode == FILE_MODE_OPEN_DIR || mode == FILE_MODE_OPEN_ANY) {
file->set_text("");
set_ok_button_text(ETR("Select This Folder")); set_ok_button_text(ETR("Select This Folder"));
} }