diff --git a/YACReaderLibrary/libraries_update_coordinator.cpp b/YACReaderLibrary/libraries_update_coordinator.cpp index adb4addb..a092b1e0 100644 --- a/YACReaderLibrary/libraries_update_coordinator.cpp +++ b/YACReaderLibrary/libraries_update_coordinator.cpp @@ -5,8 +5,8 @@ #include "yacreader_libraries.h" #include "yacreader_global.h" -LibrariesUpdateCoordinator::LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent) - : QObject(parent), libraries(libraries) +LibrariesUpdateCoordinator::LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, const std::function &canStartUpdateProvider, QObject *parent) + : QObject(parent), libraries(libraries), canStartUpdateProvider(canStartUpdateProvider) { libraries.load(); @@ -78,7 +78,9 @@ void LibrariesUpdateCoordinator::checkUpdatePolicy() void LibrariesUpdateCoordinator::updateLibraries() { - startUpdate(); + if (canStartUpdateProvider()) { + startUpdate(); + } } void LibrariesUpdateCoordinator::startUpdate() diff --git a/YACReaderLibrary/libraries_update_coordinator.h b/YACReaderLibrary/libraries_update_coordinator.h index 3daa4975..3f943f51 100644 --- a/YACReaderLibrary/libraries_update_coordinator.h +++ b/YACReaderLibrary/libraries_update_coordinator.h @@ -11,7 +11,7 @@ class LibrariesUpdateCoordinator : public QObject { Q_OBJECT public: - LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent = 0); + LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, const std::function &canStartUpdateProvider, QObject *parent = 0); void init(); void updateLibraries(); @@ -37,6 +37,8 @@ private: std::future updateFuture; bool canceled; std::weak_ptr currentLibraryCreator; + + std::function canStartUpdateProvider; }; #endif // LIBRARIES_UPDATE_COORDINATOR_H diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index b79b5ba9..c9ac0a3d 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -502,7 +502,12 @@ void LibraryWindow::doModels() void LibraryWindow::setupCoordinators() { recentVisibilityCoordinator = new RecentVisibilityCoordinator(settings, foldersModel, contentViewsManager->folderContentView, comicsModel); - librariesUpdateCoordinator = new LibrariesUpdateCoordinator(settings, libraries, this); + + auto canStartUpdateProvider = [this]() { + return comicVineDialog->isVisible() == false && + propertiesDialog->isVisible() == false; + }; + librariesUpdateCoordinator = new LibrariesUpdateCoordinator(settings, libraries, canStartUpdateProvider, this); connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateStarted, sideBar->librariesTitle, &YACReaderTitledToolBar::showBusyIndicator); connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, sideBar->librariesTitle, &YACReaderTitledToolBar::hideBusyIndicator);