summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/moc/generator.cpp3
-rw-r--r--src/tools/qdoc/cppcodeparser.cpp5
-rw-r--r--src/tools/qdoc/generator.cpp21
-rw-r--r--src/tools/qdoc/generator.h1
-rw-r--r--src/tools/qdoc/htmlgenerator.cpp19
-rw-r--r--src/tools/qdoc/node.cpp2
-rw-r--r--src/tools/qdoc/node.h5
-rw-r--r--src/tools/qdoc/tokenizer.cpp3
-rw-r--r--src/tools/qdoc/tokenizer.h4
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