diff options
author | Topi Reinio <topi.reinio@qt.io> | 2021-10-13 20:17:09 +0200 |
---|---|---|
committer | Topi Reinio <topi.reinio@qt.io> | 2021-11-08 14:19:39 +0200 |
commit | 663d6c11dae3e38a0d7f8b232148e617e7278d2b (patch) | |
tree | 9184e327591797bdeaa5f4c9b5e07d2c86e50b51 | |
parent | 0fe38384bdec8d612056371b94509dec1239183f (diff) | |
download | qttools-663d6c11dae3e38a0d7f8b232148e617e7278d2b.tar.gz |
qdoc: Add styling for \note, \important and \warning
And add Atom types for Warning instead of simply hard-coding a bold
warning note.
Fixes: QTBUG-97448
Change-Id: I1fe691ffaadc549b17c8628817fe761d3be0fad7
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 8687e163757df00c1e64c15ad63680ed5c2f6937)
-rw-r--r-- | src/qdoc/atom.cpp | 2 | ||||
-rw-r--r-- | src/qdoc/atom.h | 2 | ||||
-rw-r--r-- | src/qdoc/doc.cpp | 6 | ||||
-rw-r--r-- | src/qdoc/docbookgenerator.cpp | 10 | ||||
-rw-r--r-- | src/qdoc/htmlgenerator.cpp | 25 | ||||
-rw-r--r-- | src/qdoc/webxmlgenerator.cpp | 13 |
6 files changed, 34 insertions, 24 deletions
diff --git a/src/qdoc/atom.cpp b/src/qdoc/atom.cpp index 53ea0c01e..1cfd6c565 100644 --- a/src/qdoc/atom.cpp +++ b/src/qdoc/atom.cpp @@ -234,6 +234,8 @@ static const struct { "TableOfContents", Atom::TableOfContents }, { "Target", Atom::Target }, { "UnhandledFormat", Atom::UnhandledFormat }, + { "WarningLeft", Atom::WarningLeft }, + { "WarningRight", Atom::WarningRight }, { "UnknownCommand", Atom::UnknownCommand }, { nullptr, 0 } }; diff --git a/src/qdoc/atom.h b/src/qdoc/atom.h index dba2562de..1af0c7da4 100644 --- a/src/qdoc/atom.h +++ b/src/qdoc/atom.h @@ -128,6 +128,8 @@ public: TableOfContents, Target, UnhandledFormat, + WarningLeft, + WarningRight, UnknownCommand, Last = UnknownCommand }; diff --git a/src/qdoc/doc.cpp b/src/qdoc/doc.cpp index 746f7962f..7437b7b92 100644 --- a/src/qdoc/doc.cpp +++ b/src/qdoc/doc.cpp @@ -1297,11 +1297,7 @@ void DocParser::parse(const QString &source, DocPrivate *docPrivate, break; case CMD_WARNING: leavePara(); - enterPara(); - append(Atom::FormattingLeft, ATOM_FORMATTING_BOLD); - append(Atom::String, "Warning:"); - append(Atom::FormattingRight, ATOM_FORMATTING_BOLD); - append(Atom::String, " "); + enterPara(Atom::WarningLeft, Atom::WarningRight); break; case CMD_OVERLOAD: priv->metacommandsUsed.insert(cmdStr); diff --git a/src/qdoc/docbookgenerator.cpp b/src/qdoc/docbookgenerator.cpp index 62979769d..32bd3128b 100644 --- a/src/qdoc/docbookgenerator.cpp +++ b/src/qdoc/docbookgenerator.cpp @@ -478,14 +478,18 @@ int DocBookGenerator::generateAtom(const Atom *atom, const Node *relative, CodeM case Atom::ImageText: break; case Atom::ImportantLeft: - case Atom::NoteLeft: { - QString tag = atom->type() == Atom::ImportantLeft ? "important" : "note"; - writer->writeStartElement(dbNamespace, tag); + case Atom::NoteLeft: + case Atom::WarningLeft: { + QString admonType = atom->typeString().toLower(); + // Remove 'Left' to get the admonition type + admonType.chop(4); + writer->writeStartElement(dbNamespace, admonType); newLine(); writer->writeStartElement(dbNamespace, "para"); } break; case Atom::ImportantRight: case Atom::NoteRight: + case Atom::WarningRight: writer->writeEndElement(); // para newLine(); writer->writeEndElement(); // note/important diff --git a/src/qdoc/htmlgenerator.cpp b/src/qdoc/htmlgenerator.cpp index ce7a835eb..98039d541 100644 --- a/src/qdoc/htmlgenerator.cpp +++ b/src/qdoc/htmlgenerator.cpp @@ -800,23 +800,24 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark } break; case Atom::ImageText: break; + // Admonitions case Atom::ImportantLeft: - out() << "<p>"; - out() << formattingLeftMap()[ATOM_FORMATTING_BOLD]; - out() << "Important: "; - out() << formattingRightMap()[ATOM_FORMATTING_BOLD]; - break; - case Atom::ImportantRight: - out() << "</p>"; - break; case Atom::NoteLeft: - out() << "<p>"; + case Atom::WarningLeft: { + QString admonType = atom->typeString(); + // Remove 'Left' from atom type to get the admonition type + admonType.chop(4); + out() << "<div class=\"admonition " << admonType.toLower() << "\">\n" + << "<p>"; out() << formattingLeftMap()[ATOM_FORMATTING_BOLD]; - out() << "Note: "; + out() << admonType << ": "; out() << formattingRightMap()[ATOM_FORMATTING_BOLD]; - break; + } break; + case Atom::ImportantRight: case Atom::NoteRight: - out() << "</p>\n"; + case Atom::WarningRight: + out() << "</p>\n" + << "</div>\n"; break; case Atom::LegaleseLeft: out() << "<div class=\"LegaleseLeft\">"; diff --git a/src/qdoc/webxmlgenerator.cpp b/src/qdoc/webxmlgenerator.cpp index 7dd46c134..848eacc7f 100644 --- a/src/qdoc/webxmlgenerator.cpp +++ b/src/qdoc/webxmlgenerator.cpp @@ -523,10 +523,6 @@ const Atom *WebXMLGenerator::addAtomElements(QXmlStreamWriter &writer, const Ato writer.writeCharacters(" "); break; - case Atom::ImportantRight: - writer.writeEndElement(); // para - break; - case Atom::LegaleseLeft: writer.writeStartElement("legalese"); break; @@ -603,7 +599,10 @@ const Atom *WebXMLGenerator::addAtomElements(QXmlStreamWriter &writer, const Ato writer.writeCharacters(" "); break; + // End admonition elements + case Atom::ImportantRight: case Atom::NoteRight: + case Atom::WarningRight: writer.writeEndElement(); // para break; @@ -728,6 +727,12 @@ const Atom *WebXMLGenerator::addAtomElements(QXmlStreamWriter &writer, const Ato writer.writeEndElement(); break; + case Atom::WarningLeft: + writer.writeStartElement("para"); + writer.writeTextElement("bold", "Warning:"); + writer.writeCharacters(" "); + break; + case Atom::UnhandledFormat: case Atom::UnknownCommand: writer.writeCharacters(atom->typeString()); |