From 071eadc088af337f5682a8c31834d7ee0f843a34 Mon Sep 17 00:00:00 2001 From: Gres Date: Sun, 5 Apr 2020 14:34:47 +0300 Subject: [PATCH] Fix last update check date handling --- src/manager.cpp | 16 +++++++++------- src/service/updates.cpp | 3 +++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/manager.cpp b/src/manager.cpp index bb0a3c0..3b258bc 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -31,6 +31,7 @@ const auto updatesUrl = Manager::Manager() : settings_(std::make_unique()) , updater_(std::make_unique(QUrl(updatesUrl))) + , updateAutoChecker_(std::make_unique(*updater_)) , models_(std::make_unique()) { SOFT_ASSERT(settings_, return ); @@ -141,13 +142,9 @@ void Manager::setupUpdates(const Settings &settings) {"$tessdata$", settings.tessdataPath}, }); - if (settings.autoUpdateIntervalDays > 0) { - updateAutoChecker_ = std::make_unique(*updater_); - updateAutoChecker_->setLastCheckDate(settings.lastUpdateCheck); - updateAutoChecker_->setCheckIntervalDays(settings.autoUpdateIntervalDays); - } else { - updateAutoChecker_.reset(); - } + SOFT_ASSERT(updateAutoChecker_, return ); + updateAutoChecker_->setLastCheckDate(settings.lastUpdateCheck); + updateAutoChecker_->setCheckIntervalDays(settings.autoUpdateIntervalDays); } void Manager::setupTrace(bool isOn) @@ -269,7 +266,12 @@ void Manager::translated(const TaskPtr &task) void Manager::applySettings(const Settings &settings) { SOFT_ASSERT(settings_, return ); + const auto lastUpdate = settings_->lastUpdateCheck; // not handled in editor + *settings_ = settings; + + settings_->lastUpdateCheck = lastUpdate; + settings_->save(); updateSettings(); } diff --git a/src/service/updates.cpp b/src/service/updates.cpp index af0ed60..00c0089 100644 --- a/src/service/updates.cpp +++ b/src/service/updates.cpp @@ -963,6 +963,9 @@ void AutoChecker::setLastCheckDate(const QDateTime &dt) void AutoChecker::scheduleNextCheck() { + if (timer_) + timer_->stop(); + if (checkIntervalDays_ < 1 || !lastCheckDate_.isValid()) return;