From 45fb49ccdc2065b81b548971be6d3d72980349d1 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin <daniel.molkentin@nokia.com>
Date: Wed, 13 Jan 2010 17:39:31 +0100
Subject: [PATCH] Add timestamp for when to pick up new Qt versions.

This assumes that new Qt version entries will be put into
the System scope settings file.
---
 .../qt4projectmanager/qtversionmanager.cpp      | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp
index 4f44b555f97..bcd9701d668 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.cpp
+++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp
@@ -305,12 +305,20 @@ void QtVersionManager::addNewVersionsFromInstaller()
     // NewQtVersions="versionname=pathtoversion=mingw=s60sdk=gcce=carbide;"
     // Duplicate entries are not added, the first new version is set as default.
     QSettings *settings = Core::ICore::instance()->settings();
+    QSettings *globalSettings = Core::ICore::instance()->settings(QSettings::SystemScope);
 
-    if (!settings->contains(newQtVersionsKey) &&
-        !settings->contains(QLatin1String("Installer/")+newQtVersionsKey))
+    QDateTime lastUpdateFromGlobalSettings = globalSettings->value(
+            QLatin1String("General/LastQtVersionUpdate")).toDateTime();
+
+    const QFileInfo gsFi(globalSettings->fileName());
+    if (!gsFi.exists() || (gsFi.lastModified() > lastUpdateFromGlobalSettings))
         return;
 
-//    qDebug()<<"QtVersionManager::addNewVersionsFromInstaller()";
+    if (!globalSettings->contains(newQtVersionsKey) &&
+        !globalSettings->contains(QLatin1String("Installer/")+newQtVersionsKey))
+    {
+        return;
+    }
 
     QString newVersionsValue = settings->value(newQtVersionsKey).toString();
     if (newVersionsValue.isEmpty())
@@ -353,9 +361,8 @@ void QtVersionManager::addNewVersionsFromInstaller()
             }
         }
     }
-    settings->remove(newQtVersionsKey);
-    settings->remove(QLatin1String("Installer/")+newQtVersionsKey);
     updateUniqueIdToIndexMap();
+    settings->setValue(QLatin1String("General/LastQtVersionUpdate"), QDateTime::currentDateTime());
 }
 
 void QtVersionManager::updateSystemVersion()
-- 
GitLab