From f707cfd834105fd0c2c74b2f17758fa3142fc47a Mon Sep 17 00:00:00 2001
From: kh1 <qt-info@nokia.com>
Date: Tue, 12 Oct 2010 16:53:00 +0200
Subject: [PATCH] Fix potential crash and extra open page on initial help
 start.

Reviewed-by: ck
---
 src/plugins/help/helpplugin.cpp       | 13 ++++++-------
 src/plugins/help/openpagesmanager.cpp |  3 ++-
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index decb9fa9af2..f9bc0250753 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -797,17 +797,16 @@ HelpViewer* HelpPlugin::viewerForContextMode()
             break;
     }
 
-    HelpViewer *viewer = m_centralWidget->currentHelpViewer();
     if (placeHolder && showSideBySide) {
         RightPaneWidget::instance()->setShown(true);
-
         createRightPaneContextViewer();
-        viewer = m_helpViewerForSideBar;
-    } else {
-        activateHelpMode();
-        if (!viewer)
-            viewer = OpenPagesManager::instance().createPage();
+        return m_helpViewerForSideBar;
     }
+
+    activateHelpMode(); // should trigger an createPage...
+    HelpViewer *viewer = m_centralWidget->currentHelpViewer();
+    if (!viewer)
+        viewer = OpenPagesManager::instance().createPage();
     return viewer;
 }
 
diff --git a/src/plugins/help/openpagesmanager.cpp b/src/plugins/help/openpagesmanager.cpp
index ebe15cb393b..fb602b97988 100644
--- a/src/plugins/help/openpagesmanager.cpp
+++ b/src/plugins/help/openpagesmanager.cpp
@@ -177,7 +177,8 @@ void OpenPagesManager::setupInitialPages()
         CentralWidget::instance()->addPage(m_model->pageAt(i));
 
     emit pagesChanged();
-    setCurrentPage(initialPage);
+    setCurrentPage((initialPage >= m_model->rowCount())
+        ? m_model->rowCount() - 1 : initialPage);
     m_openPagesSwitcher->selectCurrentPage();
 }
 
-- 
GitLab