OSDN Git Service

Fix potential crash and extra open page on initial help start.
authorkh1 <qt-info@nokia.com>
Tue, 12 Oct 2010 14:53:00 +0000 (16:53 +0200)
committerkh1 <qt-info@nokia.com>
Tue, 12 Oct 2010 15:47:11 +0000 (17:47 +0200)
Reviewed-by: ck
src/plugins/help/helpplugin.cpp
src/plugins/help/openpagesmanager.cpp

index decb9fa..f9bc025 100644 (file)
@@ -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;
 }
 
index ebe15cb..fb602b9 100644 (file)
@@ -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();
 }