diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2009-08-21 18:13:34 -0300 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2009-08-25 16:23:16 -0300 |
commit | 55dd77e04a8cef0e14648d6d8fb18cdc18695931 (patch) | |
tree | d6533b9b8e741050a6c6ccd9c5abab561767739d /generators/qtdoc | |
parent | 9682566c558674609a77540978e36db3dd174303 (diff) |
- QtDocGenerator is now a GeneratorRunner plugin.
- A lot of methods moved from boostpythongenerator to the generator class.
Diffstat (limited to 'generators/qtdoc')
-rw-r--r-- | generators/qtdoc/CMakeLists.txt | 10 | ||||
-rw-r--r-- | generators/qtdoc/qtdocgenerator.cpp | 74 | ||||
-rw-r--r-- | generators/qtdoc/qtdocgenerator.h | 24 |
3 files changed, 44 insertions, 64 deletions
diff --git a/generators/qtdoc/CMakeLists.txt b/generators/qtdoc/CMakeLists.txt new file mode 100644 index 000000000..68c92b950 --- /dev/null +++ b/generators/qtdoc/CMakeLists.txt @@ -0,0 +1,10 @@ +project(qtdoc_generator) + +set(qtdoc_generator_SRC +qtdocgenerator.cpp +) + +add_library(qtdoc_generator SHARED ${qtdoc_generator_SRC}) +target_link_libraries(qtdoc_generator ${APIEXTRACTOR_LIBRARY} ${QT_QTCORE_LIBRARY} generator) + +install(TARGETS qtdoc_generator DESTINATION ${LIB_INSTALL_DIR}) diff --git a/generators/qtdoc/qtdocgenerator.cpp b/generators/qtdoc/qtdocgenerator.cpp index ac3dbf378..8e8498db4 100644 --- a/generators/qtdoc/qtdocgenerator.cpp +++ b/generators/qtdoc/qtdocgenerator.cpp @@ -21,7 +21,7 @@ * */ -#include "docgenerator.h" +#include "qtdocgenerator.h" #include <reporthandler.h> #include <qtdocparser.h> #include <algorithm> @@ -65,7 +65,7 @@ QString escape(const QStringRef& strref) } -QtXmlToSphinx::QtXmlToSphinx(DocGenerator* generator, const QString& doc, const QString& context) +QtXmlToSphinx::QtXmlToSphinx(QtDocGenerator* generator, const QString& doc, const QString& context) : m_context(context), m_generator(generator), m_insideBold(false), m_insideItalic(false) { m_handlerMap.insert("heading", &QtXmlToSphinx::handleHeadingTag); @@ -803,12 +803,12 @@ static QString getFuncName(const AbstractMetaFunction *cppFunc) { return result.replace("::", "."); } -QString DocGenerator::fileNameForClass(const AbstractMetaClass *cppClass) const +QString QtDocGenerator::fileNameForClass(const AbstractMetaClass *cppClass) const { return QString("%1.rst").arg(getClassName(cppClass)); } -void DocGenerator::writeFormatedText(QTextStream& s, const Documentation& doc, const AbstractMetaClass* metaClass) +void QtDocGenerator::writeFormatedText(QTextStream& s, const Documentation& doc, const AbstractMetaClass* metaClass) { QString metaClassName; @@ -825,7 +825,7 @@ void DocGenerator::writeFormatedText(QTextStream& s, const Documentation& doc, c s << endl; } -void DocGenerator::writeFunctionBrief(QTextStream &s, +void QtDocGenerator::writeFunctionBrief(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaFunction *cppFunction) { @@ -838,7 +838,7 @@ void DocGenerator::writeFunctionBrief(QTextStream &s, << " (" << parseArgDocStyle(cppClass, cppFunction) << "):"; } -void DocGenerator::generateClass(QTextStream &s, const AbstractMetaClass *cppClass) +void QtDocGenerator::generateClass(QTextStream &s, const AbstractMetaClass *cppClass) { QString doc; QTextStream doc_s(&doc); @@ -858,35 +858,6 @@ void DocGenerator::generateClass(QTextStream &s, const AbstractMetaClass *cppCla AbstractMetaFunctionList functionList = filterFunctions(cppClass); qSort(functionList.begin(), functionList.end(), functionSort); -#if 0 - if (functionList.size() > 0) - { - QtXmlToSphinx::Table functionTable; - QtXmlToSphinx::TableRow row; - - s << "Functions\n" - "---------\n\n"; - - - foreach (AbstractMetaFunction *func, functionList) { - if ((func->isConstructor() || func->isModifiedRemoved()) || - (func->declaringClass() != cppClass)) - continue; - - QString rowString; - QTextStream rowStream(&rowString); - - writeFunctionBrief(rowStream, cppClass, func); - row << rowString; - functionTable << row; - row.clear(); - } - functionTable.normalize(); - s << functionTable; - } - -#endif - doc_s << "Detailed Description\n" "--------------------\n\n"; @@ -921,7 +892,7 @@ void DocGenerator::generateClass(QTextStream &s, const AbstractMetaClass *cppCla s << doc; } -QString DocGenerator::parseFunctionDeclaration(const QString &doc, const AbstractMetaClass *cppClass) +QString QtDocGenerator::parseFunctionDeclaration(const QString &doc, const AbstractMetaClass *cppClass) { //.. method:: QObject.childEvent(arg__1) //def :meth:`removeEventFilter<QObject.removeEventFilter>` (arg__1): @@ -952,7 +923,7 @@ QString DocGenerator::parseFunctionDeclaration(const QString &doc, const Abstrac } -void DocGenerator::writeFunctionList(QTextStream &s, const QString &content, const AbstractMetaClass *cppClass) +void QtDocGenerator::writeFunctionList(QTextStream &s, const QString &content, const AbstractMetaClass *cppClass) { QStringList functionList; QStringList staticFunctionList; @@ -1009,7 +980,7 @@ void DocGenerator::writeFunctionList(QTextStream &s, const QString &content, con } } -void DocGenerator::writeEnums(QTextStream& s, const AbstractMetaClass* cppClass) +void QtDocGenerator::writeEnums(QTextStream& s, const AbstractMetaClass* cppClass) { static const QString section_title(".. attribute:: "); @@ -1019,7 +990,7 @@ void DocGenerator::writeEnums(QTextStream& s, const AbstractMetaClass* cppClass) } } -void DocGenerator::writeFields(QTextStream &s, const AbstractMetaClass *cppClass) +void QtDocGenerator::writeFields(QTextStream &s, const AbstractMetaClass *cppClass) { static const QString section_title(".. attribute:: "); @@ -1030,7 +1001,7 @@ void DocGenerator::writeFields(QTextStream &s, const AbstractMetaClass *cppClass } } -void DocGenerator::writeConstructors(QTextStream &s, const AbstractMetaClass *cppClass) +void QtDocGenerator::writeConstructors(QTextStream &s, const AbstractMetaClass *cppClass) { static const QString sectionTitle = ".. class:: "; static const QString sectionTitleSpace = QString(sectionTitle.size(), ' '); @@ -1073,7 +1044,7 @@ void DocGenerator::writeConstructors(QTextStream &s, const AbstractMetaClass *cp } } -QString DocGenerator::parseArgDocStyle(const AbstractMetaClass *cppClass, const AbstractMetaFunction *func) +QString QtDocGenerator::parseArgDocStyle(const AbstractMetaClass *cppClass, const AbstractMetaFunction *func) { QString ret; bool optional = false; @@ -1103,7 +1074,7 @@ QString DocGenerator::parseArgDocStyle(const AbstractMetaClass *cppClass, const return ret; } -void DocGenerator::writeDocSnips(QTextStream &s, +void QtDocGenerator::writeDocSnips(QTextStream &s, const CodeSnipList &codeSnips, CodeSnip::Position position, TypeSystem::Language language) @@ -1166,7 +1137,7 @@ void DocGenerator::writeDocSnips(QTextStream &s, } } -void DocGenerator::writeInjectDocumentation(QTextStream &s, +void QtDocGenerator::writeInjectDocumentation(QTextStream &s, DocModification::Mode mode, const AbstractMetaClass *cppClass, const AbstractMetaFunction *func) @@ -1208,14 +1179,14 @@ void DocGenerator::writeInjectDocumentation(QTextStream &s, } } -void DocGenerator::writeFunctionSignature(QTextStream& s, const AbstractMetaClass* cppClass, const AbstractMetaFunction* func) +void QtDocGenerator::writeFunctionSignature(QTextStream& s, const AbstractMetaClass* cppClass, const AbstractMetaFunction* func) { if (!func->isConstructor()) s << getClassName(cppClass) << '.'; s << getFuncName(func) << "(" << parseArgDocStyle(cppClass, func) << ")"; } -QString DocGenerator::translateToPythonType(const AbstractMetaType *type, const AbstractMetaClass *cppClass) +QString QtDocGenerator::translateToPythonType(const AbstractMetaType *type, const AbstractMetaClass *cppClass) { QString originalType = translateType(type, cppClass, Generator::ExcludeConst | Generator::ExcludeReference); QString strType = originalType; @@ -1248,13 +1219,13 @@ QString DocGenerator::translateToPythonType(const AbstractMetaType *type, const } } -void DocGenerator::writeParamerteType(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaArgument *arg) +void QtDocGenerator::writeParamerteType(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaArgument *arg) { s << INDENT << ":param " << arg->argumentName() << ": " << translateToPythonType(arg->type(), cppClass) << endl; } -void DocGenerator::writeFunctionParametersType(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaFunction* func) +void QtDocGenerator::writeFunctionParametersType(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaFunction* func) { Indentation indentation(INDENT); @@ -1273,7 +1244,7 @@ void DocGenerator::writeFunctionParametersType(QTextStream &s, const AbstractMet s << endl; } -void DocGenerator::writeFunction(QTextStream &s, bool writeDoc, const AbstractMetaClass *cppClass, const AbstractMetaFunction* func) +void QtDocGenerator::writeFunction(QTextStream &s, bool writeDoc, const AbstractMetaClass *cppClass, const AbstractMetaFunction* func) { writeFunctionSignature(s, cppClass, func); s << endl; @@ -1288,7 +1259,7 @@ void DocGenerator::writeFunction(QTextStream &s, bool writeDoc, const AbstractMe } } -void DocGenerator::finishGeneration() +void QtDocGenerator::finishGeneration() { if (classes().isEmpty()) return; @@ -1332,9 +1303,8 @@ void DocGenerator::finishGeneration() } } -bool DocGenerator::prepareGeneration(const QMap<QString, QString>& args) +bool QtDocGenerator::doSetup(const QMap<QString, QString>& args) { - BoostPythonGenerator::prepareGeneration(args); m_libSourceDir = args.value("library-source-dir"); setOutputDirectory(args.value("documentation-out-dir")); m_docDataDir = args.value("documentation-data-dir"); @@ -1358,7 +1328,7 @@ bool DocGenerator::prepareGeneration(const QMap<QString, QString>& args) } -QMap<QString, QString> DocGenerator::options() const +QMap<QString, QString> QtDocGenerator::options() const { QMap<QString, QString> options; options.insert("library-source-dir", "Directory where library source code is located"); diff --git a/generators/qtdoc/qtdocgenerator.h b/generators/qtdoc/qtdocgenerator.h index cef7fa7a3..1d898197e 100644 --- a/generators/qtdoc/qtdocgenerator.h +++ b/generators/qtdoc/qtdocgenerator.h @@ -23,11 +23,16 @@ #ifndef DOCGENERATOR_H #define DOCGENERATOR_H -#include "boostpythongenerator.h" #include <QtCore/QStack> +#include <QtCore/QHash> +#include <QtCore/QTextStream> +#include <apiextractor/abstractmetalang.h> +#include "generator.h" +class AbstractMetaFunction; +class AbstractMetaClass; class QXmlStreamReader; -class DocGenerator; +class QtDocGenerator; class QtXmlToSphinx { @@ -77,7 +82,7 @@ public: bool m_normalized; }; - QtXmlToSphinx(DocGenerator* generator, const QString& doc, const QString& context = QString()); + QtXmlToSphinx(QtDocGenerator* generator, const QString& doc, const QString& context = QString()); QString result() const { @@ -127,7 +132,7 @@ private: Table m_currentTable; bool m_tableHasHeader; QString m_context; - DocGenerator* m_generator; + QtDocGenerator* m_generator; bool m_insideBold; bool m_insideItalic; QString m_lastTagName; @@ -149,24 +154,19 @@ QTextStream& operator<<(QTextStream& s, const QtXmlToSphinx::Table &table); /** * The DocGenerator generates documentation from library being binded. */ -class DocGenerator : public BoostPythonGenerator +class QtDocGenerator : public Generator { public: - virtual GeneratorType type() const - { - return DocumentationType; - } - QString libSourceDir() const { return m_libSourceDir; } - virtual bool prepareGeneration(const QMap<QString, QString>& args); + bool doSetup(const QMap<QString, QString>& args); const char* name() const { - return "DocGenerator"; + return "QtDocGenerator"; } QMap<QString, QString> options() const; |