From 4f19046d7556f596f5fc4db073ff7c0f9a54bbfb Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 11 Sep 2019 16:05:18 +0200 Subject: [PATCH] Help: Remove OpenPagesManager::instance() It's owned by the HelpWidget now, and should be accessed through that. Task-number: QTCREATORBUG-20558 Change-Id: I99118bb966922e6b4d356cf892d7604365357785 Reviewed-by: hjk --- src/plugins/help/helpplugin.cpp | 20 +++++++++++++------- src/plugins/help/helpwidget.cpp | 9 +++++++-- src/plugins/help/helpwidget.h | 2 ++ src/plugins/help/openpagesmanager.cpp | 13 ------------- src/plugins/help/openpagesmanager.h | 4 ---- 5 files changed, 22 insertions(+), 26 deletions(-) diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 3e5d1561e06..cc1357ca4b1 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -212,8 +212,10 @@ HelpPluginPrivate::HelpPluginPrivate() m_centralWidget = new CentralWidget(Context("Help.CentralHelpWidget")); connect(m_centralWidget, &HelpWidget::sourceChanged, this, &HelpPluginPrivate::updateSideBarSource); - connect(m_centralWidget, &CentralWidget::closeButtonClicked, - &OpenPagesManager::instance(), &OpenPagesManager::closeCurrentPage); + connect(m_centralWidget, + &CentralWidget::closeButtonClicked, + m_centralWidget->openPagesManager(), + &OpenPagesManager::closeCurrentPage); connect(LocalHelpManager::instance(), &LocalHelpManager::returnOnCloseChanged, m_centralWidget, &CentralWidget::updateCloseButton); @@ -298,16 +300,20 @@ HelpPluginPrivate::HelpPluginPrivate() Command *ctrlTab = ActionManager::registerAction(action, Core::Constants::GOTOPREVINHISTORY, modecontext); windowMenu->addAction(ctrlTab, Core::Constants::G_WINDOW_NAVIGATE); - connect(action, &QAction::triggered, &OpenPagesManager::instance(), - &OpenPagesManager::gotoPreviousPage); + connect(action, + &QAction::triggered, + m_centralWidget->openPagesManager(), + &OpenPagesManager::gotoPreviousPage); // Goto Next In History Action action = new QAction(this); Command *ctrlShiftTab = ActionManager::registerAction(action, Core::Constants::GOTONEXTINHISTORY, modecontext); windowMenu->addAction(ctrlShiftTab, Core::Constants::G_WINDOW_NAVIGATE); - connect(action, &QAction::triggered, &OpenPagesManager::instance(), - &OpenPagesManager::gotoNextPage); + connect(action, + &QAction::triggered, + m_centralWidget->openPagesManager(), + &OpenPagesManager::gotoNextPage); } connect(&helpIndexFilter, &HelpIndexFilter::linksActivated, @@ -725,7 +731,7 @@ void HelpPluginPrivate::doSetupIfNeeded() if (m_setupNeeded) { resetFilter(); m_setupNeeded = false; - OpenPagesManager::instance().setupInitialPages(); + m_centralWidget->openPagesManager()->setupInitialPages(); LocalHelpManager::bookmarkManager().setupBookmarkModels(); } } diff --git a/src/plugins/help/helpwidget.cpp b/src/plugins/help/helpwidget.cpp index 4b4358102cb..973b0fe9ade 100644 --- a/src/plugins/help/helpwidget.cpp +++ b/src/plugins/help/helpwidget.cpp @@ -252,7 +252,7 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget if (style == ModeWidget) { layout->addWidget(new Utils::StyledSeparator(toolBar)); - layout->addWidget(OpenPagesManager::instance().openPagesComboBox(), 10); + layout->addWidget(m_openPagesManager->openPagesComboBox(), 10); } else { layout->addWidget(new QLabel(), 10); } @@ -441,7 +441,7 @@ void HelpWidget::addSideBar() Core::SideBarItem *openPagesItem = nullptr; if (m_style == ModeWidget) { - QWidget *openPagesWidget = OpenPagesManager::instance().openPagesWidget(); + QWidget *openPagesWidget = m_openPagesManager->openPagesWidget(); openPagesWidget->setWindowTitle(HelpPlugin::tr(Constants::SB_OPENPAGES)); openPagesItem = new Core::SideBarItem(openPagesWidget, Constants::HELP_OPENPAGES); m_openPagesAction = new QAction(tr("Activate Open Help Pages View"), this); @@ -634,6 +634,11 @@ void HelpWidget::activateSideBarItem(const QString &id) m_sideBar->activateItem(id); } +OpenPagesManager *HelpWidget::openPagesManager() const +{ + return m_openPagesManager; +} + void HelpWidget::setSource(const QUrl &url) { HelpViewer* viewer = currentViewer(); diff --git a/src/plugins/help/helpwidget.h b/src/plugins/help/helpwidget.h index 2af3b4b5b3f..afd0688e8a1 100644 --- a/src/plugins/help/helpwidget.h +++ b/src/plugins/help/helpwidget.h @@ -98,6 +98,8 @@ public: bool newPage = false); void activateSideBarItem(const QString &id); + OpenPagesManager *openPagesManager() const; + public: void setSource(const QUrl &url); void updateCloseButton(); diff --git a/src/plugins/help/openpagesmanager.cpp b/src/plugins/help/openpagesmanager.cpp index c9e26c6f7e3..e15873238bf 100644 --- a/src/plugins/help/openpagesmanager.cpp +++ b/src/plugins/help/openpagesmanager.cpp @@ -46,17 +46,11 @@ using namespace Core; using namespace Help::Internal; -OpenPagesManager *OpenPagesManager::m_instance = nullptr; - // -- OpenPagesManager OpenPagesManager::OpenPagesManager(HelpWidget *helpWidget) : m_helpWidget(helpWidget) { - Q_ASSERT(!m_instance); - - m_instance = this; - m_comboBox = new QComboBox; m_comboBox->setModel(m_helpWidget->model()); m_comboBox->setContextMenuPolicy(Qt::CustomContextMenu); @@ -85,16 +79,9 @@ OpenPagesManager::OpenPagesManager(HelpWidget *helpWidget) OpenPagesManager ::~OpenPagesManager() { - m_instance = nullptr; delete m_openPagesSwitcher; } -OpenPagesManager &OpenPagesManager::instance() -{ - Q_ASSERT(m_instance); - return *m_instance; -} - QWidget *OpenPagesManager::openPagesWidget() const { if (!m_openPagesWidget) { diff --git a/src/plugins/help/openpagesmanager.h b/src/plugins/help/openpagesmanager.h index bb096de6af3..1322c780fdc 100644 --- a/src/plugins/help/openpagesmanager.h +++ b/src/plugins/help/openpagesmanager.h @@ -53,8 +53,6 @@ public: OpenPagesManager(HelpWidget *helpWidget); ~OpenPagesManager() override; - static OpenPagesManager &instance(); - QWidget *openPagesWidget() const; QComboBox *openPagesComboBox() const; @@ -76,8 +74,6 @@ private: HelpWidget *m_helpWidget = nullptr; mutable OpenPagesWidget *m_openPagesWidget = nullptr; OpenPagesSwitcher *m_openPagesSwitcher = nullptr; - - static OpenPagesManager *m_instance; }; } // namespace Internal