diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index 6c83b053f40..4a97026564e 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -143,6 +143,7 @@ void QtVersionManager::extensionsInitialized() findSystemQt(); } + emit qtVersionsLoaded(); emit qtVersionsChanged(m_versions.keys(), QList(), QList()); saveQtVersions(); @@ -162,6 +163,11 @@ bool QtVersionManager::delayedInitialize() return true; } +bool QtVersionManager::isLoaded() const +{ + return m_writer; +} + QtVersionManager::~QtVersionManager() { delete m_writer; @@ -232,6 +238,7 @@ bool QtVersionManager::restoreQtVersions() qPrintable(filename.toUserOutput())); } ++m_idcount; + return true; } @@ -398,6 +405,7 @@ void QtVersionManager::findSystemQt() void QtVersionManager::addVersion(BaseQtVersion *version) { + QTC_ASSERT(m_writer, return); QTC_ASSERT(version != 0, return); if (m_versions.contains(version->uniqueId())) return; @@ -453,6 +461,7 @@ int QtVersionManager::getUniqueId() QList QtVersionManager::versions() const { QList versions; + QTC_ASSERT(isLoaded(), return versions); foreach (BaseQtVersion *version, m_versions) versions << version; qSort(versions.begin(), versions.end(), &qtVersionNumberCompare); @@ -462,6 +471,7 @@ QList QtVersionManager::versions() const QList QtVersionManager::validVersions() const { QList results; + QTC_ASSERT(isLoaded(), return results); foreach (BaseQtVersion *v, m_versions) { if (v->isValid()) results.append(v); @@ -472,6 +482,7 @@ QList QtVersionManager::validVersions() const bool QtVersionManager::isValidId(int id) const { + QTC_ASSERT(isLoaded(), return false); return m_versions.contains(id); } @@ -508,6 +519,7 @@ QString QtVersionManager::displayNameForPlatform(const QString &string) const BaseQtVersion *QtVersionManager::version(int id) const { + QTC_ASSERT(isLoaded(), return 0); QMap::const_iterator it = m_versions.find(id); if (it == m_versions.constEnd()) return 0; diff --git a/src/plugins/qtsupport/qtversionmanager.h b/src/plugins/qtsupport/qtversionmanager.h index 6df52625978..0701fd42c9f 100644 --- a/src/plugins/qtsupport/qtversionmanager.h +++ b/src/plugins/qtsupport/qtversionmanager.h @@ -68,6 +68,8 @@ public: void extensionsInitialized(); bool delayedInitialize(); + bool isLoaded() const; + // This will *always* return at least one (Qt in Path), even if that is // unconfigured. QList versions() const; @@ -99,6 +101,7 @@ signals: // content of BaseQtVersion objects with qmake path might have changed void dumpUpdatedFor(const Utils::FileName &qmakeCommand); void qtVersionsChanged(const QList &addedIds, const QList &removedIds, const QList &changedIds); + void qtVersionsLoaded(); public slots: void updateDumpFor(const Utils::FileName &qmakeCommand);