summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2021-10-13 20:17:09 +0200
committerTopi Reinio <topi.reinio@qt.io>2021-11-08 14:19:39 +0200
commit663d6c11dae3e38a0d7f8b232148e617e7278d2b (patch)
tree9184e327591797bdeaa5f4c9b5e07d2c86e50b51
parent0fe38384bdec8d612056371b94509dec1239183f (diff)
downloadqttools-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.cpp2
-rw-r--r--src/qdoc/atom.h2
-rw-r--r--src/qdoc/doc.cpp6
-rw-r--r--src/qdoc/docbookgenerator.cpp10
-rw-r--r--src/qdoc/htmlgenerator.cpp25
-rw-r--r--src/qdoc/webxmlgenerator.cpp13
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());