diff options
Diffstat (limited to 'sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp')
-rw-r--r-- | sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp b/sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp index dba24f2fe..ce0f794b0 100644 --- a/sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp +++ b/sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp @@ -625,12 +625,16 @@ void QtXmlToSphinx::handleItalicTag(QXmlStreamReader& reader) { switch (reader.tokenType()) { case QXmlStreamReader::StartElement: - m_insideItalic = true; - m_output << rstItalic; + if (m_formattingDepth++ == 0) { + m_insideItalic = true; + m_output << rstItalic; + } break; case QXmlStreamReader::EndElement: - m_insideItalic = false; - m_output << rstItalicOff; + if (--m_formattingDepth == 0) { + m_insideItalic = false; + m_output << rstItalicOff; + } break; case QXmlStreamReader::Characters: m_output << escape(reader.text().trimmed()); @@ -644,12 +648,16 @@ void QtXmlToSphinx::handleBoldTag(QXmlStreamReader& reader) { switch (reader.tokenType()) { case QXmlStreamReader::StartElement: - m_insideBold = true; - m_output << rstBold; + if (m_formattingDepth++ == 0) { + m_insideBold = true; + m_output << rstBold; + } break; case QXmlStreamReader::EndElement: - m_insideBold = false; - m_output << rstBoldOff; + if (--m_formattingDepth == 0) { + m_insideBold = false; + m_output << rstBoldOff; + } break; case QXmlStreamReader::Characters: m_output << escape(reader.text().trimmed()); @@ -663,10 +671,12 @@ void QtXmlToSphinx::handleArgumentTag(QXmlStreamReader& reader) { switch (reader.tokenType()) { case QXmlStreamReader::StartElement: - m_output << rstCode; + if (m_formattingDepth++ == 0) + m_output << rstCode; break; case QXmlStreamReader::EndElement: - m_output << rstCodeOff; + if (--m_formattingDepth == 0) + m_output << rstCodeOff; break; case QXmlStreamReader::Characters: m_output << reader.text().trimmed(); |