diff --git a/src/plugins/madde/maemoqtversion.cpp b/src/plugins/madde/maemoqtversion.cpp index 78d39bdaf5861219cbe829699b974170af5cf1a2..6178e9d21246d4fdad7cbc6d21ea96a613a1a9b6 100644 --- a/src/plugins/madde/maemoqtversion.cpp +++ b/src/plugins/madde/maemoqtversion.cpp @@ -47,7 +47,10 @@ using namespace Qt4ProjectManager; namespace Madde { namespace Internal { -MaemoQtVersion::MaemoQtVersion() : QtSupport::BaseQtVersion() +MaemoQtVersion::MaemoQtVersion() + : QtSupport::BaseQtVersion(), + m_isvalidVersion(false), + m_initialized(false) { } @@ -55,7 +58,8 @@ MaemoQtVersion::MaemoQtVersion() : QtSupport::BaseQtVersion() MaemoQtVersion::MaemoQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource) : QtSupport::BaseQtVersion(path, isAutodetected, autodetectionSource), m_osType(MaemoGlobal::osType(path.toString())), - m_isvalidVersion(MaemoGlobal::isValidMaemoQtVersion(path.toString(), m_osType)) + m_isvalidVersion(false), + m_initialized(false) { } @@ -70,7 +74,6 @@ void MaemoQtVersion::fromMap(const QVariantMap &map) QtSupport::BaseQtVersion::fromMap(map); QString path = qmakeCommand().toString(); m_osType = MaemoGlobal::osType(path); - m_isvalidVersion = MaemoGlobal::isValidMaemoQtVersion(path, m_osType); } QString MaemoQtVersion::type() const @@ -80,7 +83,13 @@ QString MaemoQtVersion::type() const bool MaemoQtVersion::isValid() const { - return BaseQtVersion::isValid() && m_isvalidVersion; + if (!BaseQtVersion::isValid()) + return false; + if (!m_initialized) { + m_isvalidVersion = MaemoGlobal::isValidMaemoQtVersion(qmakeCommand().toString(), m_osType); + m_initialized = true; + } + return m_isvalidVersion; } MaemoQtVersion *MaemoQtVersion::clone() const @@ -113,7 +122,7 @@ QString MaemoQtVersion::systemRoot() const QList<ProjectExplorer::Abi> MaemoQtVersion::detectQtAbis() const { QList<ProjectExplorer::Abi> result; - if (!m_isvalidVersion) + if (!isValid()) return result; if (m_osType == QLatin1String(Maemo5OsType)) { result.append(ProjectExplorer::Abi(ProjectExplorer::Abi::ArmArchitecture, ProjectExplorer::Abi::LinuxOS, @@ -140,7 +149,7 @@ bool MaemoQtVersion::supportsTargetId(const QString &id) const QSet<QString> MaemoQtVersion::supportedTargetIds() const { QSet<QString> result; - if (!m_isvalidVersion) + if (!isValid()) return result; if (m_osType == QLatin1String(Maemo5OsType)) { result.insert(QLatin1String(Constants::MAEMO5_DEVICE_TARGET_ID)); diff --git a/src/plugins/madde/maemoqtversion.h b/src/plugins/madde/maemoqtversion.h index e8779dbe55592b4609a3d976e9cb08bd1720a44f..20696fbda373d4241c8062b72e41ca8dc7ace61e 100644 --- a/src/plugins/madde/maemoqtversion.h +++ b/src/plugins/madde/maemoqtversion.h @@ -66,6 +66,7 @@ private: mutable QString m_systemRoot; mutable QString m_osType; mutable bool m_isvalidVersion; + mutable bool m_initialized; }; } // namespace Internal