aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2016-12-16 14:35:38 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-01-20 18:05:33 +0000
commit37b0ad35845b8097d10eeb3b286a22ff641ceae8 (patch)
tree484e45fe6aadc6eeeb57cee80d8889ea01bd0fdf
parentb959ce95d4dc510c6bab2f0bc65063fb2aa2b6b9 (diff)
Add verbose debug output to AbstractMetaFunction
Task-number: PYSIDE-323 Change-Id: I347ba0f0bb3e9676b249524931fd2877fbcdd49a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--ApiExtractor/abstractmetalang.cpp46
-rw-r--r--ApiExtractor/abstractmetalang.h5
2 files changed, 47 insertions, 4 deletions
diff --git a/ApiExtractor/abstractmetalang.cpp b/ApiExtractor/abstractmetalang.cpp
index 3b3a73de8..4b7e70b41 100644
--- a/ApiExtractor/abstractmetalang.cpp
+++ b/ApiExtractor/abstractmetalang.cpp
@@ -1184,11 +1184,42 @@ bool function_sorter(AbstractMetaFunction *a, AbstractMetaFunction *b)
}
#ifndef QT_NO_DEBUG_STREAM
-static inline void formatMetaFunction(QDebug &d, const AbstractMetaFunction *af)
+static inline void formatMetaFunctionBrief(QDebug &d, const AbstractMetaFunction *af)
{
d << '"' << af->minimalSignature() << '"';
}
+void AbstractMetaFunction::formatDebugVerbose(QDebug &d) const
+{
+ d << m_functionType << ' ' << m_type << ' ' << m_name << '(';
+ for (int i = 0, count = m_arguments.size(); i < count; ++i) {
+ if (i)
+ d << ", ";
+ d << m_arguments.at(i);
+ }
+ d << "), signature=\"" << minimalSignature() << '"';
+ if (m_constant)
+ d << " [const]";
+ if (m_invalid)
+ d << " [invalid]";
+ if (m_reverse)
+ d << " [reverse]";
+ if (m_userAdded)
+ d << " [userAdded]";
+ if (m_explicit)
+ d << " [explicit]";
+ if (m_pointerOperator)
+ d << " [operator->]";
+ if (m_isCallOperator)
+ d << " [operator()]";
+ if (m_class)
+ d << " class: " << m_class->name();
+ if (m_implementingClass)
+ d << " implementing class: " << m_implementingClass->name();
+ if (m_declaringClass)
+ d << " declaring class: " << m_declaringClass->name();
+}
+
QDebug operator<<(QDebug d, const AbstractMetaFunction *af)
{
QDebugStateSaver saver(d);
@@ -1196,8 +1227,12 @@ QDebug operator<<(QDebug d, const AbstractMetaFunction *af)
d.nospace();
d << "AbstractMetaFunction(";
if (af) {
- d << "signature=";
- formatMetaFunction(d, af);
+ if (d.verbosity() > 2) {
+ af->formatDebugVerbose(d);
+ } else {
+ d << "signature=";
+ formatMetaFunctionBrief(d, af);
+ }
} else {
d << '0';
}
@@ -2708,7 +2743,10 @@ QDebug operator<<(QDebug d, const AbstractMetaClass *ac)
for (int i = 0; i < count; ++i) {
if (i)
d << ", ";
- formatMetaFunction(d, functions.at(i));
+ if (d.verbosity() > 2)
+ d << functions.at(i);
+ else
+ formatMetaFunctionBrief(d, functions.at(i));
}
d << ')';
}
diff --git a/ApiExtractor/abstractmetalang.h b/ApiExtractor/abstractmetalang.h
index 54c69bab8..0ad2d68c2 100644
--- a/ApiExtractor/abstractmetalang.h
+++ b/ApiExtractor/abstractmetalang.h
@@ -1193,6 +1193,11 @@ public:
}
bool isCallOperator() const;
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebugVerbose(QDebug &d) const;
+#endif
+
private:
QString m_name;
QString m_originalName;