From 24c36c172e6b23d8766c55c20594b04fef088891 Mon Sep 17 00:00:00 2001 From: kh1 <qt-info@nokia.com> Date: Tue, 16 Mar 2010 14:42:09 +0100 Subject: [PATCH] Add some statics to retrieve a core help engine and the collection path. Reviewed-by: ck --- src/plugins/help/helpmanager.cpp | 36 ++++++++++++++++++++++++++++++-- src/plugins/help/helpmanager.h | 9 +++++++- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/plugins/help/helpmanager.cpp b/src/plugins/help/helpmanager.cpp index 7e8d40dc3ae..25325a84a66 100644 --- a/src/plugins/help/helpmanager.cpp +++ b/src/plugins/help/helpmanager.cpp @@ -26,21 +26,35 @@ ** contact the sales department at http://qt.nokia.com/contact. ** **************************************************************************/ -#include "helpmanager.h" +#include "helpmanager.h" #include "helpplugin.h" -#include <QtCore/QUrl> +#include <coreplugin/icore.h> + +#include <QtCore/QDir> +#include <QtCore/QFileInfo> #include <QtCore/QString> +#include <QtCore/QUrl> + +#include <QtHelp/QHelpEngineCore> using namespace Help; using namespace Help::Internal; +QHelpEngineCore* HelpManager::m_coreEngine = 0; + HelpManager::HelpManager(HelpPlugin* plugin) : m_plugin(plugin) { } +HelpManager::~HelpManager() +{ + delete m_coreEngine; + m_coreEngine = 0; +} + void HelpManager::handleHelpRequest(const QString &url) { m_plugin->handleHelpRequest(url); @@ -53,3 +67,21 @@ void HelpManager::registerDocumentation(const QStringList &fileNames) emit registerDocumentation(); } } + +QString HelpManager::collectionFilePath() +{ + const QFileInfo fi(Core::ICore::instance()->settings()->fileName()); + const QDir directory(fi.absolutePath() + QLatin1String("/qtcreator")); + if (!directory.exists()) + directory.mkpath(directory.absolutePath()); + return directory.absolutePath() + QLatin1String("/helpcollection.qhc"); +} + +QHelpEngineCore& HelpManager::helpEngineCore() +{ + if (!m_coreEngine) { + m_coreEngine = new QHelpEngineCore(collectionFilePath()); + m_coreEngine->setupData(); + } + return *m_coreEngine; +} diff --git a/src/plugins/help/helpmanager.h b/src/plugins/help/helpmanager.h index 66371468c5d..17d33cfe23e 100644 --- a/src/plugins/help/helpmanager.h +++ b/src/plugins/help/helpmanager.h @@ -33,6 +33,7 @@ #include <QtCore/QObject> +QT_FORWARD_DECLARE_CLASS(QHelpEngineCore) QT_FORWARD_DECLARE_CLASS(QString) QT_FORWARD_DECLARE_CLASS(QStringList) @@ -45,16 +46,22 @@ class HELP_EXPORT HelpManager : public QObject { Q_OBJECT public: - HelpManager(Internal::HelpPlugin*); + HelpManager(Internal::HelpPlugin *plugin); + ~HelpManager(); void handleHelpRequest(const QString &url); void registerDocumentation(const QStringList &fileNames); + static QString collectionFilePath(); + static QHelpEngineCore& helpEngineCore(); + signals: void registerDocumentation(); private: Internal::HelpPlugin *m_plugin; + + static QHelpEngineCore* m_coreEngine; }; } // Help -- GitLab