aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-04-30 16:57:48 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-05-02 13:27:50 +0000
commit1deea556725a6599576b3b6becbf98bd90216000 (patch)
tree22588a8c37c9e41f261a06be5542286301dbf5f8 /sources/shiboken2
parentc5582d3120249a902681454b2319df765ffa2cd8 (diff)
QtXmlToSphinx: Add support for more elements
Add support for <target> and <page> elements for the additional documentation sections. Task-number: PYSIDE-363 Change-Id: I0b04106fbe6ae1779625de333368e18bbc31b962 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/shiboken2')
-rw-r--r--sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp41
-rw-r--r--sources/shiboken2/generator/qtdoc/qtdocgenerator.h2
2 files changed, 41 insertions, 2 deletions
diff --git a/sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp b/sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp
index b90077e84..b3b918088 100644
--- a/sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp
+++ b/sources/shiboken2/generator/qtdoc/qtdocgenerator.cpp
@@ -47,6 +47,11 @@ static Indentor INDENT;
static inline QString additionalDocumentationOption() { return QStringLiteral("additional-documentation"); }
+static inline QString nameAttribute() { return QStringLiteral("name"); }
+static inline QString titleAttribute() { return QStringLiteral("title"); }
+static inline QString fullTitleAttribute() { return QStringLiteral("fulltitle"); }
+static inline QString briefAttribute() { return QStringLiteral("brief"); }
+
static bool shouldSkip(const AbstractMetaFunction* func)
{
// Constructors go to separate section
@@ -262,7 +267,8 @@ QtXmlToSphinx::QtXmlToSphinx(QtDocGenerator* generator, const QString& doc, cons
m_handlerMap.insert(QLatin1String("tableofcontents"), &QtXmlToSphinx::handleIgnoredTag);
m_handlerMap.insert(QLatin1String("quotefromfile"), &QtXmlToSphinx::handleIgnoredTag);
m_handlerMap.insert(QLatin1String("skipto"), &QtXmlToSphinx::handleIgnoredTag);
- m_handlerMap.insert(QLatin1String("target"), &QtXmlToSphinx::handleIgnoredTag);
+ m_handlerMap.insert(QLatin1String("target"), &QtXmlToSphinx::handleTargetTag);
+ m_handlerMap.insert(QLatin1String("page"), &QtXmlToSphinx::handlePageTag);
// useless tags
m_handlerMap.insert(QLatin1String("description"), &QtXmlToSphinx::handleUselessTag);
@@ -632,7 +638,7 @@ void QtXmlToSphinx::handleSeeAlsoTag(QXmlStreamReader& reader)
handleLinkEnd(m_seeAlsoContext.data());
m_seeAlsoContext.reset();
}
- m_output << endl;
+ m_output << endl << endl;
break;
default:
break;
@@ -729,6 +735,8 @@ void QtXmlToSphinx::handleDotsTag(QXmlStreamReader& reader)
if (consecutiveSnippet) {
m_output.flush();
m_output.string()->chop(2);
+ } else {
+ m_output << INDENT << "::\n\n";
}
Indentation indentation(INDENT);
pushOutputBuffer();
@@ -1103,6 +1111,35 @@ void QtXmlToSphinx::handleSuperScriptTag(QXmlStreamReader& reader)
}
}
+void QtXmlToSphinx::handlePageTag(QXmlStreamReader &reader)
+{
+ if (reader.tokenType() != QXmlStreamReader::StartElement)
+ return;
+
+ const QStringRef title = reader.attributes().value(titleAttribute());
+ if (!title.isEmpty())
+ m_output << rstLabel(title.toString());
+
+ const QStringRef fullTitle = reader.attributes().value(fullTitleAttribute());
+ if (!fullTitle.isEmpty()) {
+ const int size = writeEscapedRstText(m_output, fullTitle);
+ m_output << endl << Pad('*', size) << endl << endl;
+ }
+
+ const QStringRef brief = reader.attributes().value(briefAttribute());
+ if (!brief.isEmpty())
+ m_output << escape(brief) << endl << endl;
+}
+
+void QtXmlToSphinx::handleTargetTag(QXmlStreamReader &reader)
+{
+ if (reader.tokenType() != QXmlStreamReader::StartElement)
+ return;
+ const QStringRef name = reader.attributes().value(nameAttribute());
+ if (!name.isEmpty())
+ m_output << INDENT << rstLabel(name.toString());
+}
+
void QtXmlToSphinx::handleIgnoredTag(QXmlStreamReader&)
{
}
diff --git a/sources/shiboken2/generator/qtdoc/qtdocgenerator.h b/sources/shiboken2/generator/qtdoc/qtdocgenerator.h
index df0e5ef9c..f4db588f0 100644
--- a/sources/shiboken2/generator/qtdoc/qtdocgenerator.h
+++ b/sources/shiboken2/generator/qtdoc/qtdocgenerator.h
@@ -152,6 +152,8 @@ private:
void handleItemTag(QXmlStreamReader& reader);
void handleRawTag(QXmlStreamReader& reader);
void handleCodeTag(QXmlStreamReader& reader);
+ void handlePageTag(QXmlStreamReader&);
+ void handleTargetTag(QXmlStreamReader&);
void handleIgnoredTag(QXmlStreamReader& reader);
void handleUnknownTag(QXmlStreamReader& reader);