From 5d615f7fbf0788670b15988971983d096e2a148d Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@nokia.com>
Date: Thu, 24 Feb 2011 14:58:37 +0100
Subject: [PATCH] QmlDebug: Enable 'What are the prerequisites?' link in run
 configuration

DebuggerLanguageChooser is in utils, which is why we cannot directly open
the URL in the help plugin.
---
 src/libs/utils/debuggerlanguagechooser.cpp                   | 5 ++++-
 src/libs/utils/debuggerlanguagechooser.h                     | 1 +
 src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp    | 3 +++
 src/plugins/coreplugin/helpmanager.h                         | 4 +++-
 .../projectexplorer/customexecutableconfigurationwidget.cpp  | 4 ++++
 .../qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp   | 3 +++
 .../qt4projectmanager/qt-desktop/qt4runconfiguration.cpp     | 3 +++
 7 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/libs/utils/debuggerlanguagechooser.cpp b/src/libs/utils/debuggerlanguagechooser.cpp
index 5f50a6aad17..ebd3a6573ee 100644
--- a/src/libs/utils/debuggerlanguagechooser.cpp
+++ b/src/libs/utils/debuggerlanguagechooser.cpp
@@ -58,7 +58,9 @@ DebuggerLanguageChooser::DebuggerLanguageChooser(QWidget *parent) :
 
     m_debugServerPortLabel->setBuddy(m_debugServerPort);
 
-    m_qmlDebuggerInfoLabel = new QLabel(tr("<a href=\"qthelp://com.nokia.qtcreator/doc/creator-qml-debugging.html\">What are the prerequisites?</a>"));
+    m_qmlDebuggerInfoLabel = new QLabel(tr("<a href=\"qthelp://com.nokia.qtcreator/doc/creator-debugging-qml.html\">What are the prerequisites?</a>"));
+    connect(m_qmlDebuggerInfoLabel, SIGNAL(linkActivated(QString)),
+            this, SIGNAL(openHelpUrl(QString)));
 
     connect(m_useQmlDebugger, SIGNAL(toggled(bool)), m_debugServerPort, SLOT(setEnabled(bool)));
     connect(m_useQmlDebugger, SIGNAL(toggled(bool)), m_debugServerPortLabel, SLOT(setEnabled(bool)));
@@ -131,4 +133,5 @@ void DebuggerLanguageChooser::onDebugServerPortChanged(int port)
     emit qmlDebugServerPortChanged((uint)port);
 }
 
+
 } // namespace Utils
diff --git a/src/libs/utils/debuggerlanguagechooser.h b/src/libs/utils/debuggerlanguagechooser.h
index 86ba37bca3a..c92a8a199d0 100644
--- a/src/libs/utils/debuggerlanguagechooser.h
+++ b/src/libs/utils/debuggerlanguagechooser.h
@@ -62,6 +62,7 @@ signals:
     void cppLanguageToggled(bool value);
     void qmlLanguageToggled(bool value);
     void qmlDebugServerPortChanged(uint port);
+    void openHelpUrl(const QString &url);
 
 private slots:
     void useCppDebuggerToggled(bool toggled);
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index 366ef0dea42..7a187ba1677 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -39,6 +39,7 @@
 #include "cmaketarget.h"
 
 #include <coreplugin/coreconstants.h>
+#include <coreplugin/helpmanager.h>
 #include <projectexplorer/debugginghelper.h>
 #include <utils/qtcassert.h>
 #include <utils/debuggerlanguagechooser.h>
@@ -412,6 +413,8 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
             this, SLOT(useQmlDebuggerToggled(bool)));
     connect(m_debuggerLanguageChooser, SIGNAL(qmlDebugServerPortChanged(uint)),
             this, SLOT(qmlDebugServerPortChanged(uint)));
+    connect(m_debuggerLanguageChooser, SIGNAL(openHelpUrl(QString)),
+            Core::HelpManager::instance(), SLOT(handleHelpRequest(QString)));
 
     connect(m_environmentWidget, SIGNAL(userChangesChanged()),
             this, SLOT(userChangesChanged()));
diff --git a/src/plugins/coreplugin/helpmanager.h b/src/plugins/coreplugin/helpmanager.h
index 9e1fc826ac1..9788c8c76f3 100644
--- a/src/plugins/coreplugin/helpmanager.h
+++ b/src/plugins/coreplugin/helpmanager.h
@@ -71,7 +71,6 @@ public:
 
     QUrl findFile(const QUrl &url) const;
     QByteArray fileData(const QUrl &url) const;
-    void handleHelpRequest(const QString &url);
 
     QStringList registeredNamespaces() const;
     QString namespaceFromFile(const QString &file) const;
@@ -87,6 +86,9 @@ public:
     void removeUserDefinedFilter(const QString &filter);
     void addUserDefinedFilter(const QString &filter, const QStringList &attr);
 
+public slots:
+    void handleHelpRequest(const QString &url);
+
 signals:
     void setupFinished();
     void documentationChanged();
diff --git a/src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp b/src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp
index 7865865d3ba..09e42679096 100644
--- a/src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp
+++ b/src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp
@@ -37,6 +37,7 @@
 #include "project.h"
 #include "environmentwidget.h"
 
+#include <coreplugin/helpmanager.h>
 #include <utils/detailswidget.h>
 #include <utils/environment.h>
 #include <utils/pathchooser.h>
@@ -49,6 +50,7 @@
 #include <QtGui/QLabel>
 #include <QtGui/QLineEdit>
 
+
 namespace ProjectExplorer {
 namespace Internal {
 
@@ -166,6 +168,8 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
             this, SLOT(useQmlDebuggerToggled(bool)));
     connect(m_debuggerLanguageChooser, SIGNAL(qmlDebugServerPortChanged(uint)),
             this, SLOT(qmlDebugServerPortChanged(uint)));
+    connect(m_debuggerLanguageChooser, SIGNAL(openHelpUrl(QString)),
+            Core::HelpManager::instance(), SLOT(handleHelpRequest(QString)));
 
     connect(m_runConfiguration, SIGNAL(changed()), this, SLOT(changed()));
 
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp
index dfd66b64836..7bd2edf0a2c 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp
@@ -36,6 +36,7 @@
 #include "qmlprojecttarget.h"
 #include "qmlproject.h"
 
+#include <coreplugin/helpmanager.h>
 #include <coreplugin/icore.h>
 #include <projectexplorer/environmentwidget.h>
 #include <projectexplorer/projectexplorer.h>
@@ -139,6 +140,8 @@ QmlProjectRunConfigurationWidget::QmlProjectRunConfigurationWidget(QmlProjectRun
             this, SLOT(useQmlDebuggerToggled(bool)));
     connect(debuggerLanguageChooser, SIGNAL(qmlDebugServerPortChanged(uint)),
             this, SLOT(qmlDebugServerPortChanged(uint)));
+    connect(debuggerLanguageChooser, SIGNAL(openHelpUrl(QString)),
+            Core::HelpManager::instance(), SLOT(handleHelpRequest(QString)));
 
     QtVersionManager *qtVersions = QtVersionManager::instance();
     connect(qtVersions, SIGNAL(qtVersionsChanged(QList<int>)),
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
index 690ac117b36..11eeab2cd81 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
@@ -49,6 +49,7 @@
 #include <coreplugin/messagemanager.h>
 #include <coreplugin/variablemanager.h>
 #include <coreplugin/ifile.h>
+#include <coreplugin/helpmanager.h>
 #include <projectexplorer/buildstep.h>
 #include <projectexplorer/environmentwidget.h>
 #include <projectexplorer/persistentsettings.h>
@@ -307,6 +308,8 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
             this, SLOT(useQmlDebuggerToggled(bool)));
     connect(m_debuggerLanguageChooser, SIGNAL(qmlDebugServerPortChanged(uint)),
             this, SLOT(qmlDebugServerPortChanged(uint)));
+    connect(m_debuggerLanguageChooser, SIGNAL(openHelpUrl(QString)),
+            Core::HelpManager::instance(), SLOT(handleHelpRequest(QString)));
 
     connect(m_environmentWidget, SIGNAL(userChangesChanged()),
             this, SLOT(userChangesEdited()));
-- 
GitLab