aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2024-12-09 18:52:31 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-12-09 23:14:43 +0100
commit5cd44e96cee2e8fc105372b5234b0682a7bcc012 (patch)
tree5cefcdbd34edadbc0e08b7fb84594fae59f42851
parent2f1a1b49d6f135c12b8efe9f4ced9f2291a8482a (diff)
shiboken6/Documentation: Disambiguate additional document target file name
Prepend the module unless it is already present. This has no impact on sphinx linking. Task-number: PYSIDE-1106 Pick-to: 6.8 Change-Id: I59edf97b7c39bfec02e8b7c949c316aebca39017 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-rw-r--r--sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp b/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
index 9fc33d919..6b293bf06 100644
--- a/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
+++ b/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp
@@ -1380,6 +1380,27 @@ static inline QString msgNonExistentAdditionalDocFile(const QString &dir,
return result;
}
+// Return rst target document name for additional docs
+// "qtcore/webxml/animation.webxml" -> "qtcore-animation.rst"
+static QString additionalDocRstFileName(const QFileInfo &fi, const QString &rstSuffix)
+{
+ QString result = fi.baseName() + rstSuffix;
+ // Disambiguate file name by directory
+ const QString dirName = fi.absolutePath();
+ QStringView prefix{dirName};
+ if (prefix.endsWith("/webxml"_L1))
+ prefix = prefix.chopped(7);
+ auto lastSlash = prefix.lastIndexOf(u'/');
+ if (lastSlash != -1) {
+ prefix = prefix.sliced(lastSlash + 1);
+ if (!result.startsWith(prefix)) {
+ result.prepend(u'-');
+ result.prepend(prefix);
+ }
+ }
+ return result;
+}
+
void QtDocGenerator::writeAdditionalDocumentation() const
{
QFile additionalDocumentationFile(m_options.additionalDocumentationList);
@@ -1418,7 +1439,7 @@ void QtDocGenerator::writeAdditionalDocumentation() const
// Normal file entry
QFileInfo fi(m_options.parameters.docDataDir + u'/' + line);
if (fi.isFile()) {
- const QString rstFileName = fi.baseName() + rstSuffix;
+ const QString rstFileName = additionalDocRstFileName(fi, rstSuffix);
const QString rstFile = targetDir + u'/' + rstFileName;
const QString context = targetDir.mid(targetDir.lastIndexOf(u'/') + 1);
if (convertToRst(fi.absoluteFilePath(),