From 01fb9cdbaf51b1a2e41275c611924d1f905466ef Mon Sep 17 00:00:00 2001
From: kh1 <qt-info@nokia.com>
Date: Wed, 14 Jul 2010 17:00:43 +0200
Subject: [PATCH] Make sure we open the help only if needed.

Reviewed-by: ck
---
 src/plugins/help/helpindexfilter.cpp | 8 +++++++-
 src/plugins/help/helpindexfilter.h   | 3 ---
 src/plugins/help/helpplugin.cpp      | 9 ---------
 src/plugins/help/helpplugin.h        | 1 -
 4 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/src/plugins/help/helpindexfilter.cpp b/src/plugins/help/helpindexfilter.cpp
index 21f514c54fd..10c4fc06f59 100644
--- a/src/plugins/help/helpindexfilter.cpp
+++ b/src/plugins/help/helpindexfilter.cpp
@@ -29,6 +29,9 @@
 
 #include "helpindexfilter.h"
 
+#include "centralwidget.h"
+#include "topicchooser.h"
+
 #include <extensionsystem/pluginmanager.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/helpmanager.h>
@@ -86,10 +89,13 @@ void HelpIndexFilter::accept(FilterEntry selection) const
 {
     const QString &key = selection.displayName;
     const QMap<QString, QUrl> &links = Core::HelpManager::instance()->linksForKeyword(key);
+
     if (links.size() == 1) {
         emit linkActivated(links.begin().value());
     } else if (!links.isEmpty()) {
-        emit linksActivated(links, key);
+        TopicChooser tc(CentralWidget::instance(), key, links);
+        if (tc.exec() == QDialog::Accepted)
+            emit linkActivated(tc.link());
     }
 }
 
diff --git a/src/plugins/help/helpindexfilter.h b/src/plugins/help/helpindexfilter.h
index 859dc5a056a..dde609b3f54 100644
--- a/src/plugins/help/helpindexfilter.h
+++ b/src/plugins/help/helpindexfilter.h
@@ -37,8 +37,6 @@
 namespace Help {
 namespace Internal {
 
-class HelpPlugin;
-
 class HelpIndexFilter : public Locator::ILocatorFilter
 {
     Q_OBJECT
@@ -57,7 +55,6 @@ public:
 
 signals:
     void linkActivated(const QUrl &link) const;
-    void linksActivated(const QMap<QString, QUrl> &urls, const QString &keyword) const;
 
 private:
     QIcon m_icon;
diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index 718436afbfe..7b6b0af5303 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -299,8 +299,6 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
     addAutoReleasedObject(helpIndexFilter);
     connect(helpIndexFilter, SIGNAL(linkActivated(QUrl)), this,
         SLOT(switchToHelpMode(QUrl)));
-    connect(helpIndexFilter, SIGNAL(linksActivated(QMap<QString, QUrl>, QString)),
-        this, SLOT(switchToHelpMode(QMap<QString, QUrl>, QString)));
 
     QDesktopServices::setUrlHandler("qthelp", this, "handleHelpRequest");
     connect(m_core->modeManager(), SIGNAL(currentModeChanged(Core::IMode*)),
@@ -562,13 +560,6 @@ void HelpPlugin::switchToHelpMode(const QUrl &source)
     m_centralWidget->setFocus();
 }
 
-void HelpPlugin::switchToHelpMode(const QMap<QString, QUrl> &urls,
-    const QString &keyword)
-{
-    activateHelpMode();
-    m_centralWidget->showTopicChooser(urls, keyword);
-}
-
 void HelpPlugin::slotHideRightPane()
 {
     Core::RightPaneWidget::instance()->setShown(false);
diff --git a/src/plugins/help/helpplugin.h b/src/plugins/help/helpplugin.h
index b97b61c2b62..5fba3590d1a 100644
--- a/src/plugins/help/helpplugin.h
+++ b/src/plugins/help/helpplugin.h
@@ -88,7 +88,6 @@ private slots:
 
     void switchToHelpMode();
     void switchToHelpMode(const QUrl &source);
-    void switchToHelpMode(const QMap<QString, QUrl> &urls, const QString &keyword);
     void slotHideRightPane();
 
     void updateSideBarSource();
-- 
GitLab