diff --git a/src/plugins/help/helpindexfilter.cpp b/src/plugins/help/helpindexfilter.cpp index bf65faee4a4..e6a5c29d371 100644 --- a/src/plugins/help/helpindexfilter.cpp +++ b/src/plugins/help/helpindexfilter.cpp @@ -86,13 +86,10 @@ void HelpIndexFilter::accept(LocatorFilterEntry selection) const const QString &key = selection.displayName; const QMap &links = Core::HelpManager::linksForKeyword(key); - if (links.size() == 1) { + if (links.size() == 1) emit linkActivated(links.begin().value()); - } else if (!links.isEmpty()) { - TopicChooser tc(CentralWidget::instance(), key, links); - if (tc.exec() == QDialog::Accepted) - emit linkActivated(tc.link()); - } + else + emit linksActivated(links, key); } void HelpIndexFilter::refresh(QFutureInterface &future) diff --git a/src/plugins/help/helpindexfilter.h b/src/plugins/help/helpindexfilter.h index a91fbe10739..80558d41517 100644 --- a/src/plugins/help/helpindexfilter.h +++ b/src/plugins/help/helpindexfilter.h @@ -54,6 +54,7 @@ public: signals: void linkActivated(const QUrl &link) const; + void linksActivated(const QMap &links, const QString &key) const; private: QIcon m_icon; diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index b5c82ab8dc7..2cd1973535d 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -162,7 +162,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) connect(HelpManager::instance(), SIGNAL(helpRequested(QUrl,Core::HelpManager::HelpViewerLocation)), this, SLOT(handleHelpRequest(QUrl,Core::HelpManager::HelpViewerLocation))); connect(m_searchTaskHandler, SIGNAL(search(QUrl)), this, - SLOT(switchToHelpMode(QUrl))); + SLOT(showLinkInHelpMode(QUrl))); connect(m_filterSettingsPage, SIGNAL(filtersChanged()), this, SLOT(setupHelpEngineIfNeeded())); @@ -223,15 +223,17 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) SLOT(gotoNextPage())); } - HelpIndexFilter *helpIndexFilter = new HelpIndexFilter(); + auto helpIndexFilter = new HelpIndexFilter(); addAutoReleasedObject(helpIndexFilter); - connect(helpIndexFilter, SIGNAL(linkActivated(QUrl)), this, - SLOT(switchToHelpMode(QUrl))); + connect(helpIndexFilter, &HelpIndexFilter::linkActivated, + this, &HelpPlugin::showLinkInHelpMode); + connect(helpIndexFilter, &HelpIndexFilter::linksActivated, + this, &HelpPlugin::showLinksInHelpMode); RemoteHelpFilter *remoteHelpFilter = new RemoteHelpFilter(); addAutoReleasedObject(remoteHelpFilter); connect(remoteHelpFilter, SIGNAL(linkActivated(QUrl)), this, - SLOT(switchToHelpMode(QUrl))); + SLOT(showLinkInHelpMode(QUrl))); QDesktopServices::setUrlHandler(QLatin1String("qthelp"), this, "handleHelpRequest"); connect(ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*,Core::IMode*)), @@ -330,7 +332,7 @@ HelpWidget *HelpPlugin::createHelpWidget(const Context &context, HelpWidget::Wid connect(widget->currentViewer(), SIGNAL(loadFinished()), this, SLOT(highlightSearchTermsInContextHelp())); connect(widget, SIGNAL(openHelpMode(QUrl)), - this, SLOT(switchToHelpMode(QUrl))); + this, SLOT(showLinkInHelpMode(QUrl))); connect(widget, SIGNAL(closeButtonClicked()), this, SLOT(slotHideRightPane())); connect(widget, SIGNAL(aboutToClose()), @@ -410,7 +412,7 @@ void HelpPlugin::activateHelpMode() ModeManager::activateMode(Id(Constants::ID_MODE_HELP)); } -void HelpPlugin::switchToHelpMode(const QUrl &source) +void HelpPlugin::showLinkInHelpMode(const QUrl &source) { activateHelpMode(); Core::ICore::raiseWindow(m_mode->widget()); @@ -418,6 +420,13 @@ void HelpPlugin::switchToHelpMode(const QUrl &source) m_centralWidget->setFocus(); } +void HelpPlugin::showLinksInHelpMode(const QMap &links, const QString &key) +{ + activateHelpMode(); + Core::ICore::raiseWindow(m_mode->widget()); + m_centralWidget->showTopicChooser(links, key); +} + void HelpPlugin::slotHideRightPane() { RightPaneWidget::instance()->setShown(false); @@ -463,7 +472,7 @@ void HelpPlugin::fontChanged() : m_rightPaneSideBarWidget->currentViewer()->viewerFont(); m_rightPaneSideBarWidget->setViewerFont(font); - CentralWidget::instance()->setViewerFont(font); + m_centralWidget->setViewerFont(font); } void HelpPlugin::setupHelpEngineIfNeeded() @@ -646,7 +655,7 @@ void HelpPlugin::handleHelpRequest(const QUrl &url, Core::HelpManager::HelpViewe void HelpPlugin::slotOpenSupportPage() { - switchToHelpMode(QUrl(QLatin1String("qthelp://org.qt-project.qtcreator/doc/technical-support.html"))); + showLinkInHelpMode(QUrl(QLatin1String("qthelp://org.qt-project.qtcreator/doc/technical-support.html"))); } void HelpPlugin::slotReportBug() diff --git a/src/plugins/help/helpplugin.h b/src/plugins/help/helpplugin.h index 582346aa85f..0788633b82f 100644 --- a/src/plugins/help/helpplugin.h +++ b/src/plugins/help/helpplugin.h @@ -94,7 +94,8 @@ private slots: void activateContents(); void saveExternalWindowSettings(); - void switchToHelpMode(const QUrl &source); + void showLinkInHelpMode(const QUrl &source); + void showLinksInHelpMode(const QMap &links, const QString &key); void slotHideRightPane(); void updateSideBarSource(); diff --git a/src/plugins/help/textbrowserhelpviewer.cpp b/src/plugins/help/textbrowserhelpviewer.cpp index fdc45564b2a..490702a9933 100644 --- a/src/plugins/help/textbrowserhelpviewer.cpp +++ b/src/plugins/help/textbrowserhelpviewer.cpp @@ -323,7 +323,7 @@ void TextBrowserHelpWidget::openLink(const QUrl &url, bool newPage) if (newPage) OpenPagesManager::instance().createPage(url); else - CentralWidget::instance()->setSource(url); + setSource(url); } void TextBrowserHelpWidget::scaleUp()