diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 968b6af970475a6c45162c66b8ce5458797e6e32..a7c5eebeb0b110f571a19b21dbcb9b5f4dea4b8e 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -418,7 +418,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl++"))); connect(a, SIGNAL(triggered()), m_centralWidget, SLOT(zoomIn())); advancedMenu->addAction(cmd, Core::Constants::G_EDIT_FONT); - + a = new QAction(tr("Decrease Font Size"), this); cmd = am->registerAction(a, TextEditor::Constants::DECREASE_FONT_SIZE, modecontext); @@ -572,7 +572,6 @@ void HelpPlugin::extensionsInitialized() return; } - bool needsSetup = false; bool assistantInternalDocRegistered = false; QStringList documentationToRemove; QStringList filtersToRemove; @@ -601,12 +600,10 @@ void HelpPlugin::extensionsInitialized() QHelpEngineCore hc(m_helpEngine->collectionFile()); hc.setupData(); foreach (const QString &ns, documentationToRemove) { - if (hc.unregisterDocumentation(ns)) - needsSetup = true; + hc.unregisterDocumentation(ns); } foreach (const QString &filter, filtersToRemove) { - if (hc.removeCustomFilter(filter)) - needsSetup = true; + hc.removeCustomFilter(filter); } if (!assistantInternalDocRegistered) { @@ -619,28 +616,38 @@ void HelpPlugin::extensionsInitialized() #endif if (!hc.registerDocumentation(qchFileName)) qDebug() << qPrintable(hc.error()); - needsSetup = true; } } - QLatin1String key("UnfilteredFilterInserted"); - int i = m_helpEngine->customValue(key).toInt(); - if (i != 1) { - { - QHelpEngineCore hc(m_helpEngine->collectionFile()); - hc.setupData(); - hc.addCustomFilter(tr("Unfiltered"), QStringList()); - hc.setCustomValue(key, 1); + const QLatin1String weAddedFilterKey("UnfilteredFilterInserted"); + const QLatin1String previousFilterNameKey("UnfilteredFilterName"); + int i = m_helpEngine->customValue(weAddedFilterKey).toInt(); + const QString filterName = tr("Unfiltered"); + if (i == 1) { // we added a filter at some point + // remove previously added filter + QHelpEngineCore hc(m_helpEngine->collectionFile()); + hc.setupData(); + QString previousFilterName = hc.customValue(previousFilterNameKey).toString(); + if (!previousFilterName.isEmpty()) { // we noted down the name of the previously added filter + hc.removeCustomFilter(previousFilterName); + } + if (previousFilterName != filterName) { // potentially remove a filter with new name + hc.removeCustomFilter(filterName); } - bool blocked = m_helpEngine->blockSignals(true); - m_helpEngine->setCurrentFilter(tr("Unfiltered")); - m_helpEngine->blockSignals(blocked); - needsSetup = true; } + { + QHelpEngineCore hc(m_helpEngine->collectionFile()); + hc.setupData(); + hc.addCustomFilter(filterName, QStringList()); + hc.setCustomValue(weAddedFilterKey, 1); + hc.setCustomValue(previousFilterNameKey, filterName); + } + bool blocked = m_helpEngine->blockSignals(true); + m_helpEngine->setCurrentFilter(filterName); + m_helpEngine->blockSignals(blocked); - if (needsSetup) - m_helpEngine->setupData(); + m_helpEngine->setupData(); updateFilterComboBox(); m_bookmarkManager->setupBookmarkModels(); @@ -652,7 +659,7 @@ void HelpPlugin::extensionsInitialized() font = qVariantValue<QFont>(m_helpEngine->customValue(QLatin1String("font"), font)); - + webSettings->setFontFamily(QWebSettings::StandardFont, font.family()); webSettings->setFontSize(QWebSettings::DefaultFontSize, font.pointSize()); #endif