aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qtsupport
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2012-08-17 13:18:31 +0200
committerTobias Hunger <tobias.hunger@nokia.com>2012-08-24 15:48:40 +0200
commit96d80096937dee90f7566538245daa9b0c4aa08a (patch)
tree4079dd3e3d207f9dde540f88f77359361c6757af /src/plugins/qtsupport
parent29ec32a531912df1008ba12db99df8a3cd9afefe (diff)
Fix saving of xml files
Do not save XML config files (profiles.xml, toolchains.xml, etc.) if the file has not changed. Change-Id: I5f0dea374b33a05e7c428f4031d53c83d92de595 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src/plugins/qtsupport')
-rw-r--r--src/plugins/qtsupport/qtversionmanager.cpp16
-rw-r--r--src/plugins/qtsupport/qtversionmanager.h7
2 files changed, 16 insertions, 7 deletions
diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp
index 9335cbfb5b..14ec9a7659 100644
--- a/src/plugins/qtsupport/qtversionmanager.cpp
+++ b/src/plugins/qtsupport/qtversionmanager.cpp
@@ -120,7 +120,8 @@ QtVersionManager *QtVersionManager::m_self = 0;
QtVersionManager::QtVersionManager() :
m_configFileWatcher(0),
- m_fileWatcherTimer(new QTimer(this))
+ m_fileWatcherTimer(new QTimer(this)),
+ m_writer(0)
{
m_self = this;
m_idcount = 1;
@@ -163,6 +164,7 @@ bool QtVersionManager::delayedInitialize()
QtVersionManager::~QtVersionManager()
{
+ delete m_writer;
qDeleteAll(m_versions);
m_versions.clear();
}
@@ -233,8 +235,8 @@ void QtVersionManager::updateFromInstaller()
{
m_fileWatcherTimer->stop();
- // Handle overwritting of data:
const Utils::FileName path = globalSettingsFileName();
+ // Handle overwritting of data:
if (m_configFileWatcher) {
m_configFileWatcher->removeFile(path.toString());
m_configFileWatcher->addFile(path.toString(), Utils::FileSystemWatcher::WatchModifiedDate);
@@ -357,8 +359,10 @@ void QtVersionManager::updateFromInstaller()
void QtVersionManager::saveQtVersions()
{
- Utils::PersistentSettingsWriter writer;
- writer.saveValue(QLatin1String(QTVERSION_FILE_VERSION_KEY), 1);
+ if (!m_writer)
+ m_writer = new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(QTVERSION_FILENAME)),
+ QLatin1String("QtCreatorQtVersions"));
+ m_writer->saveValue(QLatin1String(QTVERSION_FILE_VERSION_KEY), 1);
int count = 0;
foreach (BaseQtVersion *qtv, m_versions) {
@@ -366,11 +370,11 @@ void QtVersionManager::saveQtVersions()
if (tmp.isEmpty())
continue;
tmp.insert(QLatin1String(QTVERSION_TYPE_KEY), qtv->type());
- writer.saveValue(QString::fromLatin1(QTVERSION_DATA_KEY) + QString::number(count), tmp);
+ m_writer->saveValue(QString::fromLatin1(QTVERSION_DATA_KEY) + QString::number(count), tmp);
++count;
}
- writer.save(settingsFileName(QLatin1String(QTVERSION_FILENAME)), QLatin1String("QtCreatorQtVersions"), Core::ICore::mainWindow());
+ m_writer->save(Core::ICore::mainWindow());
}
void QtVersionManager::findSystemQt()
diff --git a/src/plugins/qtsupport/qtversionmanager.h b/src/plugins/qtsupport/qtversionmanager.h
index 2b378895ed..f2f4697c44 100644
--- a/src/plugins/qtsupport/qtversionmanager.h
+++ b/src/plugins/qtsupport/qtversionmanager.h
@@ -37,7 +37,11 @@
#include <QSet>
#include <QStringList>
-namespace Utils { class FileSystemWatcher; }
+namespace Utils {
+class FileSystemWatcher;
+class PersistentSettingsWriter;
+} // namespace Utils
+
namespace ProjectExplorer { class ProfileInformation; }
namespace QtSupport {
@@ -143,6 +147,7 @@ private:
Utils::FileSystemWatcher *m_configFileWatcher;
QTimer *m_fileWatcherTimer;
+ Utils::PersistentSettingsWriter *m_writer;
};
namespace Internal {