From 9ad73fc93b20b91b876b4a71397ff11d8d4e507e Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Wed, 13 Oct 2010 13:02:26 +0200 Subject: QmlProject: Refresh the project when the Qt version changes. Reviewed-by: Thomas Hartmann --- .../qmlprojectmanager/qmlprojectrunconfiguration.cpp | 18 ++++++++++++++---- .../qmlprojectmanager/qmlprojectrunconfiguration.h | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'src/plugins/qmlprojectmanager') diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index aa7dab53ff..7c270fc5a9 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 7381fa1b54..9b231f430c 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; -- cgit v1.2.1 From 404186a919b565505431b2a30156c24944ea9aee Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Wed, 13 Oct 2010 13:03:32 +0200 Subject: QmlProject: Tell the code model about the target Qt's import path. Task-number: QTCREATORBUG-2639 Reviewed-by: Thomas Hartmann --- src/plugins/qmlprojectmanager/qmlproject.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/plugins/qmlprojectmanager') diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index 83486bbaf9..e74f2683b2 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -171,6 +172,21 @@ QStringList QmlProject::importPaths() const QStringList importPaths; if (m_projectItem) importPaths = m_projectItem.data()->importPaths(); + + // add the default import path for the target Qt version + if (activeTarget()) { + const QmlProjectRunConfiguration *runConfig = + qobject_cast(activeTarget()->activeRunConfiguration()); + if (runConfig) { + const Qt4ProjectManager::QtVersion *qtVersion = runConfig->qtVersion(); + if (qtVersion && qtVersion->isValid()) { + const QString qtVersionImportPath = qtVersion->versionInfo().value("QT_INSTALL_IMPORTS"); + if (!qtVersionImportPath.isEmpty()) + importPaths += qtVersionImportPath; + } + } + } + return importPaths; } -- cgit v1.2.1 From 50ab71bbdcd9c4bbef85345b37353dd6104447f1 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Mon, 18 Oct 2010 12:39:02 +0200 Subject: QML: use Qt4 output formatter to get links in errors to work. Reviewed-by: Tobias Hunger --- src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp | 5 +++++ src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h | 2 ++ 2 files changed, 7 insertions(+) (limited to 'src/plugins/qmlprojectmanager') diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index 7c270fc5a9..bb8c8db76c 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -258,6 +259,10 @@ QWidget *QmlProjectRunConfiguration::createConfigurationWidget() return detailsWidget; } +ProjectExplorer::OutputFormatter *QmlProjectRunConfiguration::createOutputFormatter() const +{ + return new Qt4ProjectManager::QtOutputFormatter(qmlTarget()->qmlProject()); +} QString QmlProjectRunConfiguration::mainScript() const { diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h index 9b231f430c..5942a76c0a 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h @@ -83,6 +83,8 @@ public: // RunConfiguration virtual QWidget *createConfigurationWidget(); + ProjectExplorer::OutputFormatter *createOutputFormatter() const; + QVariantMap toMap() const; public slots: -- cgit v1.2.1