diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-04-22 09:04:29 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-04-22 09:25:54 +0200 |
commit | aed5a7168354c6ae47687d20b4bd3f0adcc14f8e (patch) | |
tree | d2060479a7c12fdba8c1955e5d363754feffabb8 /src/tools | |
parent | d3d10cf23d61f4a011f1a7e9abdee1a92717e80f (diff) | |
parent | 628fa13ea4d6ff0e2e2ee76c9adfc78676de3c59 (diff) |
Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
src/corelib/statemachine/qstatemachine.cpp
src/corelib/statemachine/qstatemachine_p.h
src/gui/painting/qdrawhelper.cpp
src/plugins/platforms/xcb/qxcbnativeinterface.cpp
src/plugins/platforms/xcb/qxcbwindow.cpp
src/plugins/platforms/xcb/qxcbwindow.h
src/testlib/qtestblacklist.cpp
src/tools/qdoc/node.cpp
src/tools/qdoc/node.h
tests/auto/gui/painting/qcolor/tst_qcolor.cpp
Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/moc/generator.cpp | 3 | ||||
-rw-r--r-- | src/tools/qdoc/cppcodeparser.cpp | 5 | ||||
-rw-r--r-- | src/tools/qdoc/generator.cpp | 21 | ||||
-rw-r--r-- | src/tools/qdoc/generator.h | 1 | ||||
-rw-r--r-- | src/tools/qdoc/htmlgenerator.cpp | 19 | ||||
-rw-r--r-- | src/tools/qdoc/node.cpp | 2 | ||||
-rw-r--r-- | src/tools/qdoc/node.h | 5 | ||||
-rw-r--r-- | src/tools/qdoc/tokenizer.cpp | 3 | ||||
-rw-r--r-- | src/tools/qdoc/tokenizer.h | 4 |
9 files changed, 56 insertions, 7 deletions
diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index 46acbc608b..8b6a0519c5 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -1310,6 +1310,7 @@ void Generator::generateStaticMetacall() } else { fprintf(out, " %s *_t = reinterpret_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData()); } + fprintf(out, " Q_UNUSED(_t)\n"); if (needTempVarForGet) fprintf(out, " void *_v = _a[0];\n"); fprintf(out, " switch (_id) {\n"); @@ -1355,6 +1356,7 @@ void Generator::generateStaticMetacall() } else { fprintf(out, " %s *_t = reinterpret_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData()); } + fprintf(out, " Q_UNUSED(_t)\n"); fprintf(out, " void *_v = _a[0];\n"); fprintf(out, " switch (_id) {\n"); for (int propindex = 0; propindex < cdef->propertyList.size(); ++propindex) { @@ -1408,6 +1410,7 @@ void Generator::generateStaticMetacall() } else { fprintf(out, " %s *_t = reinterpret_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData()); } + fprintf(out, " Q_UNUSED(_t)\n"); fprintf(out, " switch (_id) {\n"); for (int propindex = 0; propindex < cdef->propertyList.size(); ++propindex) { const PropertyDef &p = cdef->propertyList.at(propindex); diff --git a/src/tools/qdoc/cppcodeparser.cpp b/src/tools/qdoc/cppcodeparser.cpp index a2c7a91827..b088031d9d 100644 --- a/src/tools/qdoc/cppcodeparser.cpp +++ b/src/tools/qdoc/cppcodeparser.cpp @@ -1329,6 +1329,11 @@ bool CppCodeParser::matchParameter(FunctionNode *func) QString name; CodeChunk defaultValue; + if (match(Tok_QPrivateSignal)) { + func->setPrivateSignal(); + return true; + } + if (!matchDataType(&dataType, &name)) { return false; } diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp index 22f02327a9..99dec06233 100644 --- a/src/tools/qdoc/generator.cpp +++ b/src/tools/qdoc/generator.cpp @@ -213,7 +213,7 @@ void Generator::appendSortedNames(Text& text, const ClassNode* cn, const QList<R foreach (const QString &className, classNames) { text << classMap[className]; - text << separator(index++, classNames.count()); + text << comma(index++, classNames.count()); } } @@ -236,7 +236,7 @@ void Generator::appendSortedQmlNames(Text& text, const Node* base, const NodeLis foreach (const QString &name, names) { text << classMap[name]; - text << separator(index++, names.count()); + text << comma(index++, names.count()); } } @@ -1245,6 +1245,23 @@ void Generator::generateStatus(const Node *node, CodeMarker *marker) } /*! + Generates a bold line that says: + "The signal is private, not emitted by the user. + The function is public so the user can pass it to connect()." + */ +void Generator::generatePrivateSignalNote(const Node* node, CodeMarker* marker) +{ + Text text; + text << Atom::ParaLeft + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD) + << "Note: " + << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD) + << "This is a private signal. It can be used in signal connections but cannot be emitted by the user." + << Atom::ParaRight; + generateText(text, node, marker); +} + +/*! Generate the documentation for \a relative. i.e. \a relative is the node that reporesentas the entity where a qdoc comment was found, and \a text represents the qdoc comment. diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h index ba4d5b0a45..8f7e293eb3 100644 --- a/src/tools/qdoc/generator.h +++ b/src/tools/qdoc/generator.h @@ -156,6 +156,7 @@ protected: const QString& tag); void generateSince(const Node *node, CodeMarker *marker); void generateStatus(const Node *node, CodeMarker *marker); + void generatePrivateSignalNote(const Node* node, 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); diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp index 6985d3afee..058fb38c17 100644 --- a/src/tools/qdoc/htmlgenerator.cpp +++ b/src/tools/qdoc/htmlgenerator.cpp @@ -2176,7 +2176,7 @@ void HtmlGenerator::generateRequisites(Aggregate *inner, CodeMarker *marker) else if ((*r).access_ == Node::Private) { text << " (private)"; } - text << separator(index++, classe->baseClasses().count()); + text << comma(index++, classe->baseClasses().count()); } ++r; } @@ -3265,6 +3265,7 @@ void HtmlGenerator::generateSectionList(const Section& section, { bool alignNames = true; if (!section.members.isEmpty()) { + bool hasPrivateSignals = false; bool twoColumn = false; if (style == CodeMarker::Subpage) { alignNames = false; @@ -3307,6 +3308,14 @@ void HtmlGenerator::generateSectionList(const Section& section, prefix = prefix.left(section.keys.at(i).indexOf("::")+1); } generateSynopsis(*m, relative, marker, style, alignNames, &prefix); + if ((*m)->isFunction()) { + const FunctionNode* fn = static_cast<const FunctionNode*>(*m); + if (fn->isPrivateSignal()) { + hasPrivateSignals = true; + if (alignNames) + out() << "</td><td class=\"memItemRight bottomAlign\">[see note below]"; + } + } if (alignNames) out() << "</td></tr>\n"; else @@ -3321,6 +3330,9 @@ void HtmlGenerator::generateSectionList(const Section& section, if (twoColumn) out() << "</td></tr>\n</table></div>\n"; } + if (hasPrivateSignals && alignNames) { + generatePrivateSignalNote(relative, marker); + } } if (style == CodeMarker::Summary && !section.inherited.isEmpty()) { @@ -4023,6 +4035,11 @@ void HtmlGenerator::generateDetailedMember(const Node *node, generateSectionList(notifiers, node, marker, CodeMarker::Accessors); } } + else if (node->isFunction()) { + const FunctionNode* fn = static_cast<const FunctionNode*>(node); + if (fn->isPrivateSignal()) + generatePrivateSignalNote(node, marker); + } else if (node->type() == Node::Enum) { const EnumNode *enume = static_cast<const EnumNode *>(node); if (enume->flagsType()) { diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp index 34e5a0aa4e..ec721aee64 100644 --- a/src/tools/qdoc/node.cpp +++ b/src/tools/qdoc/node.cpp @@ -1802,6 +1802,7 @@ FunctionNode::FunctionNode(Aggregate *parent, const QString& name) overload_(false), reimplemented_(false), attached_(false), + privateSignal_(false), reimplementedFrom_(0), associatedProperty_(0) { @@ -1822,6 +1823,7 @@ FunctionNode::FunctionNode(NodeType type, Aggregate *parent, const QString& name overload_(false), reimplemented_(false), attached_(attached), + privateSignal_(false), reimplementedFrom_(0), associatedProperty_(0) { diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h index 8dcfa1f7be..845b99a4e8 100644 --- a/src/tools/qdoc/node.h +++ b/src/tools/qdoc/node.h @@ -404,7 +404,7 @@ public: void printChildren(const QString& title); void addChild(Node* child); void removeChild(Node* child); - virtual void setOutputSubdirectory(const QString& t); + void setOutputSubdirectory(const QString& t) Q_DECL_OVERRIDE; protected: Aggregate(NodeType type, Aggregate* parent, const QString& name); @@ -922,6 +922,8 @@ public: virtual QString logicalModuleIdentifier() const Q_DECL_OVERRIDE { return parent()->logicalModuleIdentifier(); } + bool isPrivateSignal() const { return privateSignal_; } + void setPrivateSignal() { privateSignal_ = true; } void debug() const; @@ -940,6 +942,7 @@ private: bool overload_ : 1; bool reimplemented_: 1; bool attached_: 1; + bool privateSignal_: 1; QList<Parameter> parameters_; const FunctionNode* reimplementedFrom_; const PropertyNode* associatedProperty_; diff --git a/src/tools/qdoc/tokenizer.cpp b/src/tools/qdoc/tokenizer.cpp index 6bfa678bc6..68c6fb7831 100644 --- a/src/tools/qdoc/tokenizer.cpp +++ b/src/tools/qdoc/tokenizer.cpp @@ -78,7 +78,8 @@ static const char *kwords[] = { "QT3_SUPPORT", "QT3_SUPPORT_CONSTRUCTOR", "QT3_MOC_SUPPORT", - "QDOC_PROPERTY" + "QDOC_PROPERTY", + "QPrivateSignal" }; static const int KwordHashTableSize = 4096; diff --git a/src/tools/qdoc/tokenizer.h b/src/tools/qdoc/tokenizer.h index 5827ce9b7d..2b79320567 100644 --- a/src/tools/qdoc/tokenizer.h +++ b/src/tools/qdoc/tokenizer.h @@ -74,8 +74,8 @@ enum { Tok_Eoi, Tok_Ampersand, Tok_Aster, Tok_Caret, Tok_LeftParen, Tok_Q_DECLARE_FLAGS, Tok_Q_SIGNALS, Tok_Q_SLOTS, Tok_QT_COMPAT, Tok_QT_COMPAT_CONSTRUCTOR, Tok_QT_DEPRECATED, Tok_QT_MOC_COMPAT, Tok_QT_MODULE, Tok_QT3_SUPPORT, Tok_QT3_SUPPORT_CONSTRUCTOR, - Tok_QT3_MOC_SUPPORT, Tok_QDOC_PROPERTY, - Tok_FirstKeyword = Tok_char, Tok_LastKeyword = Tok_QDOC_PROPERTY }; + Tok_QT3_MOC_SUPPORT, Tok_QDOC_PROPERTY, Tok_QPrivateSignal, + Tok_FirstKeyword = Tok_char, Tok_LastKeyword = Tok_QPrivateSignal }; /* The Tokenizer class implements lexical analysis of C++ source |