void SearchThread::FilterFiles(wxArrayString& files, const SearchData* data) { wxArrayString tmpFiles; std::set<wxString> uniqueFiles; const wxString& mask = data->GetExtensions(); std::for_each(files.begin(), files.end(), [&](wxString& filename) { if(uniqueFiles.count(filename)) return; uniqueFiles.insert(filename); if(FileUtils::WildMatch(mask, filename)) { tmpFiles.Add(filename); } }); files.swap(tmpFiles); }