aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2010-09-24 14:28:42 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:10 -0300
commit2bfe59a2b8a588b338da7b9472d4ec6f66c2d10a (patch)
treeaf6a5fa06e12204cd3cf1fa1e256d7f4579b4966
parentf3a9cdbeb96ba5346f11ea5ef618b127684cfc72 (diff)
Add retrieveModuleDocumentation(modName) function to DocParser API.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org> Marcelo Lira <marcelo.lira@openbossa.org>
-rw-r--r--docparser.h9
-rw-r--r--qtdocparser.cpp41
-rw-r--r--qtdocparser.h1
3 files changed, 33 insertions, 18 deletions
diff --git a/docparser.h b/docparser.h
index 3c32dc2f0..6764333be 100644
--- a/docparser.h
+++ b/docparser.h
@@ -91,6 +91,15 @@ public:
return m_packageName;
}
+ /**
+ * Process and retrieves documentation concerning the entire
+ * module or library.
+ * \param name module name
+ * \return object containing module/library documentation information
+ * \todo Merge with retrieveModuleDocumentation() on next ABI change.
+ */
+ virtual Documentation retrieveModuleDocumentation(const QString& name) = 0;
+
protected:
QString getDocumentation(QXmlQuery& xquery, const QString& query,
const DocModificationList& mods) const;
diff --git a/qtdocparser.cpp b/qtdocparser.cpp
index 66977c611..e15d438c9 100644
--- a/qtdocparser.cpp
+++ b/qtdocparser.cpp
@@ -28,24 +28,7 @@
Documentation QtDocParser::retrieveModuleDocumentation()
{
- // TODO: This method of acquiring the module name supposes that the target language uses
- // dots as module separators in package names. Improve this.
- QString moduleName = QString(packageName()).remove(0, packageName().lastIndexOf('.') + 1);
- QString sourceFile = documentationDataDirectory() + '/' + moduleName.toLower() + ".xml";
-
- if (!QFile::exists(sourceFile)) {
- ReportHandler::warning("Can't find qdoc3 file for module "
- + packageName() + ", tried: "
- + sourceFile);
- return Documentation();
- }
-
- QXmlQuery xquery;
- xquery.setFocus(QUrl(sourceFile));
-
- // Module documentation
- QString query = "/WebXML/document/page[@name=\"" + moduleName + "\"]/description";
- return Documentation(getDocumentation(xquery, query, DocModificationList()));
+ return retrieveModuleDocumentation(packageName());
}
void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
@@ -164,3 +147,25 @@ void QtDocParser::fillDocumentation(AbstractMetaClass* metaClass)
meta_enum->setDocumentation(doc);
}
}
+
+Documentation QtDocParser::retrieveModuleDocumentation(const QString& name)
+{
+ // TODO: This method of acquiring the module name supposes that the target language uses
+ // dots as module separators in package names. Improve this.
+ QString moduleName = QString(name).remove(0, name.lastIndexOf('.') + 1);
+ QString sourceFile = documentationDataDirectory() + '/' + moduleName.toLower() + ".xml";
+
+ if (!QFile::exists(sourceFile)) {
+ ReportHandler::warning("Can't find qdoc3 file for module "
+ + name + ", tried: "
+ + sourceFile);
+ return Documentation();
+ }
+
+ QXmlQuery xquery;
+ xquery.setFocus(QUrl(sourceFile));
+
+ // Module documentation
+ QString query = "/WebXML/document/page[@name=\"" + moduleName + "\"]/description";
+ return Documentation(getDocumentation(xquery, query, DocModificationList()));
+}
diff --git a/qtdocparser.h b/qtdocparser.h
index e2115f991..e69d0650a 100644
--- a/qtdocparser.h
+++ b/qtdocparser.h
@@ -32,6 +32,7 @@ public:
QtDocParser() {}
virtual void fillDocumentation(AbstractMetaClass* metaClass);
virtual Documentation retrieveModuleDocumentation();
+ virtual Documentation retrieveModuleDocumentation(const QString& name);
};
#endif // QTDOCPARSER_H