diff options
author | Topi Reinio <topi.reinio@qt.io> | 2021-04-14 13:42:15 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-04-16 11:35:06 +0000 |
commit | 26676dbfb8a92fd3a4b1cef9ddb72a6b3c98a542 (patch) | |
tree | 7c320e63eb58b74e8e395c53f8dddc2db1fa2142 | |
parent | 3f9a0d7bdecbfadbae084fac4fc7a412856947d7 (diff) | |
download | qttools-26676dbfb8a92fd3a4b1cef9ddb72a6b3c98a542.tar.gz |
Revert "QDoc: Make Generator::fileBase static"
This reverts commit 3e67b5e4df84421b77f90cbf242abb4a3c4c93a5.
The original implementation where fileBase() was a virtual function,
overridden by HtmlGenerator, was needed as that generator is the
only one that conditionally appends '-obsolete' to output file names.
By using a shared static helper across all generators we broke that
feature.
Modify the revert to resolve conflicts and override fileBase() also
for WebXMLGenerator; .webxml output should not refer to files with
-obsolete suffix.
Fixes: QTBUG-92478
Change-Id: I7a7e3ef333724c96624569dd27b4812196931fb0
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit f970effa9de5ad5e7d0445458d3d43582bbdc695)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/qdoc/generator.cpp | 4 | ||||
-rw-r--r-- | src/qdoc/generator.h | 2 | ||||
-rw-r--r-- | src/qdoc/htmlgenerator.cpp | 13 | ||||
-rw-r--r-- | src/qdoc/htmlgenerator.h | 2 | ||||
-rw-r--r-- | src/qdoc/manifestwriter.cpp | 2 | ||||
-rw-r--r-- | src/qdoc/webxmlgenerator.cpp | 7 | ||||
-rw-r--r-- | src/qdoc/webxmlgenerator.h | 1 | ||||
-rw-r--r-- | tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html | 2 |
8 files changed, 19 insertions, 14 deletions
diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp index 87b74ec56..5eaa7fbe9 100644 --- a/src/qdoc/generator.cpp +++ b/src/qdoc/generator.cpp @@ -326,7 +326,7 @@ static void transmogrify(QString &input, QString &output) output.chop(1); } -QString Generator::fileBase(const Node *node) +QString Generator::fileBase(const Node *node) const { if (!node->isPageNode() && !node->isCollectionNode()) node = node->parent(); @@ -372,7 +372,7 @@ QString Generator::fileBase(const Node *node) module name. */ if (!node->logicalModuleName().isEmpty() - && (!node->logicalModule()->isInternal() || Config::instance().showInternal())) + && (!node->logicalModule()->isInternal() || m_showInternal)) base.prepend(node->logicalModuleName() + outputSuffix(node) + QLatin1Char('-')); base.prepend(outputPrefix(node)); diff --git a/src/qdoc/generator.h b/src/qdoc/generator.h index 194c3aefb..3892617cf 100644 --- a/src/qdoc/generator.h +++ b/src/qdoc/generator.h @@ -97,7 +97,7 @@ public: static QmlTypeNode *qmlTypeContext() { return qmlTypeContext_; } static QString cleanRef(const QString &ref); static QString plainCode(const QString &markedCode); - static QString fileBase(const Node *node); + virtual QString fileBase(const Node *node) const; protected: static QFile *openSubPageFile(const Node *node, const QString &fileName); diff --git a/src/qdoc/htmlgenerator.cpp b/src/qdoc/htmlgenerator.cpp index e80649a95..73a0098a4 100644 --- a/src/qdoc/htmlgenerator.cpp +++ b/src/qdoc/htmlgenerator.cpp @@ -2281,7 +2281,7 @@ QString HtmlGenerator::generateAllMembersFile(const Section §ion, CodeMarker return QString(); const Aggregate *aggregate = section.aggregate(); - QString fileName = appendObsoleteToFileBase(aggregate) + "-members." + fileExtension(); + QString fileName = fileBase(aggregate) + "-members." + fileExtension(); beginSubPage(aggregate, fileName); QString title = "List of All Members for " + aggregate->name(); generateHeader(title, aggregate, marker); @@ -2311,7 +2311,7 @@ QString HtmlGenerator::generateAllQmlMembersFile(const Sections §ions, CodeM return QString(); const Aggregate *aggregate = sections.aggregate(); - QString fileName = appendObsoleteToFileBase(aggregate) + "-members." + fileExtension(); + QString fileName = fileBase(aggregate) + "-members." + fileExtension(); beginSubPage(aggregate, fileName); QString title = "List of All Members for " + aggregate->name(); generateHeader(title, aggregate, marker); @@ -2381,7 +2381,7 @@ QString HtmlGenerator::generateObsoleteMembersFile(const Sections §ions, Cod Aggregate *aggregate = sections.aggregate(); QString title = "Obsolete Members for " + aggregate->name(); - QString fileName = appendObsoleteToFileBase(aggregate) + "-obsolete." + fileExtension(); + QString fileName = fileBase(aggregate) + "-obsolete." + fileExtension(); QString link; if (useOutputSubdirs() && !Generator::outputSubdir().isEmpty()) link = QString("../" + Generator::outputSubdir() + QLatin1Char('/')); @@ -2437,7 +2437,7 @@ QString HtmlGenerator::generateObsoleteQmlMembersFile(const Sections §ions, Aggregate *aggregate = sections.aggregate(); QString title = "Obsolete Members for " + aggregate->name(); - QString fileName = appendObsoleteToFileBase(aggregate) + "-obsolete." + fileExtension(); + QString fileName = fileBase(aggregate) + "-obsolete." + fileExtension(); QString link; if (useOutputSubdirs() && !Generator::outputSubdir().isEmpty()) link = QString("../" + Generator::outputSubdir() + QLatin1Char('/')); @@ -2724,8 +2724,7 @@ void HtmlGenerator::generateCompactList(ListType listType, const Node *relative, */ out() << "<a href=\"" << linkForNode(it.value(), relative) << "\">"; } else if (listType == Obsolete) { - QString fileName = - appendObsoleteToFileBase(it.value()) + "-obsolete." + fileExtension(); + QString fileName = fileBase(it.value()) + "-obsolete." + fileExtension(); QString link; if (useOutputSubdirs()) { link = QString("../" + it.value()->outputSubdirectory() + QLatin1Char('/')); @@ -3314,7 +3313,7 @@ QString HtmlGenerator::protect(const QString &string) #undef APPEND } -QString HtmlGenerator::appendObsoleteToFileBase(const Node *node) const +QString HtmlGenerator::fileBase(const Node *node) const { QString result = Generator::fileBase(node); if (!node->isAggregate() && node->isObsolete()) diff --git a/src/qdoc/htmlgenerator.h b/src/qdoc/htmlgenerator.h index fc2bf0aae..40f45d605 100644 --- a/src/qdoc/htmlgenerator.h +++ b/src/qdoc/htmlgenerator.h @@ -123,7 +123,7 @@ private: void generateDetailedMember(const Node *node, const PageNode *relative, CodeMarker *marker); void generateLink(const Atom *atom, CodeMarker *marker); - QString appendObsoleteToFileBase(const Node *node) const; + QString fileBase(const Node *node) const override; QString fileName(const Node *node); void beginLink(const QString &link); diff --git a/src/qdoc/manifestwriter.cpp b/src/qdoc/manifestwriter.cpp index 7c312e550..e28c4c050 100644 --- a/src/qdoc/manifestwriter.cpp +++ b/src/qdoc/manifestwriter.cpp @@ -239,7 +239,7 @@ void ManifestWriter::generateManifestFile(const QString &manifest, const QString // attributes that are always written for the element usedAttributes.insert("name", example->title()); - usedAttributes.insert("docUrl", m_manifestDir + Generator::fileBase(example) + ".html"); + usedAttributes.insert("docUrl", m_manifestDir + Generator::currentGenerator()->fileBase(example) + ".html"); if (!example->projectFile().isEmpty()) usedAttributes.insert("projectPath", installPath + example->projectFile()); diff --git a/src/qdoc/webxmlgenerator.cpp b/src/qdoc/webxmlgenerator.cpp index 8befa6642..5479fb09d 100644 --- a/src/qdoc/webxmlgenerator.cpp +++ b/src/qdoc/webxmlgenerator.cpp @@ -257,7 +257,7 @@ void WebXMLGenerator::generateDocumentation(Node *node) if (!node->url().isNull() || node->isExternalPage() || node->isIndexNode()) return; - if (node->isInternal() && !Config::instance().showInternal()) + if (node->isInternal() && !m_showInternal) return; if (node->parent()) { @@ -873,4 +873,9 @@ void WebXMLGenerator::generateAnnotatedList(QXmlStreamWriter &writer, const Node writer.writeEndElement(); // table } +QString WebXMLGenerator::fileBase(const Node *node) const +{ + return Generator::fileBase(node); +} + QT_END_NAMESPACE diff --git a/src/qdoc/webxmlgenerator.h b/src/qdoc/webxmlgenerator.h index 187abd93d..f4e5623e8 100644 --- a/src/qdoc/webxmlgenerator.h +++ b/src/qdoc/webxmlgenerator.h @@ -72,6 +72,7 @@ private: void startLink(QXmlStreamWriter &writer, const Atom *atom, const Node *node, const QString &link); void endLink(QXmlStreamWriter &writer); + QString fileBase(const Node *node) const override; bool m_inLink { false }; bool m_inSectionHeading { false }; diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html index eea2e5310..d35dd5837 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html @@ -12,7 +12,7 @@ <p><b>The following members of class <a href="testqdoc-testderived.html">TestDerived</a> are obsolete.</b> They are provided to keep old source code working. We strongly advise against using them in new code.</p> <h2>Static Public Members</h2> <div class="table"><table class="alignedsummary"> -<tr><td class="memItemLeft topAlign rightAlign"> <code>(obsolete) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#staticObsoleteMember">staticObsoleteMember</a></b>()</td></tr> +<tr><td class="memItemLeft topAlign rightAlign"> <code>(obsolete) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived-obsolete.html#staticObsoleteMember">staticObsoleteMember</a></b>()</td></tr> </table></div> <h2>Member Function Documentation</h2> <!-- $$$staticObsoleteMember[overload1]$$$staticObsoleteMember --> |