From eda938270ff1f1b81334c32d5b81267ec03a65c6 Mon Sep 17 00:00:00 2001
From: kh <qtc-committer@nokia.com>
Date: Tue, 2 Jun 2009 17:22:14 +0200
Subject: [PATCH] Simplified code.

Reviewed-by: dt
---
 src/plugins/help/helpplugin.cpp | 89 +++++++++++----------------------
 1 file changed, 29 insertions(+), 60 deletions(-)

diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index 7bec07881e8..9e53940725a 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -406,7 +406,6 @@ void HelpPlugin::createRightPaneSideBar()
     m_core->addContextObject(new Core::BaseContext(m_helpViewerForSideBar, QList<int>()
         << m_core->uniqueIDManager()->uniqueIdentifier(Constants::C_HELP_SIDEBAR),
         this));
-
     connect(m_centralWidget, SIGNAL(sourceChanged(QUrl)), this,
         SLOT(updateSideBarSource(QUrl)));
     connect(m_centralWidget, SIGNAL(currentViewerChanged()), this,
@@ -449,7 +448,6 @@ void HelpPlugin::activateHelpMode()
 void HelpPlugin::switchToHelpMode()
 {
     switchToHelpMode(m_helpViewerForSideBar->source());
-    Core::RightPaneWidget::instance()->setShown(false);
 }
 
 void HelpPlugin::switchToHelpMode(const QUrl &source)
@@ -585,79 +583,50 @@ void HelpPlugin::updateSideBarSource(const QUrl &newUrl)
 
 void HelpPlugin::activateContext()
 {
-    using namespace Core;
-    // case 1 sidebar shown and has focus, we show whatever we have in the
-    // sidebar in big
-    RightPanePlaceHolder* placeHolder = RightPanePlaceHolder::current();
+    Core::RightPanePlaceHolder* placeHolder = Core::RightPanePlaceHolder::current();
     if (placeHolder && Core::RightPaneWidget::instance()->hasFocus()) {
         switchToHelpMode();
         return;
-    }
+    } else if (m_core->modeManager()->currentMode() == m_mode)
+        return;
 
-    bool useSideBar = false;
-    if (placeHolder && !Core::RightPaneWidget::instance()->hasFocus())
-        useSideBar = true;
+    QString id;
+    QMap<QString, QUrl> links;
 
     // Find out what to show
-    HelpViewer *viewer = 0;
-    if (IContext *context = m_core->currentContextObject()) {
+    if (Core::IContext *context = m_core->currentContextObject()) {
         if (!m_contextHelpEngine) {
-            m_contextHelpEngine = new QHelpEngineCore(m_helpEngine->collectionFile(), this);
-            //m_contextHelpEngine->setAutoSaveFilter(false);
+            m_contextHelpEngine =
+                new QHelpEngineCore(m_helpEngine->collectionFile(), this);
             m_contextHelpEngine->setupData();
             m_contextHelpEngine->setCurrentFilter(tr("Unfiltered"));
         }
 
-        const QString &id = context->contextHelpId();
-        QMap<QString, QUrl> links = m_contextHelpEngine->linksForIdentifier(id);
-        if (!links.isEmpty()) {
-            if (useSideBar) {
-                Core::RightPaneWidget::instance()->setShown(true);
-                viewer = m_helpViewerForSideBar;
-            } else {
-                viewer = m_centralWidget->currentHelpViewer();
-                m_core->modeManager()->activateMode(QLatin1String(Constants::ID_MODE_HELP));
-            }
+        id = context->contextHelpId();
+        links = m_contextHelpEngine->linksForIdentifier(id);
+    }
 
-            if (viewer) {
-                QUrl source = *links.begin();
-                if (viewer->source() != source)
-                    viewer->setSource(source);
-                viewer->setFocus();
-            }
-        } else {
-            // No link found
-            if (useSideBar) {
-                Core::RightPaneWidget::instance()->setShown(true);
-                viewer = m_helpViewerForSideBar;
-            } else {
-                viewer = m_centralWidget->currentHelpViewer();
-                activateHelpMode();
-            }
-            
-            if (viewer) {
-                viewer->setHtml(tr("<html><head><title>No Documentation</title></head><body><br/>"
-                    "<center><b>%1</b><br/>No documentation available.</center></body></html>").
-                    arg(id));
-                viewer->setSource(QUrl());
-                //activateIndex();
-            }
-        }
+    HelpViewer *viewer = 0;
+    if (placeHolder && !Core::RightPaneWidget::instance()->hasFocus()) {
+        Core::RightPaneWidget::instance()->setShown(true);
+        viewer = m_helpViewerForSideBar;
     } else {
-        // No context object
-        if (useSideBar) {
-            Core::RightPaneWidget::instance()->setShown(true);
-            viewer = m_helpViewerForSideBar;
-        } else {
-            viewer = m_centralWidget->currentHelpViewer();
-            activateHelpMode();
-        }
+        viewer = m_centralWidget->currentHelpViewer();
+        activateHelpMode();
+    }
 
-        if (viewer) {
+    if (viewer) {
+        if (links.isEmpty()) {
+            // No link found or no context object
+            viewer->setHtml(tr("<html><head><title>No Documentation</title>"
+                "</head><body><br/><center><b>%1</b><br/>No documentation "
+                "available.</center></body></html>").arg(id));
             viewer->setSource(QUrl());
-            viewer->setHtml(tr("<html><head><title>No Documentation</title></head><body><br/><br/><center>No"
-                " documentation available.</center></body></html>"));
-            //activateIndex();
+        } else {
+            QUrl source = *links.begin();
+            if (viewer->source() != source)
+                viewer->setSource(source);
+            viewer->setFocus();
         }
     }
 }
-- 
GitLab