diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index d1aa4b0880aa76155074d98fcc9c2a25165f333a..e90cd6dfe8654e9ba6e2faf2ec415d31aa8c77db 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -42,6 +42,7 @@ #include <utils/persistentsettings.h> #include <utils/environment.h> +#include <utils/qtcassert.h> #include <QCoreApplication> #include <QDir> @@ -91,7 +92,7 @@ public: KitManagerPrivate::KitManagerPrivate() : m_defaultKit(0), m_initialized(false), - m_writer(new Utils::PersistentSettingsWriter(settingsFileName(), QLatin1String("QtCreatorProfiles"))) + m_writer(0) { } KitManagerPrivate::~KitManagerPrivate() @@ -148,6 +149,7 @@ KitManager::KitManager(QObject *parent) : void KitManager::restoreKits() { + QTC_ASSERT(!d->m_writer, return); QList<Kit *> kitsToRegister; QList<Kit *> kitsToCheck; @@ -213,6 +215,8 @@ void KitManager::restoreKits() Kit *k = find(userKits.defaultKit); if (k) setDefaultKit(k); + + d->m_writer = new Utils::PersistentSettingsWriter(settingsFileName(), QLatin1String("QtCreatorProfiles")); } KitManager::~KitManager() @@ -224,7 +228,7 @@ KitManager::~KitManager() void KitManager::saveKits() { - if (!d->m_initialized) // ignore save requests while we are not initialized. + if (!d->m_writer) // ignore save requests while we are not initialized. return; QVariantMap data; diff --git a/src/plugins/projectexplorer/toolchainmanager.cpp b/src/plugins/projectexplorer/toolchainmanager.cpp index 5a9eb58870f4d6844f18e5ea060aad2c3cbffd1d..158c7401acbbffde95f03d7f7f74f56eeaad3796 100644 --- a/src/plugins/projectexplorer/toolchainmanager.cpp +++ b/src/plugins/projectexplorer/toolchainmanager.cpp @@ -39,6 +39,7 @@ #include <extensionsystem/pluginmanager.h> #include <utils/persistentsettings.h> +#include <utils/qtcassert.h> #include <QCoreApplication> #include <QDir> @@ -81,7 +82,6 @@ public: QList<ToolChain *> &toolChains(); ToolChainManager *q; - bool m_initialized; QMap<QString, Utils::FileName> m_abiToDebugger; Utils::PersistentSettingsWriter *m_writer; @@ -90,8 +90,7 @@ private: }; ToolChainManagerPrivate::ToolChainManagerPrivate(ToolChainManager *parent) - : q(parent), m_initialized(false), - m_writer(new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(TOOLCHAIN_FILENAME)), QLatin1String("QtCreatorToolChains"))) + : q(parent), m_writer(0) { } ToolChainManagerPrivate::~ToolChainManagerPrivate() @@ -99,10 +98,8 @@ ToolChainManagerPrivate::~ToolChainManagerPrivate() QList<ToolChain *> &ToolChainManagerPrivate::toolChains() { - if (!m_initialized) { - m_initialized = true; + if (!m_writer) q->restoreToolChains(); - } return m_toolChains; } @@ -136,6 +133,10 @@ ToolChainManager::ToolChainManager(QObject *parent) : void ToolChainManager::restoreToolChains() { + QTC_ASSERT(!d->m_writer, return); + d->m_writer = + new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(TOOLCHAIN_FILENAME)), QLatin1String("QtCreatorToolChains")); + QList<ToolChain *> tcsToRegister; QList<ToolChain *> tcsToCheck; diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index 81fa5b99b6ef9b953bfbc666de08d420486c8cb8..93cf2eb3a00b4744748291c190570be1cc737bb6 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -177,6 +177,10 @@ QtVersionManager *QtVersionManager::instance() bool QtVersionManager::restoreQtVersions() { + QTC_ASSERT(!m_writer, return false); + m_writer = new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(QTVERSION_FILENAME)), + QLatin1String("QtCreatorQtVersions")); + QList<QtVersionFactory *> factories = ExtensionSystem::PluginManager::getObjects<QtVersionFactory>(); Utils::PersistentSettingsReader reader; @@ -362,8 +366,7 @@ void QtVersionManager::updateFromInstaller(bool emitSignal) void QtVersionManager::saveQtVersions() { if (!m_writer) - m_writer = new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(QTVERSION_FILENAME)), - QLatin1String("QtCreatorQtVersions")); + return; QVariantMap data; data.insert(QLatin1String(QTVERSION_FILE_VERSION_KEY), 1);