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" #include "yacreader_global.h"
LibrariesUpdateCoordinator::LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent) LibrariesUpdateCoordinator::LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent)
: QObject(parent), libraries(libraries), timer(new QTimer(this)) : QObject(parent), libraries(libraries)
{ {
libraries.load(); libraries.load();
this->settings = settings; this->settings = settings;
timer->setInterval(1000 * 60); timer.setInterval(1000 * 60);
timer->start();
connect(timer, &QTimer::timeout, this, &LibrariesUpdateCoordinator::checkUpdatePolicy);
connect(&timer, &QTimer::timeout, this, &LibrariesUpdateCoordinator::checkUpdatePolicy);
}
void LibrariesUpdateCoordinator::init()
{
timer.start();
elapsedTimer.start(); elapsedTimer.start();
if (settings->value(UPDATE_LIBRARIES_AT_STARTUP, false).toBool()) { if (settings->value(UPDATE_LIBRARIES_AT_STARTUP, false).toBool()) {

View File

@ -13,6 +13,7 @@ class LibrariesUpdateCoordinator : public QObject
public: public:
LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent = 0); LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent = 0);
void init();
void updateLibraries(); void updateLibraries();
void stop(); void stop();
void cancel(); void cancel();
@ -29,7 +30,7 @@ private slots:
private: private:
QSettings *settings; QSettings *settings;
YACReaderLibraries &libraries; YACReaderLibraries &libraries;
QTimer *timer; QTimer timer;
QElapsedTimer elapsedTimer; QElapsedTimer elapsedTimer;
std::future<void> updateFuture; std::future<void> updateFuture;
bool canceled; bool canceled;

View File

@ -507,7 +507,12 @@ void LibraryWindow::setupCoordinators()
connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateStarted, sideBar->librariesTitle, &YACReaderTitledToolBar::showBusyIndicator); connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateStarted, sideBar->librariesTitle, &YACReaderTitledToolBar::showBusyIndicator);
connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, sideBar->librariesTitle, &YACReaderTitledToolBar::hideBusyIndicator); connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, sideBar->librariesTitle, &YACReaderTitledToolBar::hideBusyIndicator);
connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateStarted, this, [=]() {
disableAllActions();
});
connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, this, &LibraryWindow::reloadCurrentLibrary); connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, this, &LibraryWindow::reloadCurrentLibrary);
librariesUpdateCoordinator->init();
} }
void LibraryWindow::createActions() void LibraryWindow::createActions()