From 872da99bbf5027d0eb4e84584f18b8f0093144ba Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@digia.com> Date: Thu, 28 Feb 2013 14:41:43 +0100 Subject: [PATCH] QtVersionManager: Add method isLoaded() This method will be used to assert that we are in a good state. Change-Id: I2ea5067d90c9920cc529226444696709dd27b682 Reviewed-by: Daniel Teske <daniel.teske@digia.com> --- src/plugins/qtsupport/qtversionmanager.cpp | 12 ++++++++++++ src/plugins/qtsupport/qtversionmanager.h | 3 +++ 2 files changed, 15 insertions(+) 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<int>(), QList<int>()); 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<BaseQtVersion *> QtVersionManager::versions() const { QList<BaseQtVersion *> versions; + QTC_ASSERT(isLoaded(), return versions); foreach (BaseQtVersion *version, m_versions) versions << version; qSort(versions.begin(), versions.end(), &qtVersionNumberCompare); @@ -462,6 +471,7 @@ QList<BaseQtVersion *> QtVersionManager::versions() const QList<BaseQtVersion *> QtVersionManager::validVersions() const { QList<BaseQtVersion *> results; + QTC_ASSERT(isLoaded(), return results); foreach (BaseQtVersion *v, m_versions) { if (v->isValid()) results.append(v); @@ -472,6 +482,7 @@ QList<BaseQtVersion *> 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<int, BaseQtVersion *>::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<BaseQtVersion *> 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<int> &addedIds, const QList<int> &removedIds, const QList<int> &changedIds); + void qtVersionsLoaded(); public slots: void updateDumpFor(const Utils::FileName &qmakeCommand); -- GitLab