diff options
Diffstat (limited to 'sources/shiboken6/generator/qtdoc/qtdocgenerator.h')
-rw-r--r-- | sources/shiboken6/generator/qtdoc/qtdocgenerator.h | 91 |
1 files changed, 57 insertions, 34 deletions
diff --git a/sources/shiboken6/generator/qtdoc/qtdocgenerator.h b/sources/shiboken6/generator/qtdoc/qtdocgenerator.h index b0f728fc4..3b1c82e74 100644 --- a/sources/shiboken6/generator/qtdoc/qtdocgenerator.h +++ b/sources/shiboken6/generator/qtdoc/qtdocgenerator.h @@ -9,11 +9,15 @@ #include "generator.h" #include "documentation.h" +#include <optionsparser.h> #include "typesystem_enums.h" -#include "typesystem_typedefs.h" +#include "modifications_typedefs.h" #include "qtxmltosphinxinterface.h" class DocParser; +struct DocGeneratorOptions; +struct GeneratorDocumentation; +struct DocPackage; /** * The DocGenerator generates documentation from library being binded. @@ -21,6 +25,8 @@ class DocParser; class QtDocGenerator : public Generator, public QtXmlToSphinxDocGeneratorInterface { public: + Q_DISABLE_COPY_MOVE(QtDocGenerator) + QtDocGenerator(); ~QtDocGenerator(); @@ -31,8 +37,8 @@ public: return "QtDocGenerator"; } - OptionDescriptions options() const override; - bool handleOption(const QString &key, const QString &value) override; + static QList<OptionDescription> options(); + static std::shared_ptr<OptionsParser> createOptionsParser(); // QtXmlToSphinxDocGeneratorInterface QString expandFunction(const QString &function) const override; @@ -43,64 +49,81 @@ public: const QLoggingCategory &loggingCategory() const override; QtXmlToSphinxLink resolveLink(const QtXmlToSphinxLink &) const override; + static QString getFuncName(const AbstractMetaFunctionCPtr &cppFunc); + static QString formatArgs(const AbstractMetaFunctionCPtr &func); + protected: - bool shouldGenerate(const TypeEntry *) const override; + bool shouldGenerate(const TypeEntryCPtr &) const override; static QString fileNameSuffix(); QString fileNameForContext(const GeneratorContext &context) const override; void generateClass(TextStream &ts, const GeneratorContext &classContext) override; bool finishGeneration() override; private: - void writeEnums(TextStream& s, const AbstractMetaClass* cppClass) const; - - void writeFields(TextStream &s, const AbstractMetaClass *cppClass) const; - static QString functionSignature(const AbstractMetaClass* cppClass, - const AbstractMetaFunctionCPtr &func); - void writeFunction(TextStream& s, const AbstractMetaClass* cppClass, - const AbstractMetaFunctionCPtr &func, bool indexed = true); - void writeFunctionParametersType(TextStream &s, const AbstractMetaClass *cppClass, + void writeEnums(TextStream &s, const AbstractMetaEnumList &enums, + const QString &scope) const; + + void writeFields(TextStream &s, const AbstractMetaClassCPtr &cppClass) const; + void writeFunctions(TextStream &s, const AbstractMetaFunctionCList &funcs, + const AbstractMetaClassCPtr &cppClass, const QString &scope); + void writeFunction(TextStream &s, const AbstractMetaFunctionCPtr &func, + const AbstractMetaClassCPtr &cppClass = {}, + const QString &scope = {}, bool indexed = true); + void writeFunctionDocumentation(TextStream &s, const AbstractMetaFunctionCPtr &func, + const DocModificationList &modifications, + const QString &scope) const; + void writeFunctionParametersType(TextStream &s, const AbstractMetaClassCPtr &cppClass, const AbstractMetaFunctionCPtr &func) const; - static void writeFunctionList(TextStream& s, const AbstractMetaClass* cppClass); - static void writeFunctionBlock(TextStream& s, const QString& title, - QStringList& functions); - void writeParameterType(TextStream &s, const AbstractMetaClass *cppClass, + static void writeFunctionToc(TextStream &s, const QString &title, + const AbstractMetaFunctionCList &functions); + static void writePropertyToc(TextStream &s, + const GeneratorDocumentation &doc); + void writeProperties(TextStream &s, + const GeneratorDocumentation &doc, + const AbstractMetaClassCPtr &cppClass) const; + void writeParameterType(TextStream &s, const AbstractMetaClassCPtr &cppClass, const AbstractMetaArgument &arg) const; - - void writeConstructors(TextStream &s, const AbstractMetaClass *cppClass) const; - void writeFormattedText(TextStream &s, const QString &doc, Documentation::Format format, - const AbstractMetaClass *metaClass = nullptr) const; + const QString &scope = {}) const; void writeFormattedBriefText(TextStream &s, const Documentation &doc, - const AbstractMetaClass *metaclass = nullptr) const; + const QString &scope = {}) const; void writeFormattedDetailedText(TextStream &s, const Documentation &doc, - const AbstractMetaClass *metaclass = nullptr) const; - - bool writeInjectDocumentation(TextStream& s, TypeSystem::DocModificationMode mode, - const AbstractMetaClass* cppClass, - const AbstractMetaFunctionCPtr &func); + const QString &scope = {}) const; + + bool writeInjectDocumentation(TextStream &s, TypeSystem::DocModificationMode mode, + const AbstractMetaClassCPtr &cppClass) const; + bool writeInjectDocumentation(TextStream &s, TypeSystem::DocModificationMode mode, + const DocModificationList &modifications, + const AbstractMetaFunctionCPtr &func, + const QString &scope = {}) const; + bool writeDocModifications(TextStream &s, const DocModificationList &mods, + TypeSystem::DocModificationMode mode, + const QString &scope = {}) const; static void writeDocSnips(TextStream &s, const CodeSnipList &codeSnips, TypeSystem::CodeSnipPosition position, TypeSystem::Language language); void writeModuleDocumentation(); + void writeGlobals(const QString &package, const QString &fileName, + const DocPackage &docPackage); void writeAdditionalDocumentation() const; + bool writeInheritanceFile(); - static QString parseArgDocStyle(const AbstractMetaClass *cppClass, - const AbstractMetaFunctionCPtr &func); - QString translateToPythonType(const AbstractMetaType &type, const AbstractMetaClass *cppClass) const; - static QString getFuncName(const AbstractMetaFunctionCPtr& cppFunc); + QString translateToPythonType(const AbstractMetaType &type, + const AbstractMetaClassCPtr &cppClass, + bool createRef = true) const; bool convertToRst(const QString &sourceFileName, const QString &targetFileName, const QString &context = QString(), QString *errorMessage = nullptr) const; - QString m_extraSectionDir; + static GeneratorDocumentation generatorDocumentation(const AbstractMetaClassCPtr &cppClass); + QStringList m_functionList; - QMap<QString, QStringList> m_packages; + QMap<QString, DocPackage> m_packages; QScopedPointer<DocParser> m_docParser; - QtXmlToSphinxParameters m_parameters; - QString m_additionalDocumentationList; + static DocGeneratorOptions m_options; }; #endif // DOCGENERATOR_H |