The code passes a lot of data back and forth. It uses OpenMP to read the files and then a bunch of Qt magic to maintain the "relevant" information. It would probably be easier and smarter to make a special File like object that does all of the heavy lifting. Then OpenMP should simply call the object search methods in parallel.
This will also help with the struggle of displaying user requested data as it will be stored in the File like object.