From d879e30d55b71a4ea89996e03012f424004bfd1c Mon Sep 17 00:00:00 2001
From: Daniel Teske <daniel.teske@digia.com>
Date: Thu, 16 Jan 2014 12:16:25 +0100
Subject: [PATCH] QmlProjectRunConfiguraiton: Simplify code

Change-Id: I392e5ee1fcf89b4e4d871fa5935f065f29a67f1e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 .../qmlprojectmanager/qmlprojectrunconfiguration.cpp      | 8 +++-----
 .../qmlprojectmanager/qmlprojectrunconfiguration.h        | 4 ++--
 .../qmlprojectrunconfigurationwidget.cpp                  | 3 +++
 .../qmlprojectmanager/qmlprojectrunconfigurationwidget.h  | 4 +---
 4 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index ec0f870ca37..e02379be3d5 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 489d6c4ac2c..0347732631b 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 8597de9d428..79623f18775 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 b134e86f9a7..4c653897169 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();
 
-- 
GitLab