diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index ec0f870ca37794a78d5ccec4d5860a1572f6edd6..e02379be3d5433ef70c8fdebddef64c43e6f8150 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -161,9 +161,7 @@ QtSupport::BaseQtVersion *QmlProjectRunConfiguration::qtVersion() const QWidget *QmlProjectRunConfiguration::createConfigurationWidget() { - QTC_ASSERT(m_configurationWidget.isNull(), return m_configurationWidget.data()); - m_configurationWidget = new QmlProjectRunConfigurationWidget(this); - return m_configurationWidget.data(); + return new QmlProjectRunConfigurationWidget(this); } Utils::OutputFormatter *QmlProjectRunConfiguration::createOutputFormatter() const @@ -218,8 +216,8 @@ void QmlProjectRunConfiguration::setScriptSource(MainScriptSource source, = target()->project()->projectDirectory() + QLatin1Char('/') + m_scriptFile; } updateEnabled(); - if (m_configurationWidget) - m_configurationWidget.data()->updateFileComboBox(); + + emit scriptSourceChanged(); } ProjectExplorer::Abi QmlProjectRunConfiguration::abi() const diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h index 489d6c4ac2ca594eac67f8263bccbb95f93445e0..0347732631b5a4fd644373b3390d3484501fc79c 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h @@ -87,6 +87,8 @@ public: QVariantMap toMap() const; ProjectExplorer::Abi abi() const; +signals: + void scriptSourceChanged(); private slots: void changeCurrentFile(Core::IEditor* = 0); @@ -113,8 +115,6 @@ private: QString m_scriptFile; QString m_qmlViewerArgs; - QPointer<Internal::QmlProjectRunConfigurationWidget> m_configurationWidget; - bool m_isEnabled; }; diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp index 8597de9d4288efd9761b56e61add95bb3130aa52..79623f1877541cc3607581f1036dc1ee6a044d92 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp @@ -84,6 +84,9 @@ QmlProjectRunConfigurationWidget::QmlProjectRunConfigurationWidget(QmlProjectRun layout->addWidget(detailsWidget); updateFileComboBox(); + + connect(rc, SIGNAL(scriptSourceChanged()), + this, SLOT(updateFileComboBox())); } static bool caseInsensitiveLessThan(const QString &s1, const QString &s2) diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.h index b134e86f9a70098eca5ca594e77ea82bafa4b56b..4c6538971690cd8e0058890d5b5b7b6f59d93b99 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.h +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.h @@ -49,10 +49,8 @@ class QmlProjectRunConfigurationWidget : public QWidget public: explicit QmlProjectRunConfigurationWidget(QmlProjectRunConfiguration *rc); -public slots: - void updateFileComboBox(); - private slots: + void updateFileComboBox(); void setMainScript(int index); void onViewerArgsChanged();