# HG changeset patch # User Andre Heinecke # Date 1411730326 -7200 # Node ID f1e461340ede7d7620511a370d4fa1c29a13983b # Parent 469c1a04b678b20dd5e36bc71b48b26b12cf9917 (issue44) Move check if the SW was updated into setLastModifiedSWDate setLastModifiedSWDate is ideally only called once to register a new version so this is the best place to note if an update has been installed. diff -r 469c1a04b678 -r f1e461340ede ui/mainwindow.cpp --- a/ui/mainwindow.cpp Fri Sep 26 12:45:27 2014 +0200 +++ b/ui/mainwindow.cpp Fri Sep 26 13:18:46 2014 +0200 @@ -511,31 +511,6 @@ } QDateTime listInstalledLastMod = mSettings.value("List/installedDate").toDateTime(); QDateTime swInstalledLastMod = mSettings.value("Software/installedDate").toDateTime(); - - QDateTime swAvailableLastMod = mSettings.value("Software/availableDate").toDateTime(); - - if (swAvailableLastMod.isValid()) { - qDebug() << "Installed an update: " << swInstalledLastMod << - " available " << swAvailableLastMod; - syslog_info_printf ("Software has been updated to version: %s\n", - QApplication::applicationVersion().toUtf8().constData()); - if (swInstalledLastMod == swAvailableLastMod) { - QString fileName = mSettings.value("Software/available").toString(); - if (fileName.isEmpty()) { - qDebug() << "Software marked as available but no filename set."; - } else { - if (QFile::remove(fileName)) { - qDebug() << "Removed: " << fileName; - } else { - qDebug() << "Failed to remove: " << fileName; - } - } - /* Clear out available data. */ - mSettings.remove("Software/available"); - mSettings.remove("Software/availableDate"); - } - } - QString listResource = QString::fromLatin1(LIST_RESOURCE); QString swResource = QString::fromLatin1(SW_RESOURCE); @@ -608,6 +583,30 @@ void MainWindow::setLastModifiedSWDate(const QDateTime &date) { + QDateTime swAvailableLastMod = mSettings.value("Software/availableDate").toDateTime(); + + if (swAvailableLastMod.isValid() && date.isValid()) { + if (date >= swAvailableLastMod) { + qDebug() << "Installed an update: " << date << + " available was " << swAvailableLastMod; + syslog_info_printf ("Software has been updated to version: %s\n", + QApplication::applicationVersion().toUtf8().constData()); + QString fileName = mSettings.value("Software/available").toString(); + if (fileName.isEmpty()) { + qDebug() << "Software marked as available but no filename set."; + } else { + if (QFile::remove(fileName)) { + qDebug() << "Removed: " << fileName; + } else { + qDebug() << "Failed to remove: " << fileName; + } + } + /* Clear out available data. */ + mSettings.remove("Software/available"); + mSettings.remove("Software/availableDate"); + } + } + mSettings.beginGroup("Software"); #ifdef IS_TAG_BUILD /* We accept an invalid date to force installing any avialable update