summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/ditaxmlgenerator.cpp
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@digia.com>2013-04-16 15:03:31 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-17 12:29:55 +0200
commitc77f7229d5c7e5017ddf90b1e9445251761878bf (patch)
tree9813a8246a64795bab2f214443347863a5a2b963 /src/tools/qdoc/ditaxmlgenerator.cpp
parent3ae271523ff7fb951df16cfccfaf84c0aa298e16 (diff)
qdoc: Add index of obsolete members to obsolete page
qdoc has been modified to emit a compact list of the classes that have one or more obsolete members. The command is: \generatelist obsoletecppmembers This generates an index of all such classes, where each class name is a link to the class's subpage of obsolete members. A class's subpage of obsolete members is also accessible from the class's reference page, but now it is also accessible from this index. Also, The command shown has been added to the page obsoleteclasses.html in the generated output. This page already contains the index of obsolete classes. Currently, no such output is generated for QML types and QML types with obsolete members. But qdoc does accept commands for those: \generatelist obsoleteqmltypes and \generatelist obsoleteqmlmembers ...but qdoc doesn't know what to do with those commands yet. Task-number: QTBUG-30270 Change-Id: If19a3b977f64c948e4bd6f14a9e0a287419baa8a Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Diffstat (limited to 'src/tools/qdoc/ditaxmlgenerator.cpp')
-rw-r--r--src/tools/qdoc/ditaxmlgenerator.cpp37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/tools/qdoc/ditaxmlgenerator.cpp b/src/tools/qdoc/ditaxmlgenerator.cpp
index 21bbdafaf5..a828101551 100644
--- a/src/tools/qdoc/ditaxmlgenerator.cpp
+++ b/src/tools/qdoc/ditaxmlgenerator.cpp
@@ -473,8 +473,6 @@ DitaXmlGenerator::DitaXmlGenerator()
inTableBody(false),
noLinks(false),
obsoleteLinks(false),
- offlineDocs(true),
- codeIndent(0),
divNestingLevel(0),
sectionNestingLevel(0),
tableColumnCount(0),
@@ -573,8 +571,6 @@ void DitaXmlGenerator::initializeGenerator(const Config &config)
customHeadElements = config.getStringList(DitaXmlGenerator::format() +
Config::dot +
DITAXMLGENERATOR_CUSTOMHEADELEMENTS);
- // The following line was changed to fix QTBUG-27798
- //codeIndent = config.getInt(CONFIG_CODEINDENT);
version = config.getString(CONFIG_VERSION);
vrm = version.split(QLatin1Char('.'));
}
@@ -1024,10 +1020,10 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
generateAnnotatedList(relative, marker, qdb_->getCppClasses());
}
else if (atom->string() == "classes") {
- generateCompactList(relative, qdb_->getCppClasses(), true);
+ generateCompactList(Generic, relative, qdb_->getCppClasses(), true);
}
else if (atom->string() == "qmlclasses") {
- generateCompactList(relative, qdb_->getQmlTypes(), true);
+ generateCompactList(Generic, relative, qdb_->getQmlTypes(), true);
}
else if (atom->string().contains("classesbymodule")) {
QString arg = atom->string().trimmed();
@@ -1046,10 +1042,19 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
generateClassHierarchy(relative, qdb_->getCppClasses());
}
else if (atom->string() == "compatclasses") {
- generateCompactList(relative, qdb_->getCompatibilityClasses(), false);
+ generateCompactList(Generic, relative, qdb_->getCompatibilityClasses(), false);
}
else if (atom->string() == "obsoleteclasses") {
- generateCompactList(relative, qdb_->getObsoleteClasses(), false);
+ generateCompactList(Generic, relative, qdb_->getObsoleteClasses(), false);
+ }
+ else if (atom->string() == "obsoleteqmltypes") {
+ generateCompactList(Generic, relative, qdb_->getObsoleteQmlTypes(), false);
+ }
+ else if (atom->string() == "obsoletecppmembers") {
+ generateCompactList(Obsolete, relative, qdb_->getClassesWithObsoleteMembers(), false);
+ }
+ else if (atom->string() == "obsoleteqmlmembers") {
+ generateCompactList(Obsolete, relative, qdb_->getQmlTypesWithObsoleteMembers(), false);
}
else if (atom->string() == "functionindex") {
generateFunctionIndex(relative);
@@ -1058,10 +1063,10 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
generateLegaleseList(relative, marker);
}
else if (atom->string() == "mainclasses") {
- generateCompactList(relative, qdb_->getMainClasses(), true);
+ generateCompactList(Generic, relative, qdb_->getMainClasses(), true);
}
else if (atom->string() == "services") {
- generateCompactList(relative, qdb_->getServiceClasses(), false);
+ generateCompactList(Generic, relative, qdb_->getServiceClasses(), false);
}
else if (atom->string() == "overviews") {
generateOverviewList(relative);
@@ -1176,9 +1181,9 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
writeCharacters(protectEnc((*s).name));
writeEndTag(); // </p>
if (idx == Class)
- generateCompactList(0, ncmap, false, QString("Q"));
+ generateCompactList(Generic, 0, ncmap, false, QString("Q"));
else if (idx == QmlClass)
- generateCompactList(0, nqcmap, false, QString("Q"));
+ generateCompactList(Generic, 0, nqcmap, false, QString("Q"));
else if (idx == MemberFunction) {
ParentMaps parentmaps;
ParentMaps::iterator pmap;
@@ -2599,7 +2604,7 @@ void DitaXmlGenerator::generateTableOfContents(const Node* node,
inLink_ = false;
}
-void DitaXmlGenerator::generateLowStatusMembers(const InnerNode* inner,
+void DitaXmlGenerator::generateLowStatusMembers(InnerNode* inner,
CodeMarker* marker,
CodeMarker::Status status)
{
@@ -2620,6 +2625,9 @@ void DitaXmlGenerator::generateLowStatusMembers(const InnerNode* inner,
if (sections.isEmpty())
return;
+ if (status == CodeMarker::Obsolete)
+ inner->setObsoleteLink(fileBase(inner) + "-obsolete." + fileExtension());
+
QList<Section>::ConstIterator s = sections.constBegin();
while (s != sections.constEnd()) {
if ((*s).name == "Member Function Documentation") {
@@ -2779,7 +2787,8 @@ void DitaXmlGenerator::generateAnnotatedList(const Node* relative,
normally you let it figure it out itself by looking at
the name of the first and last classes in \a classMap.
*/
-void DitaXmlGenerator::generateCompactList(const Node* relative,
+void DitaXmlGenerator::generateCompactList(ListType , // currently not needed for DITA
+ const Node* relative,
const NodeMap& classMap,
bool includeAlphabet,
QString commonPrefix)