diff --git a/src/plugins/help/filtersettingspage.cpp b/src/plugins/help/filtersettingspage.cpp index d4429133a34d75d8e80577353a1995eed7eee9d1..bcff6a1a74b66c8106cd06428f6e77e9a67c6157 100644 --- a/src/plugins/help/filtersettingspage.cpp +++ b/src/plugins/help/filtersettingspage.cpp @@ -31,7 +31,6 @@ #include "filternamedialog.h" #include "helpconstants.h" -#include "helpmanager.h" #include <coreplugin/helpmanager.h> @@ -40,12 +39,9 @@ #include <QtGui/QFileDialog> #include <QtGui/QMessageBox> -#include <QtHelp/QHelpEngine> - using namespace Help::Internal; FilterSettingsPage::FilterSettingsPage() - : m_helpManager(0) { } @@ -79,8 +75,7 @@ QWidget *FilterSettingsPage::createPage(QWidget *parent) QWidget *widget = new QWidget(parent); m_ui.setupUi(widget); - m_helpManager->setupGuiHelpEngine(); - updateFilterPage(); // does call setupData on the engine + updateFilterPage(); connect(m_ui.attributeWidget, SIGNAL(itemChanged(QTreeWidgetItem*, int)), this, SLOT(updateFilterMap())); @@ -109,25 +104,28 @@ void FilterSettingsPage::updateFilterPage() QString lastTrUnfiltered; const QString trUnfiltered = tr("Unfiltered"); - const QHelpEngineCore &engine = LocalHelpManager::helpEngine(); - if (engine.customValue(Help::Constants::WeAddedFilterKey).toInt() == 1) { + Core::HelpManager *manager = Core::HelpManager::instance(); + if (manager->customValue(Help::Constants::WeAddedFilterKey).toInt() == 1) { lastTrUnfiltered = - engine.customValue(Help::Constants::PreviousFilterNameKey).toString(); + manager->customValue(Help::Constants::PreviousFilterNameKey).toString(); } - const QStringList &filters = engine.customFilters(); - foreach (const QString &filter, filters) { + QSet<QString> attributes; + const Core::HelpManager::Filters &filters = manager->filters(); + + Core::HelpManager::Filters::const_iterator it; + for (it = filters.constBegin(); it != filters.constEnd(); ++it) { + const QString &filter = it.key(); if (filter == trUnfiltered || filter == lastTrUnfiltered) continue; - const QStringList &attributes = engine.filterAttributes(filter); - m_filterMapBackup.insert(filter, attributes); + attributes += it.value().toSet(); + m_filterMapBackup.insert(filter, it.value()); if (!m_filterMap.contains(filter)) - m_filterMap.insert(filter, attributes); + m_filterMap.insert(filter, it.value()); } m_ui.filterWidget->addItems(m_filterMap.keys()); - const QStringList &attributes = engine.filterAttributes(); foreach (const QString &attribute, attributes) new QTreeWidgetItem(m_ui.attributeWidget, QStringList(attribute)); @@ -227,13 +225,13 @@ void FilterSettingsPage::apply() } if (changed) { - QHelpEngineCore *engine = &LocalHelpManager::helpEngine(); + Core::HelpManager *manager = Core::HelpManager::instance(); foreach (const QString &filter, m_removedFilters) - engine->removeCustomFilter(filter); + manager->removeUserDefinedFilter(filter); FilterMap::const_iterator it; for (it = m_filterMap.constBegin(); it != m_filterMap.constEnd(); ++it) - engine->addCustomFilter(it.key(), it.value()); + manager->addUserDefinedFilter(it.key(), it.value()); // emit this signal to the help plugin, since we don't want // to force gui help engine setup if we are not in help mode @@ -245,8 +243,3 @@ bool FilterSettingsPage::matches(const QString &s) const { return m_searchKeywords.contains(s, Qt::CaseInsensitive); } - -void FilterSettingsPage::setHelpManager(LocalHelpManager *manager) -{ - m_helpManager = manager; -} diff --git a/src/plugins/help/filtersettingspage.h b/src/plugins/help/filtersettingspage.h index 96b2a57778d1ad42e63a4db9d0ea66232e9fe8cf..b8f74d5359d97860b71a2c9dd7a276c2c557a2aa 100644 --- a/src/plugins/help/filtersettingspage.h +++ b/src/plugins/help/filtersettingspage.h @@ -36,8 +36,6 @@ namespace Help { namespace Internal { -class LocalHelpManager; - class FilterSettingsPage : public Core::IOptionsPage { Q_OBJECT @@ -57,8 +55,6 @@ public: void finish() {} virtual bool matches(const QString &s) const; - void setHelpManager(LocalHelpManager *manager); - signals: void filtersChanged(); @@ -77,8 +73,6 @@ private: QString m_searchKeywords; QStringList m_removedFilters; - - LocalHelpManager *m_helpManager; }; } // namespace Help diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 6964afe233782639daf8b303ff4b657614acd1c4..dc6fa523ae251a3592fca56264bca46886351d7c 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -161,7 +161,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) SLOT(contextHelpOptionChanged())); connect(Core::HelpManager::instance(), SIGNAL(helpRequested(QUrl)), this, SLOT(handleHelpRequest(QUrl))); - m_filterSettingsPage->setHelpManager(m_helpManager); + connect(m_filterSettingsPage, SIGNAL(filtersChanged()), this, SLOT(setupHelpEngineIfNeeded())); connect(Core::HelpManager::instance(), SIGNAL(documentationChanged()), this,