From d70ea49c53ee8e11206054a488404cc286c7b99b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 20 Aug 2023 18:42:11 +0200 Subject: [PATCH] Minimize the amount of actions available during updates --- YACReaderLibrary/libraries_update_coordinator.cpp | 12 ++++++++---- YACReaderLibrary/libraries_update_coordinator.h | 3 ++- YACReaderLibrary/library_window.cpp | 5 +++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/YACReaderLibrary/libraries_update_coordinator.cpp b/YACReaderLibrary/libraries_update_coordinator.cpp index bfbf8348..adb4addb 100644 --- a/YACReaderLibrary/libraries_update_coordinator.cpp +++ b/YACReaderLibrary/libraries_update_coordinator.cpp @@ -6,16 +6,20 @@ #include "yacreader_global.h" LibrariesUpdateCoordinator::LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent) - : QObject(parent), libraries(libraries), timer(new QTimer(this)) + : QObject(parent), libraries(libraries) { libraries.load(); this->settings = settings; - timer->setInterval(1000 * 60); - timer->start(); - connect(timer, &QTimer::timeout, this, &LibrariesUpdateCoordinator::checkUpdatePolicy); + timer.setInterval(1000 * 60); + connect(&timer, &QTimer::timeout, this, &LibrariesUpdateCoordinator::checkUpdatePolicy); +} + +void LibrariesUpdateCoordinator::init() +{ + timer.start(); elapsedTimer.start(); if (settings->value(UPDATE_LIBRARIES_AT_STARTUP, false).toBool()) { diff --git a/YACReaderLibrary/libraries_update_coordinator.h b/YACReaderLibrary/libraries_update_coordinator.h index ce80c7bd..205f8a89 100644 --- a/YACReaderLibrary/libraries_update_coordinator.h +++ b/YACReaderLibrary/libraries_update_coordinator.h @@ -13,6 +13,7 @@ class LibrariesUpdateCoordinator : public QObject public: LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent = 0); + void init(); void updateLibraries(); void stop(); void cancel(); @@ -29,7 +30,7 @@ private slots: private: QSettings *settings; YACReaderLibraries &libraries; - QTimer *timer; + QTimer timer; QElapsedTimer elapsedTimer; std::future updateFuture; bool canceled; diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 8bdfa5e5..09434508 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -507,7 +507,12 @@ void LibraryWindow::setupCoordinators() connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateStarted, sideBar->librariesTitle, &YACReaderTitledToolBar::showBusyIndicator); connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, sideBar->librariesTitle, &YACReaderTitledToolBar::hideBusyIndicator); + connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateStarted, this, [=]() { + disableAllActions(); + }); connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, this, &LibraryWindow::reloadCurrentLibrary); + + librariesUpdateCoordinator->init(); } void LibraryWindow::createActions()