diff options
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/qdoc/codeparser.cpp | 7 | ||||
-rw-r--r-- | src/tools/qdoc/generator.cpp | 2 | ||||
-rw-r--r-- | src/tools/qdoc/node.cpp | 12 | ||||
-rw-r--r-- | src/tools/qdoc/node.h | 8 | ||||
-rw-r--r-- | src/tools/qdoc/qmlcodeparser.cpp | 5 | ||||
-rw-r--r-- | src/tools/qdoc/qmlvisitor.cpp | 4 |
6 files changed, 34 insertions, 4 deletions
diff --git a/src/tools/qdoc/codeparser.cpp b/src/tools/qdoc/codeparser.cpp index 557a6f08fa..7b534a6c95 100644 --- a/src/tools/qdoc/codeparser.cpp +++ b/src/tools/qdoc/codeparser.cpp @@ -70,6 +70,7 @@ QT_BEGIN_NAMESPACE #define COMMAND_SUBTITLE Doc::alias(QLatin1String("subtitle")) #define COMMAND_THREADSAFE Doc::alias(QLatin1String("threadsafe")) #define COMMAND_TITLE Doc::alias(QLatin1String("title")) +#define COMMAND_WRAPPER Doc::alias(QLatin1String("wrapper")) QString CodeParser::currentSubDir_; QList<CodeParser *> CodeParser::parsers; @@ -219,7 +220,8 @@ QSet<QString> CodeParser::commonMetaCommands() << COMMAND_SINCE << COMMAND_SUBTITLE << COMMAND_THREADSAFE - << COMMAND_TITLE; + << COMMAND_TITLE + << COMMAND_WRAPPER; } /*! @@ -286,6 +288,9 @@ void CodeParser::processCommonMetaCommand(const Location& location, else if (command == COMMAND_SINCE) { node->setSince(arg.first); } + else if (command == COMMAND_WRAPPER) { + node->setWrapper(); + } else if (command == COMMAND_PAGEKEYWORDS) { node->addPageKeywords(arg.first); } diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp index dfa49e8563..81be63abe1 100644 --- a/src/tools/qdoc/generator.cpp +++ b/src/tools/qdoc/generator.cpp @@ -654,7 +654,7 @@ void Generator::generateBody(const Node *node, CodeMarker *marker) } } if (node->doc().isEmpty()) { - if (!quiet && !node->isReimp()) { // ### might be unnecessary + if (!node->isWrapper() && !quiet && !node->isReimp()) { // ### might be unnecessary node->location().warning(tr("No documentation for '%1'").arg(node->plainFullName())); } } diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp index 028c0a0b2a..e627cf859e 100644 --- a/src/tools/qdoc/node.cpp +++ b/src/tools/qdoc/node.cpp @@ -1079,6 +1079,16 @@ void InnerNode::deleteChildren() */ /*! + Returns true if the node is a class node or a QML type node + that is marked as being a wrapper class or QML type, or if + it is a member of a wrapper class or type. + */ +bool Node::isWrapper() const +{ + return (parent_ ? parent_->isWrapper() : false); +} + +/*! */ const Node *InnerNode::findChildNodeByName(const QString& name) const { @@ -1441,6 +1451,7 @@ ClassNode::ClassNode(InnerNode *parent, const QString& name) : InnerNode(Class, parent, name) { abstract_ = false; + wrapper_ = false; qmlelement = 0; setPageType(ApiPage); } @@ -2105,6 +2116,7 @@ QmlClassNode::QmlClassNode(InnerNode *parent, const QString& name) : DocNode(parent, name, QmlClass, Node::ApiPage), abstract_(false), cnodeRequired_(false), + wrapper_(false), cnode_(0), baseNode_(0) { diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h index d1a95358f0..326146a962 100644 --- a/src/tools/qdoc/node.h +++ b/src/tools/qdoc/node.h @@ -200,11 +200,13 @@ public: virtual bool isCollisionNode() const { return false; } virtual bool isAttached() const { return false; } virtual bool isGroup() const { return false; } + virtual bool isWrapper() const; virtual void addMember(Node* ) { } virtual bool hasMembers() const { return false; } virtual bool hasNamespaces() const { return false; } virtual bool hasClasses() const { return false; } virtual void setAbstract(bool ) { } + virtual void setWrapper() { } virtual QString title() const { return QString(); } virtual bool hasProperty(const QString& ) const { return false; } virtual void getMemberNamespaces(NodeMap& ) { } @@ -437,8 +439,10 @@ public: ClassNode(InnerNode* parent, const QString& name); virtual ~ClassNode() { } virtual bool isClass() const { return true; } + virtual bool isWrapper() const { return wrapper_; } virtual QString obsoleteLink() const { return obsoleteLink_; } virtual void setObsoleteLink(const QString& t) { obsoleteLink_ = t; }; + virtual void setWrapper() { wrapper_ = true; } void addBaseClass(Access access, ClassNode* node, @@ -463,6 +467,7 @@ private: QList<RelatedClass> derived; QList<RelatedClass> ignoredBases; bool abstract_; + bool wrapper_; QString sname; QString obsoleteLink_; QmlClassNode* qmlelement; @@ -568,7 +573,9 @@ public: virtual void setCurrentChild(); virtual void clearCurrentChild(); 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_; } @@ -592,6 +599,7 @@ public: private: bool abstract_; bool cnodeRequired_; + bool wrapper_; ClassNode* cnode_; QString baseName_; QString obsoleteLink_; diff --git a/src/tools/qdoc/qmlcodeparser.cpp b/src/tools/qdoc/qmlcodeparser.cpp index c86982eb95..b9c0ad9218 100644 --- a/src/tools/qdoc/qmlcodeparser.cpp +++ b/src/tools/qdoc/qmlcodeparser.cpp @@ -63,6 +63,7 @@ QT_BEGIN_NAMESPACE #define COMMAND_PAGEKEYWORDS Doc::alias("pagekeywords") #define COMMAND_PRELIMINARY Doc::alias("preliminary") #define COMMAND_SINCE Doc::alias("since") +#define COMMAND_WRAPPER Doc::alias("wrapper") #define COMMAND_QMLABSTRACT Doc::alias("qmlabstract") #define COMMAND_QMLCLASS Doc::alias("qmlclass") @@ -228,8 +229,8 @@ QSet<QString> QmlCodeParser::otherMetaCommands() << COMMAND_PRELIMINARY << COMMAND_SINCE << COMMAND_QMLABSTRACT - << COMMAND_INQMLMODULE; - + << COMMAND_INQMLMODULE + << COMMAND_WRAPPER; } /*! diff --git a/src/tools/qdoc/qmlvisitor.cpp b/src/tools/qdoc/qmlvisitor.cpp index ac659720b2..86b86c8f34 100644 --- a/src/tools/qdoc/qmlvisitor.cpp +++ b/src/tools/qdoc/qmlvisitor.cpp @@ -60,6 +60,7 @@ QT_BEGIN_NAMESPACE #define COMMAND_PAGEKEYWORDS Doc::alias(QLatin1String("pagekeywords")) #define COMMAND_PRELIMINARY Doc::alias(QLatin1String("preliminary")) #define COMMAND_SINCE Doc::alias(QLatin1String("since")) +#define COMMAND_WRAPPER Doc::alias(QLatin1String("wrapper")) #define COMMAND_QMLABSTRACT Doc::alias(QLatin1String("qmlabstract")) #define COMMAND_QMLCLASS Doc::alias(QLatin1String("qmlclass")) @@ -367,6 +368,9 @@ void QmlDocVisitor::applyMetacommands(QQmlJS::AST::SourceLocation, QString arg = args[0].first; //.join(' '); node->setSince(arg); } + else if (command == COMMAND_WRAPPER) { + node->setWrapper(); + } else { doc.location().warning(tr("The \\%1 command is ignored in QML files").arg(command)); } |