Seperate filter and description in FileDialog.add_filter()

This commit is contained in:
FireForge
2022-07-04 16:26:26 -05:00
parent d26442e709
commit af19501cc7
26 changed files with 59 additions and 48 deletions

View File

@ -673,9 +673,13 @@ void FileDialog::clear_filters() {
invalidate();
}
void FileDialog::add_filter(const String &p_filter) {
void FileDialog::add_filter(const String &p_filter, const String &p_description) {
ERR_FAIL_COND_MSG(p_filter.begins_with("."), "Filter must be \"filename.extension\", can't start with dot.");
filters.push_back(p_filter);
if (p_description.is_empty()) {
filters.push_back(p_filter);
} else {
filters.push_back(vformat("%s ; %s", p_filter, p_description));
}
update_filters();
invalidate();
}
@ -919,7 +923,7 @@ void FileDialog::_bind_methods() {
ClassDB::bind_method(D_METHOD("_cancel_pressed"), &FileDialog::_cancel_pressed);
ClassDB::bind_method(D_METHOD("clear_filters"), &FileDialog::clear_filters);
ClassDB::bind_method(D_METHOD("add_filter", "filter"), &FileDialog::add_filter);
ClassDB::bind_method(D_METHOD("add_filter", "filter", "description"), &FileDialog::add_filter, DEFVAL(""));
ClassDB::bind_method(D_METHOD("set_filters", "filters"), &FileDialog::set_filters);
ClassDB::bind_method(D_METHOD("get_filters"), &FileDialog::get_filters);
ClassDB::bind_method(D_METHOD("get_current_dir"), &FileDialog::get_current_dir);