diff options
Diffstat (limited to 'src/tools/qdoc/node.h')
-rw-r--r-- | src/tools/qdoc/node.h | 476 |
1 files changed, 235 insertions, 241 deletions
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h index e25bbd7a4a..8e25aac9c1 100644 --- a/src/tools/qdoc/node.h +++ b/src/tools/qdoc/node.h @@ -1,7 +1,7 @@ /**************************************************************************** ** -** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ ** ** This file is part of the tools applications of the Qt Toolkit. ** @@ -10,9 +10,9 @@ ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser @@ -23,8 +23,8 @@ ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** $QT_END_LICENSE$ @@ -51,11 +51,10 @@ class ClassNode; class InnerNode; class ExampleNode; class TypedefNode; -class QmlClassNode; +class QmlTypeNode; class QDocDatabase; class FunctionNode; class PropertyNode; -class QmlModuleNode; class CollectionNode; class QmlPropertyNode; @@ -107,7 +106,7 @@ public: LastSubtype }; - enum Genus { DontCare, CPP, QML }; + enum Genus { DontCare, CPP, JS, QML, DOC }; enum Access { Public, Protected, Private }; @@ -170,36 +169,45 @@ public: const QString& fileNameBase() const { return fileNameBase_; } bool hasFileNameBase() const { return !fileNameBase_.isEmpty(); } void setFileNameBase(const QString& t) { fileNameBase_ = t; } + Node::Genus genus() const { return (Genus) genus_; } + void setGenus(Genus t) { genus_ = (unsigned char) t; } - void setAccess(Access access) { access_ = access; } + void setAccess(Access access) { access_ = (unsigned char) access; } void setLocation(const Location& location) { loc_ = location; } void setDoc(const Doc& doc, bool replace = false); void setStatus(Status status) { - if (status_ == Obsolete && status == Deprecated) + if (status_ == (unsigned char) Obsolete && status == Deprecated) return; - status_ = status; + status_ = (unsigned char) status; } - void setThreadSafeness(ThreadSafeness safeness) { safeness_ = safeness; } + void setThreadSafeness(ThreadSafeness safeness) { safeness_ = (unsigned char) safeness; } void setSince(const QString &since); void setRelates(InnerNode* pseudoParent); - void setModuleName(const QString &name) { moduleName_ = name; } + void setPhysicalModuleName(const QString &name) { physicalModuleName_ = name; } void setUrl(const QString& url) { url_ = url; } void setTemplateStuff(const QString &templateStuff) { templateStuff_ = templateStuff; } void setReconstitutedBrief(const QString &t) { reconstitutedBrief_ = t; } - void setPageType(PageType t) { pageType_ = t; } + void setPageType(PageType t) { pageType_ = (unsigned char) t; } void setPageType(const QString& t); void setParent(InnerNode* n) { parent_ = n; } void setIndexNodeFlag() { indexNodeFlag_ = true; } virtual void setOutputFileName(const QString& ) { } + bool isQmlNode() const { return genus() == QML; } + bool isJsNode() const { return genus() == JS; } + bool isCppNode() const { return genus() == CPP; } + virtual bool isInnerNode() const = 0; - virtual bool isDocNode() const { return false; } virtual bool isCollectionNode() const { return false; } + virtual bool isDocumentNode() const { return false; } virtual bool isGroup() const { return false; } virtual bool isModule() const { return false; } virtual bool isQmlModule() const { return false; } + virtual bool isJsModule() const { return false; } virtual bool isQmlType() const { return false; } + virtual bool isJsType() const { return false; } virtual bool isQmlBasicType() const { return false; } + virtual bool isJsBasicType() const { return false; } virtual bool isExample() const { return false; } virtual bool isExampleFile() const { return false; } virtual bool isHeaderFile() const { return false; } @@ -208,11 +216,19 @@ public: virtual bool isFunction() const { return false; } virtual bool isNamespace() const { return false; } virtual bool isClass() const { return false; } - virtual bool isQmlNode() const { return false; } - virtual bool isCppNode() const { return false; } virtual bool isQtQuickNode() const { return false; } virtual bool isAbstract() const { return false; } + virtual bool isProperty() const { return false; } + virtual bool isQmlProperty() const { return false; } + virtual bool isJsProperty() const { return false; } virtual bool isQmlPropertyGroup() const { return false; } + virtual bool isJsPropertyGroup() const { return false; } + virtual bool isQmlSignal() const { return false; } + virtual bool isJsSignal() const { return false; } + virtual bool isQmlSignalHandler() const { return false; } + virtual bool isJsSignalHandler() const { return false; } + virtual bool isQmlMethod() const { return false; } + virtual bool isJsMethod() const { return false; } virtual bool isAttached() const { return false; } virtual bool isAlias() const { return false; } virtual bool isWrapper() const; @@ -225,7 +241,6 @@ public: virtual bool hasClasses() const { return false; } virtual void setAbstract(bool ) { } virtual void setWrapper() { } - virtual Node::Genus genus() const { return DontCare; } virtual QString title() const { return name(); } virtual QString fullTitle() const { return name(); } virtual QString subTitle() const { return QString(); } @@ -245,14 +260,14 @@ public: virtual Tree* tree() const; virtual void findChildren(const QString& , NodeList& nodes) const { nodes.clear(); } bool isIndexNode() const { return indexNodeFlag_; } - Type type() const { return nodeType_; } + Type type() const { return (Type) nodeType_; } virtual SubType subType() const { return NoSubType; } bool match(const NodeTypeList& types) const; InnerNode* parent() const { return parent_; } const Node* root() const; InnerNode* relates() const { return relatesTo_; } const QString& name() const { return name_; } - QString moduleName() const; + QString physicalModuleName() const; QString url() const { return url_; } virtual QString nameForLists() const { return name_; } virtual QString outputFileName() const { return QString(); } @@ -264,21 +279,21 @@ public: const QMap<LinkType, QPair<QString,QString> >& links() const { return linkMap_; } void setLink(LinkType linkType, const QString &link, const QString &desc); - Access access() const { return access_; } - bool isPrivate() const { return access_ == Private; } + Access access() const { return (Access) access_; } + bool isPrivate() const { return (Access) access_ == Private; } QString accessString() const; const Location& location() const { return loc_; } const Doc& doc() const { return doc_; } bool hasDoc() const { return !doc_.isEmpty(); } - Status status() const { return status_; } + Status status() const { return (Status) status_; } Status inheritedStatus() const; - bool isObsolete() const { return (status_ == Obsolete); } + bool isObsolete() const { return (status_ == (unsigned char) Obsolete); } ThreadSafeness threadSafeness() const; ThreadSafeness inheritedThreadSafeness() const; QString since() const { return since_; } QString templateStuff() const { return templateStuff_; } const QString& reconstitutedBrief() const { return reconstitutedBrief_; } - PageType pageType() const { return pageType_; } + PageType pageType() const { return (PageType) pageType_; } QString pageTypeString() const; QString nodeTypeString() const; QString nodeSubtypeString() const; @@ -290,30 +305,31 @@ public: QString extractClassName(const QString &string) const; virtual QString qmlTypeName() const { return name_; } virtual QString qmlFullBaseName() const { return QString(); } - virtual QString qmlModuleName() const { return QString(); } - virtual QString qmlModuleVersion() const { return QString(); } - virtual QString qmlModuleIdentifier() const { return QString(); } - virtual void setQmlModuleInfo(const QString& ) { } - virtual QmlModuleNode* qmlModule() const { return 0; } - virtual void setQmlModule(QmlModuleNode* ) { } + virtual QString logicalModuleName() const { return QString(); } + virtual QString logicalModuleVersion() const { return QString(); } + virtual QString logicalModuleIdentifier() const { return QString(); } + virtual void setLogicalModuleInfo(const QString& ) { } + virtual void setLogicalModuleInfo(const QStringList& ) { } + virtual CollectionNode* logicalModule() const { return 0; } + virtual void setQmlModule(CollectionNode* ) { } virtual ClassNode* classNode() { return 0; } virtual void setClassNode(ClassNode* ) { } virtual const Node* applyModuleName(const Node* ) const { return 0; } virtual QString idNumber() { return "0"; } - QmlClassNode* qmlClassNode(); + QmlTypeNode* qmlTypeNode(); ClassNode* declarativeCppNode(); const QString& outputSubdirectory() const { return outSubDir_; } void setOutputSubdirectory(const QString& t) { outSubDir_ = t; } QString fullDocumentName() const; - static QString cleanId(QString str); + static QString cleanId(const QString &str); QString idForNode() const; static FlagValue toFlagValue(bool b); static bool fromFlagValue(FlagValue fv, bool defaultValue); - static QString pageTypeString(unsigned t); - static QString nodeTypeString(unsigned t); - static QString nodeSubtypeString(unsigned t); + static QString pageTypeString(unsigned char t); + static QString nodeTypeString(unsigned char t); + static QString nodeSubtypeString(unsigned char t); static int incPropertyGroupCount(); static void clearPropertyGroupCount(); static void initialize(); @@ -324,11 +340,12 @@ protected: private: - Type nodeType_; - Access access_; - ThreadSafeness safeness_; - PageType pageType_; - Status status_; + unsigned char nodeType_; + unsigned char genus_; + unsigned char access_; + unsigned char safeness_; + unsigned char pageType_; + unsigned char status_; bool indexNodeFlag_; InnerNode* parent_; @@ -338,7 +355,7 @@ private: Doc doc_; QMap<LinkType, QPair<QString, QString> > linkMap_; QString fileNameBase_; - QString moduleName_; + QString physicalModuleName_; QString url_; QString since_; QString templateStuff_; @@ -359,7 +376,7 @@ public: //Node* findChildNode(const QString& name, bool qml) const; Node* findChildNode(const QString& name, Type type); //void findNodes(const QString& name, NodeList& n); - virtual void findChildren(const QString& name, NodeList& nodes) const; + virtual void findChildren(const QString& name, NodeList& nodes) const Q_DECL_OVERRIDE; FunctionNode* findFunctionNode(const QString& name) const; FunctionNode* findFunctionNode(const FunctionNode* clone); void addInclude(const QString &include); @@ -370,8 +387,8 @@ public: void deleteChildren(); void removeFromRelated(); - virtual bool isInnerNode() const { return true; } - virtual bool isLeaf() const { return false; } + virtual bool isInnerNode() const Q_DECL_OVERRIDE { return true; } + virtual bool isLeaf() const Q_DECL_OVERRIDE { return false; } const EnumNode* findEnumNodeForValue(const QString &enumValue) const; const NodeList & childNodes() const { return children_; } const NodeList & relatedNodes() const { return related_; } @@ -384,14 +401,14 @@ public: QStringList primaryKeys(); QStringList secondaryKeys(); const QStringList& pageKeywords() const { return pageKeywds; } - virtual void addPageKeywords(const QString& t) { pageKeywds << t; } - virtual void setOutputFileName(const QString& f) { outputFileName_ = f; } - virtual QString outputFileName() const { return outputFileName_; } - virtual QmlPropertyNode* hasQmlProperty(const QString& ) const; - virtual QmlPropertyNode* hasQmlProperty(const QString&, bool attached) const; + virtual void addPageKeywords(const QString& t) Q_DECL_OVERRIDE { pageKeywds << t; } + virtual void setOutputFileName(const QString& f) Q_DECL_OVERRIDE { outputFileName_ = f; } + virtual QString outputFileName() const Q_DECL_OVERRIDE { return outputFileName_; } + virtual QmlPropertyNode* hasQmlProperty(const QString& ) const Q_DECL_OVERRIDE; + virtual QmlPropertyNode* hasQmlProperty(const QString&, bool attached) const Q_DECL_OVERRIDE; void addChild(Node* child, const QString& title); const QStringList& groupNames() const { return groupNames_; } - virtual void appendGroupName(const QString& t) { groupNames_.append(t); } + virtual void appendGroupName(const QString& t) Q_DECL_OVERRIDE { groupNames_.append(t); } void printChildren(const QString& title); protected: @@ -423,8 +440,8 @@ public: LeafNode(); virtual ~LeafNode() { } - virtual bool isInnerNode() const { return false; } - virtual bool isLeaf() const { return true; } + virtual bool isInnerNode() const Q_DECL_OVERRIDE { return false; } + virtual bool isLeaf() const Q_DECL_OVERRIDE { return true; } protected: LeafNode(Type type, InnerNode* parent, const QString& name); @@ -436,10 +453,8 @@ class NamespaceNode : public InnerNode public: NamespaceNode(InnerNode* parent, const QString& name); virtual ~NamespaceNode() { } - virtual bool isNamespace() const { return true; } - virtual Tree* tree() const { return (parent() ? parent()->tree() : tree_); } - virtual bool isCppNode() const { return true; } - virtual Node::Genus genus() const { return Node::CPP; } + virtual bool isNamespace() const Q_DECL_OVERRIDE { return true; } + virtual Tree* tree() const Q_DECL_OVERRIDE { return (parent() ? parent()->tree() : tree_); } void setTree(Tree* t) { tree_ = t; } private: @@ -469,13 +484,11 @@ class ClassNode : public InnerNode public: ClassNode(InnerNode* parent, const QString& name); virtual ~ClassNode() { } - virtual bool isClass() const { return true; } - virtual bool isCppNode() const { return true; } - virtual bool isWrapper() const { return wrapper_; } - virtual Node::Genus genus() const { return Node::CPP; } - virtual QString obsoleteLink() const { return obsoleteLink_; } - virtual void setObsoleteLink(const QString& t) { obsoleteLink_ = t; } - virtual void setWrapper() { wrapper_ = true; } + virtual bool isClass() const Q_DECL_OVERRIDE { return true; } + virtual bool isWrapper() const Q_DECL_OVERRIDE { return wrapper_; } + virtual QString obsoleteLink() const Q_DECL_OVERRIDE { return obsoleteLink_; } + virtual void setObsoleteLink(const QString& t) Q_DECL_OVERRIDE { obsoleteLink_ = t; } + virtual void setWrapper() Q_DECL_OVERRIDE { wrapper_ = true; } void addResolvedBaseClass(Access access, ClassNode* node); void addDerivedClass(Access access, ClassNode* node); @@ -493,12 +506,12 @@ public: QString serviceName() const { return sname; } void setServiceName(const QString& value) { sname = value; } - QmlClassNode* qmlElement() { return qmlelement; } - void setQmlElement(QmlClassNode* qcn) { qmlelement = qcn; } - virtual bool isAbstract() const { return abstract_; } - virtual void setAbstract(bool b) { abstract_ = b; } + QmlTypeNode* qmlElement() { return qmlelement; } + void setQmlElement(QmlTypeNode* qcn) { qmlelement = qcn; } + virtual bool isAbstract() const Q_DECL_OVERRIDE { return abstract_; } + virtual void setAbstract(bool b) Q_DECL_OVERRIDE { abstract_ = b; } PropertyNode* findPropertyNode(const QString& name); - QmlClassNode* findQmlBaseNode(); + QmlTypeNode* findQmlBaseNode(); private: QList<RelatedClass> bases_; @@ -508,34 +521,35 @@ private: bool wrapper_; QString sname; QString obsoleteLink_; - QmlClassNode* qmlelement; + QmlTypeNode* qmlelement; }; -class DocNode : public InnerNode +class DocumentNode : public InnerNode { public: - DocNode(InnerNode* parent, + DocumentNode(InnerNode* parent, const QString& name, SubType subType, PageType ptype); - virtual ~DocNode() { } + virtual ~DocumentNode() { } - virtual void setTitle(const QString &title); - virtual void setSubTitle(const QString &subTitle) { subtitle_ = subTitle; } + virtual bool isDocumentNode() const Q_DECL_OVERRIDE { return true; } + virtual void setTitle(const QString &title) Q_DECL_OVERRIDE; + virtual void setSubTitle(const QString &subTitle) Q_DECL_OVERRIDE { subtitle_ = subTitle; } - SubType subType() const { return nodeSubtype_; } - virtual QString title() const { return title_; } - virtual QString fullTitle() const; - virtual QString subTitle() const; + SubType subType() const Q_DECL_OVERRIDE { return nodeSubtype_; } + virtual QString title() const Q_DECL_OVERRIDE { return title_; } + virtual QString fullTitle() const Q_DECL_OVERRIDE; + virtual QString subTitle() const Q_DECL_OVERRIDE; virtual QString imageFileName() const { return QString(); } - virtual QString nameForLists() const { return title(); } + virtual QString nameForLists() const Q_DECL_OVERRIDE { return title(); } virtual void setImageFileName(const QString& ) { } - virtual bool isHeaderFile() const { return (subType() == Node::HeaderFile); } - virtual bool isExample() const { return (subType() == Node::Example); } - virtual bool isExampleFile() const { return (parent() && parent()->isExample()); } - virtual bool isExternalPage() const { return nodeSubtype_ == ExternalPage; } - virtual bool isDocNode() const { return true; } + + virtual bool isHeaderFile() const Q_DECL_OVERRIDE { return (subType() == Node::HeaderFile); } + virtual bool isExample() const Q_DECL_OVERRIDE { return (subType() == Node::Example); } + virtual bool isExampleFile() const Q_DECL_OVERRIDE { return (parent() && parent()->isExample()); } + virtual bool isExternalPage() const Q_DECL_OVERRIDE { return nodeSubtype_ == ExternalPage; } protected: SubType nodeSubtype_; @@ -543,14 +557,14 @@ protected: QString subtitle_; }; -class ExampleNode : public DocNode +class ExampleNode : public DocumentNode { public: ExampleNode(InnerNode* parent, const QString& name) - : DocNode(parent, name, Node::Example, Node::ExamplePage) { } + : DocumentNode(parent, name, Node::Example, Node::ExamplePage) { } virtual ~ExampleNode() { } - virtual QString imageFileName() const { return imageFileName_; } - virtual void setImageFileName(const QString& ifn) { imageFileName_ = ifn; } + virtual QString imageFileName() const Q_DECL_OVERRIDE { return imageFileName_; } + virtual void setImageFileName(const QString& ifn) Q_DECL_OVERRIDE { imageFileName_ = ifn; } private: QString imageFileName_; @@ -576,37 +590,39 @@ struct ImportRec { typedef QList<ImportRec> ImportList; -class QmlClassNode : public InnerNode +class QmlTypeNode : public InnerNode { public: - QmlClassNode(InnerNode* parent, const QString& name); - virtual ~QmlClassNode(); - virtual bool isQmlNode() const { return true; } - virtual bool isQmlType() const { return true; } - virtual bool isQtQuickNode() const { return (qmlModuleName() == QLatin1String("QtQuick")); } - virtual ClassNode* classNode() { return cnode_; } - virtual void setClassNode(ClassNode* cn) { cnode_ = cn; } - virtual bool isAbstract() const { return abstract_; } - virtual bool isWrapper() const { return wrapper_; } - virtual void setAbstract(bool b) { abstract_ = b; } - virtual void setWrapper() { wrapper_ = true; } - virtual bool isInternal() const { return (status() == Internal); } - virtual QString qmlFullBaseName() const; - virtual QString obsoleteLink() const { return obsoleteLink_; } - virtual void setObsoleteLink(const QString& t) { obsoleteLink_ = t; }; - virtual QString qmlModuleName() const; - virtual QString qmlModuleVersion() const; - virtual QString qmlModuleIdentifier() const; - virtual QmlModuleNode* qmlModule() const { return qmlModule_; } - virtual void setQmlModule(QmlModuleNode* t) { qmlModule_ = t; } - virtual Node::Genus genus() const { return Node::QML; } + QmlTypeNode(InnerNode* parent, const QString& name); + virtual ~QmlTypeNode(); + virtual bool isQmlType() const Q_DECL_OVERRIDE { return genus() == Node::QML; } + virtual bool isJsType() const Q_DECL_OVERRIDE { return genus() == Node::JS; } + virtual bool isQtQuickNode() const Q_DECL_OVERRIDE { + return (logicalModuleName() == QLatin1String("QtQuick")); + } + virtual ClassNode* classNode() Q_DECL_OVERRIDE { return cnode_; } + virtual void setClassNode(ClassNode* cn) Q_DECL_OVERRIDE { cnode_ = cn; } + virtual bool isAbstract() const Q_DECL_OVERRIDE { return abstract_; } + virtual bool isWrapper() const Q_DECL_OVERRIDE { return wrapper_; } + virtual void setAbstract(bool b) Q_DECL_OVERRIDE { abstract_ = b; } + virtual void setWrapper() Q_DECL_OVERRIDE { wrapper_ = true; } + virtual bool isInternal() const Q_DECL_OVERRIDE { return (status() == Internal); } + virtual QString qmlFullBaseName() const Q_DECL_OVERRIDE; + virtual QString obsoleteLink() const Q_DECL_OVERRIDE { return obsoleteLink_; } + virtual void setObsoleteLink(const QString& t) Q_DECL_OVERRIDE { obsoleteLink_ = t; }; + virtual QString logicalModuleName() const Q_DECL_OVERRIDE; + virtual QString logicalModuleVersion() const Q_DECL_OVERRIDE; + virtual QString logicalModuleIdentifier() const Q_DECL_OVERRIDE; + virtual CollectionNode* logicalModule() const Q_DECL_OVERRIDE { return logicalModule_; } + virtual void setQmlModule(CollectionNode* t) Q_DECL_OVERRIDE { logicalModule_ = t; } + const ImportList& importList() const { return importList_; } void setImportList(const ImportList& il) { importList_ = il; } const QString& qmlBaseName() const { return qmlBaseName_; } void setQmlBaseName(const QString& name) { qmlBaseName_ = name; } bool qmlBaseNodeNotSet() const { return (qmlBaseNode_ == 0); } - QmlClassNode* qmlBaseNode(); - void setQmlBaseNode(QmlClassNode* b) { qmlBaseNode_ = b; } + QmlTypeNode* qmlBaseNode(); + void setQmlBaseNode(QmlTypeNode* b) { qmlBaseNode_ = b; } void requireCppClass() { cnodeRequired_ = true; } bool cppClassRequired() const { return cnodeRequired_; } static void addInheritedBy(const QString& base, Node* sub); @@ -624,8 +640,8 @@ private: ClassNode* cnode_; QString qmlBaseName_; QString obsoleteLink_; - QmlModuleNode* qmlModule_; - QmlClassNode* qmlBaseNode_; + CollectionNode* logicalModule_; + QmlTypeNode* qmlBaseNode_; ImportList importList_; }; @@ -635,27 +651,30 @@ public: QmlBasicTypeNode(InnerNode* parent, const QString& name); virtual ~QmlBasicTypeNode() { } - virtual bool isQmlNode() const { return true; } - virtual bool isQmlBasicType() const { return true; } - virtual Node::Genus genus() const { return Node::QML; } + virtual bool isQmlBasicType() const Q_DECL_OVERRIDE { return (genus() == Node::QML); } + virtual bool isJsBasicType() const Q_DECL_OVERRIDE { return (genus() == Node::JS); } }; class QmlPropertyGroupNode : public InnerNode { public: - QmlPropertyGroupNode(QmlClassNode* parent, const QString& name); + QmlPropertyGroupNode(QmlTypeNode* parent, const QString& name); virtual ~QmlPropertyGroupNode() { } - virtual bool isQmlNode() const { return true; } - virtual bool isQtQuickNode() const { return parent()->isQtQuickNode(); } - virtual QString qmlTypeName() const { return parent()->qmlTypeName(); } - virtual QString qmlModuleName() const { return parent()->qmlModuleName(); } - virtual QString qmlModuleVersion() const { return parent()->qmlModuleVersion(); } - virtual QString qmlModuleIdentifier() const { return parent()->qmlModuleIdentifier(); } - virtual QString idNumber(); - virtual bool isQmlPropertyGroup() const { return true; } - virtual Node::Genus genus() const { return Node::QML; } - - virtual QString element() const { return parent()->name(); } + virtual bool isQtQuickNode() const Q_DECL_OVERRIDE { return parent()->isQtQuickNode(); } + virtual QString qmlTypeName() const Q_DECL_OVERRIDE { return parent()->qmlTypeName(); } + virtual QString logicalModuleName() const Q_DECL_OVERRIDE { + return parent()->logicalModuleName(); + } + virtual QString logicalModuleVersion() const Q_DECL_OVERRIDE { + return parent()->logicalModuleVersion(); + } + virtual QString logicalModuleIdentifier() const Q_DECL_OVERRIDE { + return parent()->logicalModuleIdentifier(); + } + virtual QString idNumber() Q_DECL_OVERRIDE; + virtual bool isQmlPropertyGroup() const Q_DECL_OVERRIDE { return genus() == Node::QML; } + virtual bool isJsPropertyGroup() const Q_DECL_OVERRIDE { return genus() == Node::JS; } + virtual QString element() const Q_DECL_OVERRIDE { return parent()->name(); } private: int idNumber_; @@ -672,11 +691,10 @@ public: bool attached); virtual ~QmlPropertyNode() { } - virtual Node::Genus genus() const { return Node::QML; } - virtual void setDataType(const QString& dataType) { type_ = dataType; } + virtual void setDataType(const QString& dataType) Q_DECL_OVERRIDE { type_ = dataType; } void setStored(bool stored) { stored_ = toFlagValue(stored); } void setDesignable(bool designable) { designable_ = toFlagValue(designable); } - virtual void setReadOnly(bool ro) { readOnly_ = toFlagValue(ro); } + virtual void setReadOnly(bool ro) Q_DECL_OVERRIDE { readOnly_ = toFlagValue(ro); } void setDefault() { isdefault_ = true; } const QString &dataType() const { return type_; } @@ -685,17 +703,24 @@ public: bool isStored() const { return fromFlagValue(stored_,true); } bool isDesignable() const { return fromFlagValue(designable_,false); } bool isWritable(); - virtual bool isDefault() const { return isdefault_; } - virtual bool isReadOnly() const { return fromFlagValue(readOnly_,false); } - virtual bool isAlias() const { return isAlias_; } - virtual bool isAttached() const { return attached_; } - virtual bool isQmlNode() const { return true; } - virtual bool isQtQuickNode() const { return parent()->isQtQuickNode(); } - virtual QString qmlTypeName() const { return parent()->qmlTypeName(); } - virtual QString qmlModuleName() const { return parent()->qmlModuleName(); } - virtual QString qmlModuleVersion() const { return parent()->qmlModuleVersion(); } - virtual QString qmlModuleIdentifier() const { return parent()->qmlModuleIdentifier(); } - virtual QString element() const; + virtual bool isQmlProperty() const Q_DECL_OVERRIDE { return genus() == QML; } + virtual bool isJsProperty() const Q_DECL_OVERRIDE { return genus() == JS; } + virtual bool isDefault() const Q_DECL_OVERRIDE { return isdefault_; } + virtual bool isReadOnly() const Q_DECL_OVERRIDE { return fromFlagValue(readOnly_,false); } + virtual bool isAlias() const Q_DECL_OVERRIDE { return isAlias_; } + virtual bool isAttached() const Q_DECL_OVERRIDE { return attached_; } + virtual bool isQtQuickNode() const Q_DECL_OVERRIDE { return parent()->isQtQuickNode(); } + virtual QString qmlTypeName() const Q_DECL_OVERRIDE { return parent()->qmlTypeName(); } + virtual QString logicalModuleName() const Q_DECL_OVERRIDE { + return parent()->logicalModuleName(); + } + virtual QString logicalModuleVersion() const Q_DECL_OVERRIDE { + return parent()->logicalModuleVersion(); + } + virtual QString logicalModuleIdentifier() const Q_DECL_OVERRIDE { + return parent()->logicalModuleIdentifier(); + } + virtual QString element() const Q_DECL_OVERRIDE; private: PropertyNode* findCorrespondingCppProperty(); @@ -731,8 +756,6 @@ public: EnumNode(InnerNode* parent, const QString& name); virtual ~EnumNode() { } - virtual Node::Genus genus() const { return Node::CPP; } - virtual bool isCppNode() const { return true; } void addItem(const EnumItem& item); void setFlagsType(TypedefNode* typedeff); bool hasItem(const QString &name) const { return names.contains(name); } @@ -754,8 +777,6 @@ public: TypedefNode(InnerNode* parent, const QString& name); virtual ~TypedefNode() { } - virtual Node::Genus genus() const { return Node::CPP; } - virtual bool isCppNode() const { return true; } const EnumNode* associatedEnum() const { return ae; } private: @@ -842,8 +863,14 @@ public: bool isConst() const { return con; } bool isStatic() const { return sta; } bool isOverload() const { return ove; } - bool isReimp() const { return reimp; } - bool isFunction() const { return true; } + bool isReimp() const Q_DECL_OVERRIDE { return reimp; } + bool isFunction() const Q_DECL_OVERRIDE { return true; } + virtual bool isQmlSignal() const Q_DECL_OVERRIDE { return genus() == Node::QML; } + virtual bool isJsSignal() const Q_DECL_OVERRIDE { return genus() == Node::JS; } + virtual bool isQmlSignalHandler() const Q_DECL_OVERRIDE { return genus() == Node::QML; } + virtual bool isJsSignalHandler() const Q_DECL_OVERRIDE { return genus() == Node::JS; } + virtual bool isQmlMethod() const Q_DECL_OVERRIDE { return genus() == Node::QML; } + virtual bool isJsMethod() const Q_DECL_OVERRIDE { return genus() == Node::JS; } int overloadNumber() const; const QList<Parameter>& parameters() const { return params; } QStringList parameterNames() const; @@ -855,20 +882,19 @@ public: QStringList reconstructParams(bool values = false) const; QString signature(bool values = false) const; - virtual QString element() const { return parent()->name(); } - virtual bool isAttached() const { return attached_; } - virtual bool isQmlNode() const { - return ((type() == QmlSignal) || - (type() == QmlMethod) || - (type() == QmlSignalHandler)); + virtual QString element() const Q_DECL_OVERRIDE { return parent()->name(); } + virtual bool isAttached() const Q_DECL_OVERRIDE { return attached_; } + virtual bool isQtQuickNode() const Q_DECL_OVERRIDE { return parent()->isQtQuickNode(); } + virtual QString qmlTypeName() const Q_DECL_OVERRIDE { return parent()->qmlTypeName(); } + virtual QString logicalModuleName() const Q_DECL_OVERRIDE { + return parent()->logicalModuleName(); + } + virtual QString logicalModuleVersion() const Q_DECL_OVERRIDE { + return parent()->logicalModuleVersion(); + } + virtual QString logicalModuleIdentifier() const Q_DECL_OVERRIDE { + return parent()->logicalModuleIdentifier(); } - virtual bool isCppNode() const { return !isQmlNode(); } - virtual Node::Genus genus() const { return (isQmlNode() ? Node::QML : Node::CPP); } - virtual bool isQtQuickNode() const { return parent()->isQtQuickNode(); } - virtual QString qmlTypeName() const { return parent()->qmlTypeName(); } - virtual QString qmlModuleName() const { return parent()->qmlModuleName(); } - virtual QString qmlModuleVersion() const { return parent()->qmlModuleVersion(); } - virtual QString qmlModuleIdentifier() const { return parent()->qmlModuleIdentifier(); } void debug() const; @@ -902,9 +928,8 @@ public: PropertyNode(InnerNode* parent, const QString& name); virtual ~PropertyNode() { } - virtual Node::Genus genus() const { return Node::CPP; } - virtual bool isCppNode() const { return true; } - virtual void setDataType(const QString& dataType) { type_ = dataType; } + virtual void setDataType(const QString& dataType) Q_DECL_OVERRIDE { type_ = dataType; } + virtual bool isProperty() const Q_DECL_OVERRIDE { return true; } void addFunction(FunctionNode* function, FunctionRole role); void addSignal(FunctionNode* function, FunctionRole role); void setStored(bool stored) { stored_ = toFlagValue(stored); } @@ -991,8 +1016,6 @@ public: VariableNode(InnerNode* parent, const QString &name); virtual ~VariableNode() { } - virtual Node::Genus genus() const { return Node::CPP; } - virtual bool isCppNode() const { return true; } void setLeftType(const QString &leftType) { lt = leftType; } void setRightType(const QString &rightType) { rt = rightType; } void setStatic(bool statique) { sta = statique; } @@ -1011,14 +1034,14 @@ private: inline VariableNode::VariableNode(InnerNode* parent, const QString &name) : LeafNode(Variable, parent, name), sta(false) { - // nothing. + setGenus(Node::CPP); } -class DitaMapNode : public DocNode +class DitaMapNode : public DocumentNode { public: DitaMapNode(InnerNode* parent, const QString& name) - : DocNode(parent, name, Node::Page, Node::DitaMapPage) { } + : DocumentNode(parent, name, Node::Page, Node::DitaMapPage) { } virtual ~DitaMapNode() { } const DitaRefList& map() const { return doc().ditamap(); } @@ -1027,26 +1050,46 @@ public: class CollectionNode : public InnerNode { public: - CollectionNode(Type type, InnerNode* parent, const QString& name) - : InnerNode(type, parent, name), seen_(false) { + CollectionNode(Type type, + InnerNode* parent, + const QString& name, + Genus genus) : InnerNode(type, parent, name), seen_(false) + { setPageType(Node::OverviewPage); + setGenus(genus); } virtual ~CollectionNode() { } - virtual bool isCollectionNode() const { return true; } - virtual void addMember(Node* node); - virtual bool hasMembers() const; - virtual bool hasNamespaces() const; - virtual bool hasClasses() const; - virtual void getMemberNamespaces(NodeMap& out); - virtual void getMemberClasses(NodeMap& out); - virtual bool wasSeen() const { return seen_; } - virtual QString title() const { return title_; } - virtual QString subTitle() const { return subtitle_; } - virtual QString fullTitle() const { return title_; } - virtual QString nameForLists() const { return title_; } - virtual void setTitle(const QString &title); - virtual void setSubTitle(const QString &subTitle) { subtitle_ = subTitle; } + virtual bool isCollectionNode() const Q_DECL_OVERRIDE { return true; } + virtual bool isGroup() const Q_DECL_OVERRIDE { return genus() == Node::DOC; } + virtual bool isModule() const Q_DECL_OVERRIDE { return genus() == Node::CPP; } + virtual bool isQmlModule() const Q_DECL_OVERRIDE { return genus() == Node::QML; } + virtual bool isJsModule() const Q_DECL_OVERRIDE { return genus() == Node::JS; } + virtual QString qtVariable() const Q_DECL_OVERRIDE { return qtVariable_; } + virtual void setQtVariable(const QString& v) Q_DECL_OVERRIDE { qtVariable_ = v; } + virtual void addMember(Node* node) Q_DECL_OVERRIDE; + virtual bool hasMembers() const Q_DECL_OVERRIDE; + virtual bool hasNamespaces() const Q_DECL_OVERRIDE; + virtual bool hasClasses() const Q_DECL_OVERRIDE; + virtual void getMemberNamespaces(NodeMap& out) Q_DECL_OVERRIDE; + virtual void getMemberClasses(NodeMap& out) Q_DECL_OVERRIDE; + virtual bool wasSeen() const Q_DECL_OVERRIDE { return seen_; } + virtual QString title() const Q_DECL_OVERRIDE { return title_; } + virtual QString subTitle() const Q_DECL_OVERRIDE { return subtitle_; } + virtual QString fullTitle() const Q_DECL_OVERRIDE { return title_; } + virtual QString nameForLists() const Q_DECL_OVERRIDE { return title_; } + virtual void setTitle(const QString &title) Q_DECL_OVERRIDE; + virtual void setSubTitle(const QString &subTitle) Q_DECL_OVERRIDE { subtitle_ = subTitle; } + + virtual QString logicalModuleName() const Q_DECL_OVERRIDE { return logicalModuleName_; } + virtual QString logicalModuleVersion() const Q_DECL_OVERRIDE { + return logicalModuleVersionMajor_ + "." + logicalModuleVersionMinor_; + } + virtual QString logicalModuleIdentifier() const Q_DECL_OVERRIDE { + return logicalModuleName_ + logicalModuleVersionMajor_; + } + virtual void setLogicalModuleInfo(const QString& arg) Q_DECL_OVERRIDE; + virtual void setLogicalModuleInfo(const QStringList& info) Q_DECL_OVERRIDE; const NodeList& members() const { return members_; } void printMembers(const QString& title); @@ -1059,58 +1102,9 @@ class CollectionNode : public InnerNode QString title_; QString subtitle_; NodeList members_; -}; - -class GroupNode : public CollectionNode -{ - public: - GroupNode(InnerNode* parent, const QString& name) - : CollectionNode(Node::Group, parent, name) { } - virtual ~GroupNode() { } - - virtual bool isGroup() const { return true; } -}; - -class ModuleNode : public CollectionNode -{ - public: - ModuleNode(InnerNode* parent, const QString& name) - : CollectionNode(Node::Module, parent, name) { } - virtual ~ModuleNode() { } - - virtual bool isModule() const { return true; } - virtual bool isCppNode() const { return true; } - virtual void setQtVariable(const QString& v) { qtVariable_ = v; } - virtual QString qtVariable() const { return qtVariable_; } - - private: - QString qtVariable_; -}; - -class QmlModuleNode : public CollectionNode -{ - public: - QmlModuleNode(InnerNode* parent, const QString& name) - : CollectionNode(Node::QmlModule, parent, name) { } - virtual ~QmlModuleNode() { } - - virtual bool isQmlNode() const { return true; } - virtual bool isQmlModule() const { return true; } - virtual QString qmlModuleName() const { return qmlModuleName_; } - virtual QString qmlModuleVersion() const { - return qmlModuleVersionMajor_ + "." + qmlModuleVersionMinor_; - } - virtual QString qmlModuleIdentifier() const { - return qmlModuleName_ + qmlModuleVersionMajor_; - } - virtual void setQmlModuleInfo(const QString& ); - virtual void setQtVariable(const QString& v) { qtVariable_ = v; } - virtual QString qtVariable() const { return qtVariable_; } - - private: - QString qmlModuleName_; - QString qmlModuleVersionMajor_; - QString qmlModuleVersionMinor_; + QString logicalModuleName_; + QString logicalModuleVersionMajor_; + QString logicalModuleVersionMinor_; QString qtVariable_; }; |