yacreader/YACReaderLibrary/libraries_update_coordinator.h
Luis Ángel San Martín b513103d9b Add a mechanism to control if automatic updates can start
For now they won't start if the user is editing comics information.
2023-08-23 22:45:09 +02:00

45 lines
979 B
C++

#ifndef LIBRARIES_UPDATE_COORDINATOR_H
#define LIBRARIES_UPDATE_COORDINATOR_H
#include <QtCore>
class YACReaderLibraries;
class LibraryCreator;
class LibrariesUpdateCoordinator : public QObject
{
Q_OBJECT
public:
LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, const std::function<bool()> &canStartUpdateProvider, QObject *parent = 0);
void init();
void updateLibraries();
public slots:
void stop();
void cancel();
signals:
void updateStarted();
void updateEnded();
private slots:
void checkUpdatePolicy();
void startUpdate();
void updateLibrary(const QString &path);
private:
QSettings *settings;
YACReaderLibraries &libraries;
QTimer timer;
QElapsedTimer elapsedTimer;
std::future<void> updateFuture;
bool canceled;
std::weak_ptr<LibraryCreator> currentLibraryCreator;
std::function<bool()> canStartUpdateProvider;
};
#endif // LIBRARIES_UPDATE_COORDINATOR_H