diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index aa7dab53ffe90edff3658b0e8b601e10a3dc0805..7c270fc5a92637aa68c6dfc109c1050c14265b45 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -165,6 +165,15 @@ int QmlProjectRunConfiguration::qtVersionId() const return m_qtVersionId; } +void QmlProjectRunConfiguration::setQtVersionId(int id) +{ + if (m_qtVersionId == id) + return; + + m_qtVersionId = id; + qmlTarget()->qmlProject()->refresh(QmlProject::Configuration); +} + Qt4ProjectManager::QtVersion *QmlProjectRunConfiguration::qtVersion() const { if (m_qtVersionId == -1) @@ -311,7 +320,7 @@ void QmlProjectRunConfiguration::onQtVersionSelectionChanged() { QVariant data = m_qtVersionComboBox.data()->itemData(m_qtVersionComboBox.data()->currentIndex()); QTC_ASSERT(data.isValid() && data.canConvert(QVariant::Int), return) - m_qtVersionId = data.toInt(); + setQtVersionId(data.toInt()); updateEnabled(); } @@ -348,7 +357,7 @@ QVariantMap QmlProjectRunConfiguration::toMap() const bool QmlProjectRunConfiguration::fromMap(const QVariantMap &map) { - m_qtVersionId = map.value(QLatin1String(Constants::QML_VIEWER_QT_KEY), -1).toInt(); + setQtVersionId(map.value(QLatin1String(Constants::QML_VIEWER_QT_KEY), -1).toInt()); m_qmlViewerArgs = map.value(QLatin1String(Constants::QML_VIEWER_ARGUMENTS_KEY)).toString(); m_scriptFile = map.value(QLatin1String(Constants::QML_MAINSCRIPT_KEY), M_CURRENT_FILE).toString(); @@ -411,14 +420,15 @@ void QmlProjectRunConfiguration::updateQtVersions() // if (!qtVersions->isValidId(m_qtVersionId) || !isValidVersion(qtVersions->version(m_qtVersionId))) { - m_qtVersionId = -1; + int newVersionId = -1; // take first one you find foreach (Qt4ProjectManager::QtVersion *version, qtVersions->validVersions()) { if (isValidVersion(version)) { - m_qtVersionId = version->uniqueId(); + newVersionId = version->uniqueId(); break; } } + setQtVersionId(newVersionId); } updateEnabled(); diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h index 7381fa1b54586f49db6183fae68c3f846a026890..9b231f430c593702e4e7d266003b0ef1c3d861ba 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h @@ -111,6 +111,7 @@ protected: private: void ctor(); static bool isValidVersion(Qt4ProjectManager::QtVersion *version); + void setQtVersionId(int id); // absolute path to current file (if being used) QString m_currentFileFilename;