diff options
author | Liang Qi <liang.qi@qt.io> | 2019-01-04 12:11:11 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2019-01-04 13:03:26 +0100 |
commit | 7b23692538f55d499bf094a750311e1e4cd13ec6 (patch) | |
tree | 7e85cdabe0e069ee8fcbc3da3764327b4f8e2ba2 /src/qdoc/htmlgenerator.cpp | |
parent | aa316d1d463777612db4b144d945bbaf67481494 (diff) | |
parent | 32897fd0b98966d22ecbd475a0e6a77ca8b1108d (diff) | |
download | qttools-7b23692538f55d499bf094a750311e1e4cd13ec6.tar.gz |
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
src/qdoc/htmlgenerator.cpp
src/qtattributionsscanner/qdocgenerator.cpp
Done-With: Martin Smith <martin.smith@qt.io>
Change-Id: I56a23175579a1a699939179da2f35bbcd6c73367
Diffstat (limited to 'src/qdoc/htmlgenerator.cpp')
-rw-r--r-- | src/qdoc/htmlgenerator.cpp | 90 |
1 files changed, 47 insertions, 43 deletions
diff --git a/src/qdoc/htmlgenerator.cpp b/src/qdoc/htmlgenerator.cpp index d7f9ae676..032490639 100644 --- a/src/qdoc/htmlgenerator.cpp +++ b/src/qdoc/htmlgenerator.cpp @@ -1431,7 +1431,6 @@ void HtmlGenerator::generateCppReferencePage(Node* node, CodeMarker* marker) } else { if (!s->members().isEmpty()) { - // out() << "<hr />\n"; QString ref = registerRef(s->title().toLower()); out() << "<a name=\"" << ref << "\"></a>" << divNavTop << "\n"; out() << "<h2 id=\"" << ref << "\">" << protectEnc(s->title()) << "</h2>\n"; @@ -1440,7 +1439,6 @@ void HtmlGenerator::generateCppReferencePage(Node* node, CodeMarker* marker) if (!s->reimplementedMembers().isEmpty()) { QString name = QString("Reimplemented ") + s->title(); QString ref = registerRef(name.toLower()); - // out() << "<hr />\n"; out() << "<a name=\"" << ref << "\"></a>" << divNavTop << "\n"; out() << "<h2 id=\"" << ref << "\">" << protectEnc(name) << "</h2>\n"; generateSection(s->reimplementedMembers(), aggregate, marker); @@ -1473,7 +1471,6 @@ void HtmlGenerator::generateCppReferencePage(Node* node, CodeMarker* marker) if (!aggregate->doc().isEmpty()) { generateExtractionMark(aggregate, DetailedDescriptionMark); - //out() << "<hr />\n" out() << "<div class=\"descr\">\n" // QTBUG-9504 << "<h2 id=\"" << detailsRef << "\">" << "Detailed Description" << "</h2>\n"; generateBody(aggregate, marker); @@ -1485,6 +1482,7 @@ void HtmlGenerator::generateCppReferencePage(Node* node, CodeMarker* marker) s = detailsSections->constBegin(); while (s != detailsSections->constEnd()) { + bool headerGenerated = false; if (s->isEmpty()) { ++s; continue; @@ -1496,50 +1494,56 @@ void HtmlGenerator::generateCppReferencePage(Node* node, CodeMarker* marker) NodeVector::ConstIterator m = s->members().constBegin(); while (m != s->members().constEnd()) { - if ((*m)->access() != Node::Private) { // ### check necessary? - if ((*m)->nodeType() != Node::Class) - generateDetailedMember(*m, aggregate, marker); - else { - out() << "<h3> class "; - generateFullName(*m, aggregate); - out() << "</h3>"; - generateBrief(*m, marker, aggregate); - } + if ((*m)->access() == Node::Private) { // ### check necessary? + ++m; + continue; + } + if (!headerGenerated) { + if (!s->divClass().isEmpty()) + out() << "<div class=\"" << s->divClass() << "\">\n"; // QTBUG-9504 + out() << "<h2>" << protectEnc(s->title()) << "</h2>\n"; + headerGenerated = true; + } + if ((*m)->nodeType() != Node::Class) + generateDetailedMember(*m, aggregate, marker); + else { + out() << "<h3> class "; + generateFullName(*m, aggregate); + out() << "</h3>"; + generateBrief(*m, marker, aggregate); + } - QStringList names; - names << (*m)->name(); - if ((*m)->nodeType() == Node::Function) { - const FunctionNode *func = reinterpret_cast<const FunctionNode *>(*m); - if (func->isSomeCtor() || func->isDtor() || func->overloadNumber() != 0) - names.clear(); - } - else if ((*m)->nodeType() == Node::Property) { - const PropertyNode *prop = reinterpret_cast<const PropertyNode *>(*m); - if (!prop->getters().isEmpty() && - !names.contains(prop->getters().first()->name())) - names << prop->getters().first()->name(); - if (!prop->setters().isEmpty()) - names << prop->setters().first()->name(); - if (!prop->resetters().isEmpty()) - names << prop->resetters().first()->name(); - if (!prop->notifiers().isEmpty()) - names << prop->notifiers().first()->name(); - } - else if ((*m)->nodeType() == Node::Enum) { - const EnumNode *enume = reinterpret_cast<const EnumNode*>(*m); - if (enume->flagsType()) - names << enume->flagsType()->name(); - - foreach (const QString &enumName, - enume->doc().enumItemNames().toSet() - - enume->doc().omitEnumItemNames().toSet()) - names << plainCode(marker->markedUpEnumValue(enumName, - enume)); - } + QStringList names; + names << (*m)->name(); + if ((*m)->nodeType() == Node::Function) { + const FunctionNode *func = reinterpret_cast<const FunctionNode *>(*m); + if (func->isSomeCtor() || func->isDtor() || func->overloadNumber() != 0) + names.clear(); + } else if ((*m)->nodeType() == Node::Property) { + const PropertyNode *prop = reinterpret_cast<const PropertyNode *>(*m); + if (!prop->getters().isEmpty() && + !names.contains(prop->getters().first()->name())) + names << prop->getters().first()->name(); + if (!prop->setters().isEmpty()) + names << prop->setters().first()->name(); + if (!prop->resetters().isEmpty()) + names << prop->resetters().first()->name(); + if (!prop->notifiers().isEmpty()) + names << prop->notifiers().first()->name(); + } else if ((*m)->nodeType() == Node::Enum) { + const EnumNode *enume = reinterpret_cast<const EnumNode*>(*m); + if (enume->flagsType()) + names << enume->flagsType()->name(); + + foreach (const QString &enumName, + enume->doc().enumItemNames().toSet() - + enume->doc().omitEnumItemNames().toSet()) + names << plainCode(marker->markedUpEnumValue(enumName, + enume)); } ++m; } - if (!s->divClass().isEmpty()) + if (headerGenerated && !s->divClass().isEmpty()) out() << "</div>\n"; // QTBUG-9504 ++s; } |