From 90525d57815025245ada73686c169c2611a1145a Mon Sep 17 00:00:00 2001 From: kobewi Date: Sat, 8 Jan 2022 16:27:15 +0100 Subject: [PATCH] Improve FileDialog filters (cherry picked from commit b403954e41f2e47d77a8ee67798cefaeeb6f6588) --- doc/classes/FileDialog.xml | 4 +++- scene/gui/file_dialog.cpp | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/classes/FileDialog.xml b/doc/classes/FileDialog.xml index e50bc98a2c9..0f25f02676e 100644 --- a/doc/classes/FileDialog.xml +++ b/doc/classes/FileDialog.xml @@ -13,7 +13,9 @@ - Adds [code]filter[/code] as a custom filter; [code]filter[/code] should be of the form [code]"filename.extension ; Description"[/code]. For example, [code]"*.png ; PNG Images"[/code]. + Adds [code]filter[/code] to the list of filters, which restricts what files can be picked. + A [code]filter[/code] should be of the form [code]"filename.extension ; Description"[/code], where filename and extension can be [code]*[/code] to match any string. Filters starting with [code].[/code] (i.e. empty filenames) are not allowed. + Example filters: [code]"*.png ; PNG Images"[/code], [code]"project.godot ; Godot Project"[/code]. diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp index 31b7a0a5667..99bd403f652 100644 --- a/scene/gui/file_dialog.cpp +++ b/scene/gui/file_dialog.cpp @@ -567,6 +567,7 @@ void FileDialog::clear_filters() { invalidate(); } void FileDialog::add_filter(const String &p_filter) { + ERR_FAIL_COND_MSG(p_filter.begins_with("."), "Filter must be \"filename.extension\", can't start with dot."); filters.push_back(p_filter); update_filters(); invalidate();