diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp index 2703f9a810352738b65b740556b48601a1d55b1d..9fc8b81141f524d758b75a7ea628ecaee93a32c6 100644 --- a/src/plugins/help/generalsettingspage.cpp +++ b/src/plugins/help/generalsettingspage.cpp @@ -108,10 +108,12 @@ QWidget *GeneralSettingsPage::createPage(QWidget *parent) } m_ui.homePageLineEdit->setText(m_homePage); - int startOption = engine.customValue(QLatin1String("StartOption"), 2).toInt(); + const int startOption = engine.customValue(QLatin1String("StartOption"), + Help::Constants::ShowLastPages).toInt(); m_ui.helpStartComboBox->setCurrentIndex(startOption); - int helpOption = engine.customValue(QLatin1String("ContextHelpOption"), 0).toInt(); + const int helpOption = engine.customValue(QLatin1String("ContextHelpOption"), + Help::Constants::SideBySideIfPossible).toInt(); m_ui.contextHelpComboBox->setCurrentIndex(helpOption); connect(m_ui.currentPageButton, SIGNAL(clicked()), this, SLOT(setCurrentPage())); @@ -179,8 +181,6 @@ void GeneralSettingsPage::apply() const int helpOption = m_ui.contextHelpComboBox->currentIndex(); engine->setCustomValue(QLatin1String("ContextHelpOption"), helpOption); - - // no need to call setup on the gui engine since we use only core engine } void GeneralSettingsPage::setCurrentPage() diff --git a/src/plugins/help/helpconstants.h b/src/plugins/help/helpconstants.h index b44fdf9b9253badffcfba1f9b08785b6fee11025..32606ec3d2e4fb8154e2209cc40dc43c5ae65fe8 100644 --- a/src/plugins/help/helpconstants.h +++ b/src/plugins/help/helpconstants.h @@ -41,6 +41,13 @@ enum { ShowLastPages = 2 }; +enum { + SideBySideIfPossible = 0, + SideBySideAlways = 1, + FullHelpAlways = 2, + ExternalHelpAlways = 3 +}; + static const QLatin1String ListSeparator("|"); static const QLatin1String DefaultZoomFactor("0.0"); static const QLatin1String AboutBlank("about:blank"); diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 1e012d6146df1c6b5cf13f646265305ddb22603f..f009ba5bfc1528afaf45cd172bf038acccae8cbe 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -580,16 +580,7 @@ void HelpPlugin::modeChanged(Core::IMode *mode, Core::IMode *old) Q_UNUSED(old) if (mode == m_mode) { qApp->setOverrideCursor(Qt::WaitCursor); - if (m_firstModeChange) { - qApp->processEvents(); - m_helpManager->setupGuiHelpEngine(); - setupUi(); - resetFilter(); - m_firstModeChange = false; - OpenPagesManager::instance().setupInitialPages(); - } else { - m_helpManager->setupGuiHelpEngine(); - } + setup(); qApp->restoreOverrideCursor(); } } @@ -643,10 +634,9 @@ HelpViewer* HelpPlugin::viewerForContextMode() using namespace Core; bool showSideBySide = false; - const QHelpEngineCore &engine = LocalHelpManager::helpEngine(); RightPanePlaceHolder *placeHolder = RightPanePlaceHolder::current(); - switch (engine.customValue(QLatin1String("ContextHelpOption"), 0).toInt()) { - case 0: { + switch (contextHelpOption()) { + case Help::Constants::SideBySideIfPossible: { // side by side if possible if (IEditor *editor = EditorManager::instance()->currentEditor()) { if (!placeHolder || !placeHolder->isVisible()) { @@ -659,7 +649,7 @@ HelpViewer* HelpPlugin::viewerForContextMode() } } } // fall through - case 1: { + case Help::Constants::SideBySideAlways: { // side by side showSideBySide = true; } break; @@ -901,4 +891,23 @@ void HelpPlugin::handleHelpRequest(const QUrl &url) } } +void HelpPlugin::setup() +{ + m_helpManager->setupGuiHelpEngine(); + if (m_firstModeChange) { + qApp->processEvents(); + setupUi(); + resetFilter(); + m_firstModeChange = false; + OpenPagesManager::instance().setupInitialPages(); + } +} + +int HelpPlugin::contextHelpOption() const +{ + const QHelpEngineCore &engine = LocalHelpManager::helpEngine(); + return engine.customValue(QLatin1String("ContextHelpOption"), + Help::Constants::SideBySideIfPossible).toInt(); +} + Q_EXPORT_PLUGIN(HelpPlugin) diff --git a/src/plugins/help/helpplugin.h b/src/plugins/help/helpplugin.h index c25f55189d1e172977a12de4c53723d7452ca130..a56adbbc5735b195a8e48b2b203bf673099d8503 100644 --- a/src/plugins/help/helpplugin.h +++ b/src/plugins/help/helpplugin.h @@ -108,6 +108,9 @@ private: HelpViewer* viewerForContextMode(); void createRightPaneContextViewer(); + void setup(); + int contextHelpOption() const; + private: HelpMode *m_mode; Core::ICore *m_core;