citra-qt: disable directory watcher during CIA installation (#4284)
* disable directory watcher during CIA installation fixes several errors while installing multiple CIAs * use braces in if statement
This commit is contained in:
parent
756a3d404a
commit
ce823759cc
3 changed files with 16 additions and 1 deletions
|
@ -267,7 +267,8 @@ void GameList::onFilterCloseClicked() {
|
|||
|
||||
GameList::GameList(GMainWindow* parent) : QWidget{parent} {
|
||||
watcher = new QFileSystemWatcher(this);
|
||||
connect(watcher, &QFileSystemWatcher::directoryChanged, this, &GameList::RefreshGameDirectory);
|
||||
connect(watcher, &QFileSystemWatcher::directoryChanged, this, &GameList::RefreshGameDirectory,
|
||||
Qt::UniqueConnection);
|
||||
|
||||
this->main_window = parent;
|
||||
layout = new QVBoxLayout;
|
||||
|
@ -325,6 +326,16 @@ void GameList::setFilterVisible(bool visibility) {
|
|||
search_field->setVisible(visibility);
|
||||
}
|
||||
|
||||
void GameList::setDirectoryWatcherEnabled(bool enabled) {
|
||||
if (enabled) {
|
||||
connect(watcher, &QFileSystemWatcher::directoryChanged, this,
|
||||
&GameList::RefreshGameDirectory, Qt::UniqueConnection);
|
||||
} else {
|
||||
disconnect(watcher, &QFileSystemWatcher::directoryChanged, this,
|
||||
&GameList::RefreshGameDirectory);
|
||||
}
|
||||
}
|
||||
|
||||
void GameList::clearFilter() {
|
||||
search_field->clear();
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ public:
|
|||
void clearFilter();
|
||||
void setFilterFocus();
|
||||
void setFilterVisible(bool visibility);
|
||||
void setDirectoryWatcherEnabled(bool enabled);
|
||||
bool isEmpty();
|
||||
|
||||
void LoadCompatibilityList();
|
||||
|
|
|
@ -1013,6 +1013,7 @@ void GMainWindow::OnMenuInstallCIA() {
|
|||
return;
|
||||
|
||||
ui.action_Install_CIA->setEnabled(false);
|
||||
game_list->setDirectoryWatcherEnabled(false);
|
||||
progress_bar->show();
|
||||
progress_bar->setMaximum(INT_MAX);
|
||||
|
||||
|
@ -1066,7 +1067,9 @@ void GMainWindow::OnCIAInstallReport(Service::AM::InstallStatus status, QString
|
|||
void GMainWindow::OnCIAInstallFinished() {
|
||||
progress_bar->hide();
|
||||
progress_bar->setValue(0);
|
||||
game_list->setDirectoryWatcherEnabled(true);
|
||||
ui.action_Install_CIA->setEnabled(true);
|
||||
game_list->PopulateAsync(UISettings::values.game_dirs);
|
||||
}
|
||||
|
||||
void GMainWindow::OnMenuRecentFile() {
|
||||
|
|
Loading…
Reference in a new issue