From e036b011c9d4b0cc1c3f63ba6af9c82b5a3fade0 Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@nokia.com>
Date: Fri, 23 Oct 2009 11:07:35 +0200
Subject: [PATCH] Register qml.qch file automatically in help collection

Automatically register qml.qch if found in shared/help/qtcreator.
This is needed for the special 'creator-qml' package.
---
 src/plugins/qmleditor/QmlEditor.pluginspec    |  1 +
 src/plugins/qmleditor/qmleditor.pro           |  1 +
 .../qmleditor/qmleditor_dependencies.pri      |  1 +
 src/plugins/qmleditor/qmleditorplugin.cpp     | 24 +++++++++++++++++++
 .../qmlprojectmanager/qmlprojectplugin.cpp    |  1 -
 5 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/plugins/qmleditor/QmlEditor.pluginspec b/src/plugins/qmleditor/QmlEditor.pluginspec
index 4571ae218a7..cb4a47607e7 100644
--- a/src/plugins/qmleditor/QmlEditor.pluginspec
+++ b/src/plugins/qmleditor/QmlEditor.pluginspec
@@ -21,5 +21,6 @@ will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.</license>
     <dependencyList>
         <dependency name="Core" version="1.2.93"/>
         <dependency name="TextEditor" version="1.2.93"/>
+        <dependency name="Help" version="1.2.93"/>
     </dependencyList>
 </plugin>
diff --git a/src/plugins/qmleditor/qmleditor.pro b/src/plugins/qmleditor/qmleditor.pro
index 1399b679e1e..415acf8f526 100644
--- a/src/plugins/qmleditor/qmleditor.pro
+++ b/src/plugins/qmleditor/qmleditor.pro
@@ -47,3 +47,4 @@ SOURCES += qmleditor.cpp \
     qmlsymbol.cpp \
     qmlfilewizard.cpp
 RESOURCES += qmleditor.qrc
+OTHER_FILES += QmlEditor.pluginspec
diff --git a/src/plugins/qmleditor/qmleditor_dependencies.pri b/src/plugins/qmleditor/qmleditor_dependencies.pri
index 6163cfc764f..885ef8bc1ec 100644
--- a/src/plugins/qmleditor/qmleditor_dependencies.pri
+++ b/src/plugins/qmleditor/qmleditor_dependencies.pri
@@ -1,5 +1,6 @@
 include(../../plugins/coreplugin/coreplugin.pri)
 include(../../plugins/texteditor/texteditor.pri)
+include(../../plugins/help/help.pri)
 include(../../shared/qscripthighlighter/qscripthighlighter.pri)
 include(../../shared/indenter/indenter.pri)
 
diff --git a/src/plugins/qmleditor/qmleditorplugin.cpp b/src/plugins/qmleditor/qmleditorplugin.cpp
index 474268a6946..47b71b9af18 100644
--- a/src/plugins/qmleditor/qmleditorplugin.cpp
+++ b/src/plugins/qmleditor/qmleditorplugin.cpp
@@ -51,11 +51,14 @@
 #include <texteditor/textfilewizard.h>
 #include <texteditor/texteditoractionhandler.h>
 #include <texteditor/completionsupport.h>
+#include <help/helpplugin.h>
 #include <utils/qtcassert.h>
 
 #include <QtCore/QtPlugin>
 #include <QtCore/QDebug>
 #include <QtCore/QSettings>
+#include <QtCore/QDir>
+#include <QtCore/QCoreApplication>
 #include <QtGui/QAction>
 
 using namespace QmlEditor;
@@ -132,6 +135,27 @@ bool QmlEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
 
 void QmlEditorPlugin::extensionsInitialized()
 {
+    //
+    // Explicitly register qml.qch if located in creator directory.
+    //
+    // This is only needed for the creator-qml package, were we
+    // want to ship the documentation without a qt development version.
+    //
+
+    ExtensionSystem::PluginManager *pluginManager = ExtensionSystem::PluginManager::instance();
+    Help::HelpManager *helpManager = pluginManager->getObject<Help::HelpManager>();
+
+    Q_ASSERT(helpManager);
+
+    const QString qmlHelpFile =
+            QDir::cleanPath(QCoreApplication::applicationDirPath()
+#if defined(Q_OS_MAC)
+            + QLatin1String("/../Resources/doc/qml.qch"));
+#else
+            + QLatin1String("../../share/doc/qtcreator/qml.qch"));
+#endif
+
+    helpManager->registerDocumentation(QStringList(qmlHelpFile));
 }
 
 void QmlEditorPlugin::initializeEditor(QmlEditor::Internal::ScriptEditor *editor)
diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
index 836db091a99..5d21971a354 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
@@ -42,7 +42,6 @@
 #include <texteditor/texteditoractionhandler.h>
 
 #include <QtCore/QtPlugin>
-#include <QtCore/QDebug>
 
 using namespace QmlProjectManager;
 using namespace QmlProjectManager::Internal;
-- 
GitLab