From 56bacbfc7ea9cd2ef899145a93917f197eb9e818 Mon Sep 17 00:00:00 2001 From: Gres Date: Sun, 5 Apr 2020 14:31:10 +0300 Subject: [PATCH] Warn if version might be outdated --- src/manager.cpp | 19 +++++++++++++++++++ src/manager.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/manager.cpp b/src/manager.cpp index 0f2dd14..bb0a3c0 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -49,6 +50,8 @@ Manager::Manager() if (settings_->showMessageOnStart) tray_->showInformation(QObject::tr("Screen translator started")); + warnIfOutdated(); + QObject::connect(updater_.get(), &update::Loader::error, // tray_.get(), &TrayIcon::showError); QObject::connect(updater_.get(), &update::Loader::updated, // @@ -71,6 +74,22 @@ Manager::~Manager() setupTrace(false); } +void Manager::warnIfOutdated() +{ + const auto now = QDateTime::currentDateTime(); + const auto binaryInfo = QFileInfo(QApplication::applicationFilePath()); + const auto date = binaryInfo.fileTime(QFile::FileTime::FileBirthTime); + const auto deadlineDays = 90; + if (date.daysTo(now) < deadlineDays) + return; + const auto updateDate = settings_->lastUpdateCheck; + if (updateDate.isValid() && updateDate.daysTo(now) < deadlineDays) + return; + tray_->showInformation( + QObject::tr("Current version might be outdated.\n" + "Check for updates to silence this warning")); +} + void Manager::updateSettings() { LTRACE() << "updateSettings"; diff --git a/src/manager.h b/src/manager.h index b593ac4..98e7ec3 100644 --- a/src/manager.h +++ b/src/manager.h @@ -33,6 +33,7 @@ private: void setupUpdates(const Settings &settings); void setupTrace(bool isOn); void finishTask(const TaskPtr &task); + void warnIfOutdated(); std::unique_ptr settings_; std::unique_ptr tray_;