summaryrefslogtreecommitdiff
path: root/src/plugins/help/helpplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/help/helpplugin.cpp')
-rw-r--r--src/plugins/help/helpplugin.cpp49
1 files changed, 24 insertions, 25 deletions
diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index cc1357ca4b..fdbe8a154f 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -26,7 +26,6 @@
#include "helpplugin.h"
#include "bookmarkmanager.h"
-#include "centralwidget.h"
#include "docsettingspage.h"
#include "filtersettingspage.h"
#include "generalsettingspage.h"
@@ -37,11 +36,12 @@
#include "helpmanager.h"
#include "helpmode.h"
#include "helpviewer.h"
+#include "helpwidget.h"
#include "localhelpmanager.h"
#include "openpagesmanager.h"
#include "remotehelpfilter.h"
-#include "searchwidget.h"
#include "searchtaskhandler.h"
+#include "searchwidget.h"
#include "topicchooser.h"
#include <bookmarkmanager.h>
@@ -118,7 +118,6 @@ public:
void saveExternalWindowSettings();
void showLinksInCurrentViewer(const QMap<QString, QUrl> &links, const QString &key);
- void slotHideRightPane();
void updateSideBarSource(const QUrl &newUrl);
@@ -144,8 +143,10 @@ public:
void doSetupIfNeeded();
HelpMode m_mode;
- CentralWidget *m_centralWidget = nullptr;
+ HelpWidget *m_centralWidget = nullptr;
HelpWidget *m_rightPaneSideBarWidget = nullptr;
+ QPointer<HelpWidget> m_externalWindow;
+ QRect m_externalWindowState;
DocSettingsPage m_docSettingsPage;
FilterSettingsPage m_filterSettingsPage;
@@ -155,9 +156,6 @@ public:
bool m_setupNeeded = true;
LocalHelpManager m_localHelpManager;
- QPointer<HelpWidget> m_externalWindow;
- QRect m_externalWindowState;
-
HelpIndexFilter helpIndexFilter;
RemoteHelpFilter remoteHelpFilter;
};
@@ -209,16 +207,9 @@ HelpPluginPrivate::HelpPluginPrivate()
QCoreApplication::installTranslator(qhelptr);
}
- m_centralWidget = new CentralWidget(Context("Help.CentralHelpWidget"));
+ m_centralWidget = createHelpWidget(Context("Help.CentralHelpWidget"), HelpWidget::ModeWidget);
connect(m_centralWidget, &HelpWidget::sourceChanged,
this, &HelpPluginPrivate::updateSideBarSource);
- connect(m_centralWidget,
- &CentralWidget::closeButtonClicked,
- m_centralWidget->openPagesManager(),
- &OpenPagesManager::closeCurrentPage);
-
- connect(LocalHelpManager::instance(), &LocalHelpManager::returnOnCloseChanged,
- m_centralWidget, &CentralWidget::updateCloseButton);
connect(HelpManager::instance(), &HelpManager::helpRequested,
this, &HelpPluginPrivate::showHelpUrl);
connect(&m_searchTaskHandler, &SearchTaskHandler::search,
@@ -406,14 +397,19 @@ HelpWidget *HelpPluginPrivate::createHelpWidget(const Context &context, HelpWidg
connect(widget, &HelpWidget::openHelpMode, this, [this](const QUrl &url) {
showHelpUrl(url, Core::HelpManager::HelpModeAlways);
});
- connect(widget, &HelpWidget::closeButtonClicked, this, &HelpPluginPrivate::slotHideRightPane);
+ connect(LocalHelpManager::instance(),
+ &LocalHelpManager::returnOnCloseChanged,
+ widget,
+ &HelpWidget::updateCloseButton);
+ connect(widget, &HelpWidget::closeButtonClicked, this, [this, widget] {
+ if (widget->viewerCount() == 1 && LocalHelpManager::returnOnClose())
+ ModeManager::activateMode(Core::Constants::MODE_EDIT);
+ if (widget->widgetStyle() == HelpWidget::SideBarWidget)
+ RightPaneWidget::instance()->setShown(false);
+ });
connect(widget, &HelpWidget::aboutToClose,
this, &HelpPluginPrivate::saveExternalWindowSettings);
- // force setup, as we might have never switched to full help mode
- // thus the help engine might still run without collection file setup
- LocalHelpManager::setupGuiHelpEngine();
-
return widget;
}
@@ -470,6 +466,11 @@ HelpViewer *HelpPlugin::createHelpViewer(qreal zoom)
return viewer;
}
+HelpWidget *HelpPlugin::modeHelpWidget()
+{
+ return dd->m_centralWidget;
+}
+
void HelpPluginPrivate::showLinksInCurrentViewer(const QMap<QString, QUrl> &links, const QString &key)
{
if (links.size() < 1)
@@ -478,11 +479,6 @@ void HelpPluginPrivate::showLinksInCurrentViewer(const QMap<QString, QUrl> &link
widget->showLinks(links, key);
}
-void HelpPluginPrivate::slotHideRightPane()
-{
- RightPaneWidget::instance()->setShown(false);
-}
-
void HelpPluginPrivate::modeChanged(Core::Id mode, Core::Id old)
{
Q_UNUSED(old)
@@ -556,6 +552,9 @@ HelpViewer *HelpPluginPrivate::viewerForHelpViewerLocation(
actualLocation = canShowHelpSideBySide() ? Core::HelpManager::SideBySideAlways
: Core::HelpManager::HelpModeAlways;
+ // force setup, as we might have never switched to full help mode
+ // thus the help engine might still run without collection file setup
+ LocalHelpManager::setupGuiHelpEngine();
if (actualLocation == Core::HelpManager::ExternalHelpAlways)
return externalHelpViewer();