Move help manager into core.

- lessens open file handles
 - improves help plugin startup further

Task-number: QTCREATORBUG-337
Reviewed-by: ck
This commit is contained in:
kh1
2010-06-11 13:11:37 +02:00
parent 40b983a91b
commit 1b6ad08795
41 changed files with 622 additions and 520 deletions

View File

@@ -29,7 +29,8 @@
#include "docsettingspage.h"
#include "helpconstants.h"
#include "helpmanager.h"
#include <coreplugin/helpmanager.h>
#include <QtCore/QCoreApplication>
@@ -37,8 +38,6 @@
#include <QtGui/QKeyEvent>
#include <QtGui/QMessageBox>
#include <QtHelp/QHelpEngineCore>
using namespace Help::Internal;
DocSettingsPage::DocSettingsPage()
@@ -80,10 +79,10 @@ QWidget *DocSettingsPage::createPage(QWidget *parent)
m_ui.docsListWidget->installEventFilter(this);
QHelpEngineCore *engine = &HelpManager::helpEngineCore();
const QStringList &nameSpaces = engine->registeredDocumentations();
Core::HelpManager *manager = Core::HelpManager::instance();
const QStringList &nameSpaces = manager->registeredNamespaces();
foreach (const QString &nameSpace, nameSpaces)
addItem(nameSpace, engine->documentationFileName(nameSpace));
addItem(nameSpace, manager->fileFromNamespace(nameSpace));
m_filesToRegister.clear();
m_filesToUnregister.clear();
@@ -103,11 +102,11 @@ void DocSettingsPage::addDocumentation()
return;
m_recentDialogPath = QFileInfo(files.first()).canonicalPath();
const QHelpEngineCore &engine = HelpManager::helpEngineCore();
const QStringList &nameSpaces = engine.registeredDocumentations();
Core::HelpManager *manager = Core::HelpManager::instance();
const QStringList &nameSpaces = manager->registeredNamespaces();
foreach (const QString &file, files) {
const QString &nameSpace = engine.namespaceName(file);
const QString &nameSpace = manager->namespaceFromFile(file);
if (nameSpace.isEmpty())
continue;
@@ -130,14 +129,10 @@ void DocSettingsPage::removeDocumentation()
void DocSettingsPage::apply()
{
HelpManager* manager = &HelpManager::instance();
Core::HelpManager *manager = Core::HelpManager::instance();
manager->unregisterDocumentation(m_filesToUnregister.keys());
manager->registerDocumentation(m_filesToRegister.values());
if (manager->guiEngineNeedsUpdate()) {
// 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
emit documentationChanged();
}
m_filesToRegister.clear();
m_filesToUnregister.clear();
@@ -172,10 +167,10 @@ void DocSettingsPage::removeDocumentation(const QList<QListWidgetItem*> items)
return;
int row = 0;
QHelpEngineCore *engine = &HelpManager::helpEngineCore();
Core::HelpManager *manager = Core::HelpManager::instance();
foreach (QListWidgetItem* item, items) {
const QString &nameSpace = item->text();
const QString &docPath = engine->documentationFileName(nameSpace);
const QString &docPath = manager->fileFromNamespace(nameSpace);
if (m_filesToRegister.value(nameSpace) != docPath) {
if (!m_filesToUnregister.contains(nameSpace))