diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp index d40449199af72e68180b9c90ee26e765b47f79e1..0fb831fcd20082480b8329b9eb38fa1ffafe9a98 100644 --- a/src/plugins/qtsupport/qtsupportplugin.cpp +++ b/src/plugins/qtsupport/qtsupportplugin.cpp @@ -96,6 +96,8 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes ProjectExplorer::KitManager::registerKitInformation(new QtKitInformation); + QtVersionManager::initialized(); + return true; } @@ -108,8 +110,6 @@ void QtSupportPlugin::extensionsInitialized() " You probably want %1 instead.").arg(QString::fromLatin1(kHostBins))); connect(VariableManager::instance(), SIGNAL(variableUpdateRequested(QByteArray)), this, SLOT(updateVariable(QByteArray))); - - QtVersionManager::extensionsInitialized(); } bool QtSupportPlugin::delayedInitialize() diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index 37e2cd36993b4758eaf54e657e525cb9ce125a00..a0081e4e0343eb7aec16d25499ca1085bcdcc774 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -40,6 +40,8 @@ #include <extensionsystem/pluginmanager.h> +#include <projectexplorer/toolchainmanager.h> + #include <utils/buildablehelperlibrary.h> #include <utils/filesystemwatcher.h> #include <utils/hostosinfo.h> @@ -159,8 +161,11 @@ QtVersionManager::QtVersionManager() connect(m_fileWatcherTimer, SIGNAL(timeout()), SLOT(updateFromInstaller())); } -void QtVersionManager::extensionsInitialized() +void QtVersionManager::triggerQtVersionRestore() { + disconnect(ProjectExplorer::ToolChainManager::instance(), SIGNAL(toolChainsLoaded()), + this, SLOT(triggerQtVersionRestore())); + bool success = restoreQtVersions(); m_instance->updateFromInstaller(false); if (!success) { @@ -202,6 +207,12 @@ QtVersionManager::~QtVersionManager() m_versions.clear(); } +void QtVersionManager::initialized() +{ + connect(ProjectExplorer::ToolChainManager::instance(), SIGNAL(toolChainsLoaded()), + QtVersionManager::instance(), SLOT(triggerQtVersionRestore())); +} + QObject *QtVersionManager::instance() { return m_instance; diff --git a/src/plugins/qtsupport/qtversionmanager.h b/src/plugins/qtsupport/qtversionmanager.h index c4b2fda07c5f769bbc435bfba61a8563879e57c9..8f8bf538e4152968f8cefd4d884159bf488dbb88 100644 --- a/src/plugins/qtsupport/qtversionmanager.h +++ b/src/plugins/qtsupport/qtversionmanager.h @@ -45,7 +45,7 @@ public: static QObject *instance(); QtVersionManager(); ~QtVersionManager(); - static void extensionsInitialized(); + static void initialized(); static bool delayedInitialize(); static bool isLoaded(); @@ -83,6 +83,7 @@ public slots: private slots: void updateFromInstaller(bool emitSignal = true); + void triggerQtVersionRestore(); private: // Used by QtOptionsPage