diff options
-rw-r--r-- | doc/global/template/style/offline.css | 19 | ||||
-rw-r--r-- | src/tools/qdoc/htmlgenerator.cpp | 69 | ||||
-rw-r--r-- | src/tools/qdoc/htmlgenerator.h | 8 |
3 files changed, 65 insertions, 31 deletions
diff --git a/doc/global/template/style/offline.css b/doc/global/template/style/offline.css index 16f26f43bb..1936b16bda 100644 --- a/doc/global/template/style/offline.css +++ b/doc/global/template/style/offline.css @@ -266,7 +266,7 @@ footer and license float: left } - .navigationbar li a { + .navigationbar li a, .navigationbar td a { display: block; text-decoration: none; background: url(../images/arrow_bc.png); @@ -275,6 +275,23 @@ footer and license padding-right: 17px; } +table.buildversion { + float: right; + margin-top: -18px !important; +} + +.navigationbar table { + border-radius: 0; + border: 0 none; + background-color: #F2F2F2; + margin: 0; +} + +.navigationbar table td { + padding: 0; + border: 0 none; +} + #buildversion { font-style: italic; font-size: small; diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp index 90f8ab2046..b260e7ac1c 100644 --- a/src/tools/qdoc/htmlgenerator.cpp +++ b/src/tools/qdoc/htmlgenerator.cpp @@ -1847,71 +1847,87 @@ QString HtmlGenerator::fileExtension() const Output navigation list in the html file. */ void HtmlGenerator::generateNavigationBar(const QString &title, - const Node *node, - CodeMarker *marker) + const Node *node, + CodeMarker *marker, + const QString &buildversion, + bool tableItems) { if (noNavigationBar) return; Text navigationbar; + // Set list item types based on the navigation bar type + Atom::AtomType itemLeft = tableItems ? + Atom::TableItemLeft : Atom::ListItemLeft; + Atom::AtomType itemRight = tableItems ? + Atom::TableItemRight : Atom::ListItemRight; + if (homepage == title) return; if (!homepage.isEmpty()) - navigationbar << Atom(Atom::ListItemLeft) - << Atom(Atom::NavAutoLink, homepage) - << Atom(Atom::ListItemRight); + navigationbar << Atom(itemLeft) + << Atom(Atom::NavAutoLink, homepage) + << Atom(itemRight); if (!landingpage.isEmpty() && landingpage != title) - navigationbar << Atom(Atom::ListItemLeft) + navigationbar << Atom(itemLeft) << Atom(Atom::NavAutoLink, landingpage) - << Atom(Atom::ListItemRight); + << Atom(itemRight); if (node->isClass()) { - const ClassNode *cn = static_cast<const ClassNode *>(node); - QString name = node->physicalModuleName(); - if (!cppclassespage.isEmpty()) - navigationbar << Atom(Atom::ListItemLeft) + navigationbar << Atom(itemLeft) << Atom(Atom::NavLink, cppclassespage) << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << Atom(Atom::String, QLatin1String("C++ Classes")) << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) - << Atom(Atom::ListItemRight); + << Atom(itemRight); - if (!cn->name().isEmpty()) - navigationbar << Atom(Atom::ListItemLeft) - << Atom(Atom::String, cn->name()) - << Atom(Atom::ListItemRight); + if (!node->name().isEmpty()) + navigationbar << Atom(itemLeft) + << Atom(Atom::String, node->name()) + << Atom(itemRight); } else if (node->isQmlType() || node->isQmlBasicType() || node->isJsType() || node->isJsBasicType()) { if (!qmltypespage.isEmpty()) - navigationbar << Atom(Atom::ListItemLeft) + navigationbar << Atom(itemLeft) << Atom(Atom::NavLink, qmltypespage) << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << Atom(Atom::String, QLatin1String("QML Types")) << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) - << Atom(Atom::ListItemRight) - << Atom(Atom::ListItemLeft) + << Atom(itemRight) + << Atom(itemLeft) << Atom(Atom::String, title) - << Atom(Atom::ListItemRight); + << Atom(itemRight); } else { if (node->isExampleFile()) { - navigationbar << Atom(Atom::ListItemLeft) + navigationbar << Atom(itemLeft) << Atom(Atom::NavLink, node->parent()->name()) << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << Atom(Atom::String, node->parent()->title()) << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) - << Atom(Atom::ListItemRight); + << Atom(itemRight); } - navigationbar << Atom(Atom::ListItemLeft) + navigationbar << Atom(itemLeft) << Atom(Atom::String, title) - << Atom(Atom::ListItemRight); + << Atom(itemRight); } generateText(navigationbar, node, marker); + + if (buildversion.isEmpty()) + return; + + if (tableItems) { + out() << "</tr></table><table class=\"buildversion\"><tr>\n" + << "<td id=\"buildversion\" width=\"100%\" align=\"right\">" + << buildversion << "</td>\n"; + } else { + out() << "<li id=\"buildversion\">" << buildversion << "</li>\n"; + } } void HtmlGenerator::generateHeader(const QString& title, @@ -1990,9 +2006,8 @@ void HtmlGenerator::generateHeader(const QString& title, #endif out() << QString(postHeader).replace("\\" + COMMAND_VERSION, qdb_->version()); - generateNavigationBar(title,node,marker); - if (!buildversion.isEmpty()) - out() << "<li id=\"buildversion\">" << buildversion << "</li>\n"; + bool usingTable = postHeader.trimmed().endsWith(QLatin1String("<tr>")); + generateNavigationBar(title, node, marker, buildversion, usingTable); out() << QString(postPostHeader).replace("\\" + COMMAND_VERSION, qdb_->version()); navigationLinks.clear(); diff --git a/src/tools/qdoc/htmlgenerator.h b/src/tools/qdoc/htmlgenerator.h index bbb8f12e3e..0cf367b437 100644 --- a/src/tools/qdoc/htmlgenerator.h +++ b/src/tools/qdoc/htmlgenerator.h @@ -125,9 +125,11 @@ private: }; const QPair<QString,QString> anchorForNode(const Node *node); - void generateNavigationBar(const QString& title, - const Node *node, - CodeMarker *marker); + void generateNavigationBar(const QString &title, + const Node *node, + CodeMarker *marker, + const QString &buildversion, + bool tableItems = false); void generateHeader(const QString& title, const Node *node = 0, CodeMarker *marker = 0); |