diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-09-24 14:28:42 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:10 -0300 |
commit | 2bfe59a2b8a588b338da7b9472d4ec6f66c2d10a (patch) | |
tree | af6a5fa06e12204cd3cf1fa1e256d7f4579b4966 | |
parent | f3a9cdbeb96ba5346f11ea5ef618b127684cfc72 (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.h | 9 | ||||
-rw-r--r-- | qtdocparser.cpp | 41 | ||||
-rw-r--r-- | qtdocparser.h | 1 |
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 |