Select exactly matched file automatically in FileDialog

(cherry picked from commit ff4f04e878)
This commit is contained in:
volzhs 2016-11-15 22:36:41 +09:00 committed by Rémi Verschelde
parent b328d2eb00
commit fd5e01d1cd

View file

@ -401,11 +401,12 @@ void FileDialog::update_file_list() {
while(!files.empty()) { while(!files.empty()) {
bool match=patterns.empty(); bool match=patterns.empty();
String match_str;
for(List<String>::Element *E=patterns.front();E;E=E->next()) { for(List<String>::Element *E=patterns.front();E;E=E->next()) {
if (files.front()->get().matchn(E->get())) { if (files.front()->get().matchn(E->get())) {
match_str=E->get();
match=true; match=true;
break; break;
} }
@ -430,14 +431,14 @@ void FileDialog::update_file_list() {
d["dir"]=false; d["dir"]=false;
ti->set_metadata(0,d); ti->set_metadata(0,d);
if (file->get_text()==files.front()->get()) if (file->get_text()==files.front()->get() || match_str==files.front()->get())
ti->select(0); ti->select(0);
} }
files.pop_front(); files.pop_front();
} }
if (tree->get_root() && tree->get_root()->get_children()) if (tree->get_root() && tree->get_root()->get_children() && tree->get_selected()==NULL)
tree->get_root()->get_children()->select(0); tree->get_root()->get_children()->select(0);
files.clear(); files.clear();