mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
Add a mechanism to control if automatic updates can start
For now they won't start if the user is editing comics information.
This commit is contained in:
parent
e4fb0fd40c
commit
b513103d9b
@ -5,8 +5,8 @@
|
|||||||
#include "yacreader_libraries.h"
|
#include "yacreader_libraries.h"
|
||||||
#include "yacreader_global.h"
|
#include "yacreader_global.h"
|
||||||
|
|
||||||
LibrariesUpdateCoordinator::LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent)
|
LibrariesUpdateCoordinator::LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, const std::function<bool()> &canStartUpdateProvider, QObject *parent)
|
||||||
: QObject(parent), libraries(libraries)
|
: QObject(parent), libraries(libraries), canStartUpdateProvider(canStartUpdateProvider)
|
||||||
{
|
{
|
||||||
libraries.load();
|
libraries.load();
|
||||||
|
|
||||||
@ -78,7 +78,9 @@ void LibrariesUpdateCoordinator::checkUpdatePolicy()
|
|||||||
|
|
||||||
void LibrariesUpdateCoordinator::updateLibraries()
|
void LibrariesUpdateCoordinator::updateLibraries()
|
||||||
{
|
{
|
||||||
startUpdate();
|
if (canStartUpdateProvider()) {
|
||||||
|
startUpdate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LibrariesUpdateCoordinator::startUpdate()
|
void LibrariesUpdateCoordinator::startUpdate()
|
||||||
|
@ -11,7 +11,7 @@ class LibrariesUpdateCoordinator : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, QObject *parent = 0);
|
LibrariesUpdateCoordinator(QSettings *settings, YACReaderLibraries &libraries, const std::function<bool()> &canStartUpdateProvider, QObject *parent = 0);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void updateLibraries();
|
void updateLibraries();
|
||||||
@ -37,6 +37,8 @@ private:
|
|||||||
std::future<void> updateFuture;
|
std::future<void> updateFuture;
|
||||||
bool canceled;
|
bool canceled;
|
||||||
std::weak_ptr<LibraryCreator> currentLibraryCreator;
|
std::weak_ptr<LibraryCreator> currentLibraryCreator;
|
||||||
|
|
||||||
|
std::function<bool()> canStartUpdateProvider;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LIBRARIES_UPDATE_COORDINATOR_H
|
#endif // LIBRARIES_UPDATE_COORDINATOR_H
|
||||||
|
@ -502,7 +502,12 @@ void LibraryWindow::doModels()
|
|||||||
void LibraryWindow::setupCoordinators()
|
void LibraryWindow::setupCoordinators()
|
||||||
{
|
{
|
||||||
recentVisibilityCoordinator = new RecentVisibilityCoordinator(settings, foldersModel, contentViewsManager->folderContentView, comicsModel);
|
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::updateStarted, sideBar->librariesTitle, &YACReaderTitledToolBar::showBusyIndicator);
|
||||||
connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, sideBar->librariesTitle, &YACReaderTitledToolBar::hideBusyIndicator);
|
connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, sideBar->librariesTitle, &YACReaderTitledToolBar::hideBusyIndicator);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user