diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2016-11-21 11:54:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-21 11:54:33 +0100 |
commit | e3c09ed90d120dc1e62d1d468065113318843478 (patch) | |
tree | 283f3ce4127b656047646c4ed1203ce20a14f075 | |
parent | 9df47f2c69f2649a35e44dddf97d066b3f49f88e (diff) | |
parent | ff4f04e87844290f3bef5f2ee874c11a7b546a37 (diff) |
Merge pull request #7124 from volzhs/select_match
Select exactly matched file automatically in FileDialog
-rw-r--r-- | scene/gui/file_dialog.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp index f942f15ed0..b0214b8648 100644 --- a/scene/gui/file_dialog.cpp +++ b/scene/gui/file_dialog.cpp @@ -403,11 +403,12 @@ void FileDialog::update_file_list() { while(!files.empty()) { bool match=patterns.empty(); + String match_str; for(List<String>::Element *E=patterns.front();E;E=E->next()) { if (files.front()->get().matchn(E->get())) { - + match_str=E->get(); match=true; break; } @@ -432,14 +433,14 @@ void FileDialog::update_file_list() { d["dir"]=false; 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); } 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); files.clear(); |