From 8b84fef929f7f02dab312287a29329836551a79c Mon Sep 17 00:00:00 2001 From: Gres Date: Wed, 18 Mar 2020 20:24:11 +0300 Subject: [PATCH] Update only last check date when needed --- src/manager.cpp | 8 ++------ src/settings.cpp | 15 +++++++++++++++ src/settings.h | 2 ++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/manager.cpp b/src/manager.cpp index 6095c91..930c2ed 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -62,12 +62,8 @@ Manager::Manager() Manager::~Manager() { - if (updateAutoChecker_ && updateAutoChecker_->isLastCheckDateChanged()) { - Settings settings; - settings.load(); - settings.lastUpdateCheck = updateAutoChecker_->lastCheckDate(); - settings.save(); - } + if (updateAutoChecker_ && updateAutoChecker_->isLastCheckDateChanged()) + Settings::saveLastUpdateCheck(updateAutoChecker_->lastCheckDate()); } void Manager::updateSettings(const Settings &settings) diff --git a/src/settings.cpp b/src/settings.cpp index e9e9e63..4839742 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -254,6 +254,21 @@ void Settings::load() settings.endGroup(); } +void Settings::saveLastUpdateCheck(const QDateTime& dt) +{ + std::unique_ptr ptr; + if (QFile::exists(iniFileName)) { + ptr = std::make_unique(iniFileName, QSettings::IniFormat); + } else { + ptr = std::make_unique(); + } + auto& settings = *ptr; + + settings.beginGroup(qs_guiGroup); + settings.setValue(qs_lastUpdateCheck, dt); + settings.endGroup(); +} + bool Settings::isPortable() const { return isPortable_; diff --git a/src/settings.h b/src/settings.h index 1a52be0..ec96c1c 100644 --- a/src/settings.h +++ b/src/settings.h @@ -23,6 +23,8 @@ public: void save() const; void load(); + static void saveLastUpdateCheck(const QDateTime& dt); + bool isPortable() const; void setPortable(bool isPortable);