From 274407f347c56d7ace9651c21a03d7bc0ab50f78 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 26 Nov 2012 13:54:43 +0100 Subject: Allow qdocconf to specify where the examples are located in install. We have qdoc configurations for the different qtbase libraries and modules now, which specify e.g. "../../../examples/opengl" for the exampledirs. That means that qdoc finds examples like "2dpainting/2dpainting.pro" which is then installed into "[QT_INSTALL_EXAMPLES]/opengl/2dpainting/2dpainting.pro". (At the moment even into "[QT_INSTALL_EXAMPLES]/qtbase/opengl/...", which will be changed to match the structure in source.) In order for Qt Creator to find the examples, qdoc must write the path behind [QT_INSTALL_EXAMPLES] into the example manifest file. This patch introduces "examplesinstallpath" that allows qdoc configs to specify the missing part, e.g. the opengl qdocconf can add examplesinstallpath = opengl to tell qdoc that the examples will be installed into "[QT_INSTALL_EXAMPLES]/opengl/" Task-number: QTBUG-27801 Change-Id: Idf518e16d3ca0f9522b084e92f34725b93e9d11f Reviewed-by: Martin Smith --- src/tools/qdoc/config.h | 1 + src/tools/qdoc/htmlgenerator.cpp | 10 ++++++---- src/tools/qdoc/htmlgenerator.h | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src/tools/qdoc') diff --git a/src/tools/qdoc/config.h b/src/tools/qdoc/config.h index f5c1999159..88c4db3e45 100644 --- a/src/tools/qdoc/config.h +++ b/src/tools/qdoc/config.h @@ -168,6 +168,7 @@ private: #define CONFIG_ENDHEADER "endheader" #define CONFIG_EXAMPLEDIRS "exampledirs" #define CONFIG_EXAMPLES "examples" +#define CONFIG_EXAMPLESINSTALLPATH "examplesinstallpath" #define CONFIG_EXCLUDEDIRS "excludedirs" #define CONFIG_EXCLUDEFILES "excludefiles" #define CONFIG_EXTRAIMAGES "extraimages" diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp index 5b752ffe2c..45c9777929 100644 --- a/src/tools/qdoc/htmlgenerator.cpp +++ b/src/tools/qdoc/htmlgenerator.cpp @@ -223,7 +223,9 @@ void HtmlGenerator::initializeGenerator(const Config &config) QString prefix = CONFIG_QHP + Config::dot + project + Config::dot; manifestDir = "qthelp://" + config.getString(prefix + "namespace"); manifestDir += QLatin1Char('/') + config.getString(prefix + "virtualFolder") + QLatin1Char('/'); - + examplesPath = config.getString(CONFIG_EXAMPLESINSTALLPATH); + if (!examplesPath.isEmpty()) + examplesPath += QLatin1Char('/'); } /*! @@ -4094,7 +4096,7 @@ void HtmlGenerator::generateManifestFile(QString manifest, QString element) } if (!proFiles.isEmpty()) { if (proFiles.size() == 1) { - writer.writeAttribute("projectPath", proFiles[0]); + writer.writeAttribute("projectPath", examplesPath + proFiles[0]); } else { QString exampleName = en->name().split('/').last(); @@ -4103,13 +4105,13 @@ void HtmlGenerator::generateManifestFile(QString manifest, QString element) { if (proFiles[j].endsWith(QStringLiteral("%1/%1.pro").arg(exampleName)) || proFiles[j].endsWith(QStringLiteral("%1/%1.qmlproject").arg(exampleName))) { - writer.writeAttribute("projectPath", proFiles[j]); + writer.writeAttribute("projectPath", examplesPath + proFiles[j]); proWithExampleNameFound = true; break; } } if (!proWithExampleNameFound) - writer.writeAttribute("projectPath", proFiles[0]); + writer.writeAttribute("projectPath", examplesPath + proFiles[0]); } } if (!en->imageFileName().isEmpty()) diff --git a/src/tools/qdoc/htmlgenerator.h b/src/tools/qdoc/htmlgenerator.h index c4af3c499e..31895d923b 100644 --- a/src/tools/qdoc/htmlgenerator.h +++ b/src/tools/qdoc/htmlgenerator.h @@ -236,6 +236,7 @@ private: QString projectUrl; QString navigationLinks; QString manifestDir; + QString examplesPath; QStringList stylesheets; QStringList customHeadElements; bool obsoleteLinks; -- cgit v1.2.3