diff options
Diffstat (limited to 'src/qdoc/generator.h')
-rw-r--r-- | src/qdoc/generator.h | 101 |
1 files changed, 33 insertions, 68 deletions
diff --git a/src/qdoc/generator.h b/src/qdoc/generator.h index fe79fd77e..f12aff933 100644 --- a/src/qdoc/generator.h +++ b/src/qdoc/generator.h @@ -29,7 +29,6 @@ #ifndef GENERATOR_H #define GENERATOR_H -#include "node.h" #include "text.h" #include <QtCore/qlist.h> @@ -43,9 +42,9 @@ QT_BEGIN_NAMESPACE typedef QMultiMap<QString, Node *> NodeMultiMap; typedef QMap<Node *, NodeMultiMap> ParentMaps; -class Config; class CodeMarker; class Location; +class Node; class QDocDatabase; class Generator @@ -53,8 +52,8 @@ class Generator Q_DECLARE_TR_FUNCTIONS(QDoc::Generator) public: - enum QDocPass { Neither, Prepare, Generate }; enum ListType { Generic, Obsolete }; + enum Addendum { Invokable, PrivateSignal, QmlSignalHandler, AssociatedProperties }; Generator(); virtual ~Generator(); @@ -62,20 +61,18 @@ public: virtual bool canHandleFormat(const QString &format) { return format == this->format(); } virtual QString format() = 0; virtual void generateDocs(); - virtual void initializeGenerator(const Config &config); - virtual void initializeFormat(const Config &config); + virtual void initializeGenerator(); + virtual void initializeFormat(); virtual void terminateGenerator(); + virtual QString typeString(const Node *node); QString fullDocumentLocation(const Node *node, bool useSubdir = false); - const Config *config() { return config_; } - QString linkForExampleFile(const QString &path, - const Node *parent, + QString linkForExampleFile(const QString &path, const Node *parent, const QString &fileExt = QString()); - static QString exampleFileTitle(const ExampleNode *relative, - const QString &fileName); + static QString exampleFileTitle(const ExampleNode *relative, const QString &fileName); static Generator *currentGenerator() { return currentGenerator_; } static Generator *generatorForFormat(const QString &format); - static void initialize(const Config &config); + static void initialize(); static const QString &outputDir() { return outDir_; } static const QString &outputSubdir() { return outSubdir_; } static void terminate(); @@ -84,15 +81,6 @@ public: static void augmentImageDirs(QSet<QString> &moreImageDirs); static bool noLinkErrors() { return noLinkErrors_; } static bool autolinkErrors() { return autolinkErrors_; } - static void setQDocPass(QDocPass t) { qdocPass_ = t; } - static void setUseTimestamps() { useTimestamps_ = true; } - static bool preparing() { return (qdocPass_ == Prepare); } - static bool generating() { return (qdocPass_ == Generate); } - static bool singleExec() { return qdocSingleExec_; } - static bool dualExec() { return !qdocSingleExec_; } - static bool writeQaPages() { return qdocWriteQaPages_; } - static void setSingleExec() { qdocSingleExec_ = true; } - static void setWriteQaPages() { qdocWriteQaPages_ = true; } static QString defaultModuleName() { return project_; } static void resetUseOutputSubdirs() { useOutputSubdirs_ = false; } static bool useOutputSubdirs() { return useOutputSubdirs_; } @@ -100,7 +88,6 @@ public: static QmlTypeNode *qmlTypeContext() { return qmlTypeContext_; } static QString cleanRef(const QString &ref); static QString plainCode(const QString &markedCode); - static bool useTimestamps() { return useTimestamps_; } protected: static QFile *openSubPageFile(const Node *node, const QString &fileName); @@ -110,7 +97,7 @@ protected: void endSubPage(); virtual QString fileBase(const Node *node) const; virtual QString fileExtension() const = 0; - virtual void generateQAPage() { } + virtual void generateQAPage() {} virtual void generateExampleFilePage(const Node *, const QString &, CodeMarker *) {} virtual void generateAlsoList(const Node *node, CodeMarker *marker); virtual int generateAtom(const Atom *, const Node *, CodeMarker *) { return 0; } @@ -128,95 +115,81 @@ protected: virtual void generateMaintainerList(const Aggregate *node, CodeMarker *marker); virtual void generateQmlInheritedBy(const QmlTypeNode *qcn, CodeMarker *marker); virtual void generateQmlInherits(QmlTypeNode *, CodeMarker *) {} - virtual bool generateQmlText(const Text &text, - const Node *relative, - CodeMarker *marker, + virtual bool generateQmlText(const Text &text, const Node *relative, CodeMarker *marker, const QString &qmlName); virtual bool generateText(const Text &text, const Node *relative, CodeMarker *marker); virtual QString imageFileName(const Node *relative, const QString &fileBase); virtual int skipAtoms(const Atom *atom, Atom::AtomType type) const; - virtual QString typeString(const Node *node); static bool matchAhead(const Atom *atom, Atom::AtomType expectedAtomType); static QString outputPrefix(const Node *node); static QString outputSuffix(const Node *node); static void singularPlural(Text &text, const NodeList &nodes); - static void supplementAlsoList(const Node *node, QList<Text> &alsoList); - static QString trimmedTrailing(const QString &string, - const QString &prefix, + static void supplementAlsoList(const Node *node, QVector<Text> &alsoList); + static QString trimmedTrailing(const QString &string, const QString &prefix, const QString &suffix); void initializeTextOutput(); QString fileName(const Node *node, const QString &extension = QString()) const; QMap<QString, QString> &formattingLeftMap(); QMap<QString, QString> &formattingRightMap(); - const Atom *generateAtomList(const Atom *atom, - const Node *relative, - CodeMarker *marker, - bool generate, - int &numGeneratedAtoms); + const Atom *generateAtomList(const Atom *atom, const Node *relative, CodeMarker *marker, + bool generate, int &numGeneratedAtoms); void generateRequiredLinks(const Node *node, CodeMarker *marker); - void generateLinkToExample(const ExampleNode *en, CodeMarker *marker, const QString &exampleUrl); + void generateLinkToExample(const ExampleNode *en, CodeMarker *marker, + const QString &exampleUrl); virtual void generateFileList(const ExampleNode *en, CodeMarker *marker, bool images); + static QString formatSince(const Node *node); void generateSince(const Node *node, CodeMarker *marker); void generateStatus(const Node *node, CodeMarker *marker); - void generatePrivateSignalNote(const Node *node, CodeMarker *marker); - void generateInvokableNote(const Node *node, CodeMarker *marker); + virtual void generateAddendum(const Node *node, Addendum type, CodeMarker *marker); void generateThreadSafeness(const Node *node, CodeMarker *marker); QString getMetadataElement(const Aggregate *inner, const QString &t); QStringList getMetadataElements(const Aggregate *inner, const QString &t); void generateOverloadedSignal(const Node *node, CodeMarker *marker); static QString getOverloadedSignalCode(const Node *node); QString indent(int level, const QString &markedCode); - QTextStream& out(); + QTextStream &out(); QString outFileName(); - bool parseArg(const QString &src, - const QString &tag, - int *pos, - int n, - QStringRef *contents, - QStringRef *par1 = nullptr, - bool debug = false); + bool parseArg(const QString &src, const QString &tag, int *pos, int n, QStringRef *contents, + QStringRef *par1 = nullptr, bool debug = false); void setImageFileExtensions(const QStringList &extensions); void unknownAtom(const Atom *atom); int appendSortedQmlNames(Text &text, const Node *base, const NodeList &subs); - static bool hasExceptions(const Node *node, - NodeList &reentrant, - NodeList &threadsafe, + static bool hasExceptions(const Node *node, NodeList &reentrant, NodeList &threadsafe, NodeList &nonreentrant); QMap<QString, QStringList> editionGroupMap; QMap<QString, QStringList> editionModuleMap; QString naturalLanguage; #ifndef QT_NO_TEXTCODEC - QTextCodec* outputCodec; + QTextCodec *outputCodec; QString outputEncoding; #endif QString tagFile_; QStack<QTextStream *> outStreamStack; - void appendFullName(Text &text, - const Node *apparentNode, - const Node *relative, + void appendFullName(Text &text, const Node *apparentNode, const Node *relative, const Node *actualNode = nullptr); - void appendFullName(Text &text, - const Node *apparentNode, - const QString &fullName, + void appendFullName(Text &text, const Node *apparentNode, const QString &fullName, const Node *actualNode); void appendFullNames(Text &text, const NodeList &nodes, const Node *relative); - int appendSortedNames(Text &text, const ClassNode *classe, const QList<RelatedClass> &classes); + int appendSortedNames(Text &text, const ClassNode *classe, + const QVector<RelatedClass> &classes); void appendSignature(Text &text, const Node *node); void signatureList(const NodeList &nodes, const Node *relative, CodeMarker *marker); void addImageToCopy(const ExampleNode *en, const QString &file); + static bool compareNodes(const Node *a, const Node *b) { return (a->name() < b->name()); } + static bool comparePaths(const QString &a, const QString &b) { return (a < b); } private: static Generator *currentGenerator_; static QStringList exampleDirs; static QStringList exampleImgExts; - static QMap<QString, QMap<QString, QString> > fmtLeftMaps; - static QMap<QString, QMap<QString, QString> > fmtRightMaps; - static QList<Generator *> generators; + static QMap<QString, QMap<QString, QString>> fmtLeftMaps; + static QMap<QString, QMap<QString, QString>> fmtRightMaps; + static QVector<Generator *> generators; static QStringList imageDirs; static QStringList imageFiles; static QMap<QString, QStringList> imgFileExts; @@ -234,22 +207,14 @@ private: static bool noLinkErrors_; static bool autolinkErrors_; static bool redirectDocumentationToDevNull_; - static QDocPass qdocPass_; static bool qdocSingleExec_; - static bool qdocWriteQaPages_; static bool useOutputSubdirs_; - static bool useTimestamps_; static QmlTypeNode *qmlTypeContext_; void generateReimplementsClause(const FunctionNode *fn, CodeMarker *marker); - static bool compareNodes(Node *a, Node *b) { return (a->name() < b->name()); } - static bool comparePaths(QString a, QString b) { return (a < b); } - static void copyTemplateFiles(const Config &config, - const QString &configVar, - const QString &subDir); + static void copyTemplateFiles(const QString &configVar, const QString &subDir); protected: - const Config *config_; QDocDatabase *qdb_; bool inLink_; bool inContents_; |