Minimize the amount of actions available during updates

This commit is contained in:
Luis Ángel San Martín 2023-08-20 18:42:11 +02:00
parent a6696f35b2
commit d70ea49c53
3 changed files with 15 additions and 5 deletions

View File

@ -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()) {

View File

@ -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<void> updateFuture;
bool canceled;

View File

@ -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()