diff --git a/src/plugins/help/helpmanager.cpp b/src/plugins/help/helpmanager.cpp index 7e8d40dc3ae5501bdaa54710ec6cc9170c4be02e..25325a84a66a99bed52ed54c1cd54a455fe123d8 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 66371468c5d996a6b5c3e4f03e7b943b0ff9e9ca..17d33cfe23ebcb562906bedd8914cac527e413da 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