diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-12-09 18:52:31 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-12-09 23:14:43 +0100 |
| commit | 5cd44e96cee2e8fc105372b5234b0682a7bcc012 (patch) | |
| tree | 5cefcdbd34edadbc0e08b7fb84594fae59f42851 | |
| parent | 2f1a1b49d6f135c12b8efe9f4ced9f2291a8482a (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.cpp | 23 |
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(), |
