Frontend: Prevent FileSystemWatcher from blocking UI thread

Instead of tying the QFileSystemWatcher to the GameList and updating in
the UI thread, this change moves it to the worker thread. Since it gets
deleted and recreated as part of the worker thread, this prevents it from
ever getting used from multiple threads (which is why it was originally
done on the UI thread)
This commit is contained in:
James Rowe 2017-04-17 20:53:40 -06:00
parent 7325413cd8
commit fc2f7b0df6
3 changed files with 35 additions and 46 deletions

View file

@ -170,9 +170,15 @@ signals:
* @param entry_items a list with `QStandardItem`s that make up the columns of the new entry.
*/
void EntryReady(QList<QStandardItem*> entry_items);
void Finished();
/**
* After the worker has traversed the game directory looking for entries, this signal is emmited
* with a list of folders that should be watched for changes as well.
*/
void Finished(QStringList watch_list);
private:
QStringList watch_list;
QString dir_path;
bool deep_scan;
std::atomic_bool stop_processing;