From 761265ef64fed36dc3bb4b7cdc92904e19869466 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 24 Apr 2014 14:02:42 +0200 Subject: qdoc: attaching type of attached properties was missing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This bug was probably intoroduced when the QmlPropertyGroup became a first class Node type. Otherwise, there is no way to explain how it worked at all. But now qdoc includes the attaching type. Some debugging code was also cleaned up. Task-number: QTBUG-35559 Change-Id: I478efb7f4356d51015af9f33c893958d4b4ae301 Reviewed-by: Topi Reiniƶ --- src/tools/qdoc/generator.cpp | 19 ++++++++++--------- src/tools/qdoc/generator.h | 3 ++- src/tools/qdoc/htmlgenerator.cpp | 7 +------ src/tools/qdoc/main.cpp | 4 +--- src/tools/qdoc/node.cpp | 10 ++++++++++ src/tools/qdoc/node.h | 8 ++++---- 6 files changed, 28 insertions(+), 23 deletions(-) (limited to 'src/tools/qdoc') diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp index 2fef419d7a..32fc17d5eb 100644 --- a/src/tools/qdoc/generator.cpp +++ b/src/tools/qdoc/generator.cpp @@ -102,15 +102,16 @@ bool Generator::redirectDocumentationToDevNull_ = false; Generator::Passes Generator::qdocPass_ = Both; bool Generator::useOutputSubdirs_ = true; -void Generator::setDebugFlag(bool b) +void Generator::startDebugging(const QString& message) { -#if 0 - if (b) - qDebug() << "DEBUG: Setting debug flag."; - else - qDebug() << "DEBUG: Clearing debug flag."; -#endif - debugging_ = b; + debugging_ = true; + qDebug() << "START DEBUGGING:" << message; +} + +void Generator::stopDebugging(const QString& message) +{ + debugging_ = false; + qDebug() << "STOP DEBUGGING:" << message; } /*! @@ -119,7 +120,7 @@ void Generator::setDebugFlag(bool b) void Generator::debug(const QString& message) { if (debugging()) - qDebug() << "DEBUG:" << message; + qDebug() << " DEBUG:" << message; } /*! diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h index a142afeac6..bcc1ea9502 100644 --- a/src/tools/qdoc/generator.h +++ b/src/tools/qdoc/generator.h @@ -93,7 +93,8 @@ public: static void writeOutFileNames(); static void augmentImageDirs(QSet& moreImageDirs); static void debug(const QString& message); - static void setDebugFlag(bool b); + static void startDebugging(const QString& message); + static void stopDebugging(const QString& message); static bool debugging() { return debugging_; } static bool noLinkErrors() { return noLinkErrors_; } static bool autolinkErrors() { return autolinkErrors_; } diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp index ceed09a7cf..3a9275030a 100644 --- a/src/tools/qdoc/htmlgenerator.cpp +++ b/src/tools/qdoc/htmlgenerator.cpp @@ -302,11 +302,7 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark { int skipAhead = 0; static bool in_para = false; -#if 0 - if (Generator::debugging()) { - atom->dump(); - } -#endif + switch (atom->type()) { case Atom::AbstractLeft: if (relative) @@ -320,7 +316,6 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark if (!inLink_ && !inContents_ && !inSectionHeading_) { const Node *node = 0; QString link = getLink(atom, relative, &node); - QDocDatabase::debug = false; if (!link.isEmpty()) { beginLink(link, node, relative); generateLink(atom, marker); diff --git a/src/tools/qdoc/main.cpp b/src/tools/qdoc/main.cpp index 91520e3cd2..b67ba01f92 100644 --- a/src/tools/qdoc/main.cpp +++ b/src/tools/qdoc/main.cpp @@ -490,7 +490,6 @@ static void processQdocconfFile(const QString &fileName) CodeParser *codeParser = CodeParser::parserForSourceFile(s.key()); if (codeParser) { ++parsed; - //Generator::setDebugFlag(true); Generator::debug(QString("Parsing " + s.key())); codeParser->parseSourceFile(config.location(), s.key()); usedParsers.insert(codeParser); @@ -498,7 +497,6 @@ static void processQdocconfFile(const QString &fileName) ++s; } Generator::debug(QString("Parsing done.")); - //Generator::setDebugFlag(false); foreach (CodeParser *codeParser, usedParsers) codeParser->doneParsingSourceFiles(); @@ -654,7 +652,7 @@ int main(int argc, char **argv) autolinkErrors = true; } else if (opt == "-debug") { - Generator::setDebugFlag(true); + Generator::startDebugging(QString("command line")); } else if (opt == "-prepare") { Generator::setQDocPass(Generator::Prepare); diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp index 820af9b784..ce97ffec01 100644 --- a/src/tools/qdoc/node.cpp +++ b/src/tools/qdoc/node.cpp @@ -2336,6 +2336,16 @@ PropertyNode* QmlPropertyNode::findCorrespondingCppProperty() return 0; } +/*! + This returns the name of the owning QML type. + */ +QString QmlPropertyNode::element() const +{ + if (parent()->isQmlPropertyGroup()) + return parent()->element(); + return parent()->name(); +} + /*! \class NameCollisionNode An instance of this node is inserted in the tree diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h index e0f6e5202d..bbbc29d51a 100644 --- a/src/tools/qdoc/node.h +++ b/src/tools/qdoc/node.h @@ -247,6 +247,7 @@ public: virtual Node* disambiguate(Type , SubType ) { return this; } virtual bool wasSeen() const { return false; } virtual void appendGroupName(const QString& ) { } + virtual QString element() const { return QString(); } bool isIndexNode() const { return indexNodeFlag_; } Type type() const { return nodeType_; } virtual SubType subType() const { return NoSubType; } @@ -658,7 +659,7 @@ public: virtual QString idNumber(); virtual bool isQmlPropertyGroup() const { return true; } - const QString& element() const { return parent()->name(); } + virtual QString element() const { return parent()->name(); } private: int idNumber_; @@ -697,8 +698,7 @@ public: virtual QString qmlModuleName() const { return parent()->qmlModuleName(); } virtual QString qmlModuleVersion() const { return parent()->qmlModuleVersion(); } virtual QString qmlModuleIdentifier() const { return parent()->qmlModuleIdentifier(); } - - const QString& element() const { return static_cast(parent())->element(); } + virtual QString element() const; private: PropertyNode* findCorrespondingCppProperty(); @@ -858,7 +858,7 @@ public: QStringList reconstructParams(bool values = false) const; QString signature(bool values = false) const; - const QString& element() const { return parent()->name(); } + virtual QString element() const { return parent()->name(); } virtual bool isAttached() const { return attached_; } virtual bool isQmlNode() const { return ((type() == QmlSignal) || -- cgit v1.2.3