diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-12-16 14:35:38 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-01-20 18:05:33 +0000 |
commit | 37b0ad35845b8097d10eeb3b286a22ff641ceae8 (patch) | |
tree | 484e45fe6aadc6eeeb57cee80d8889ea01bd0fdf | |
parent | b959ce95d4dc510c6bab2f0bc65063fb2aa2b6b9 (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.cpp | 46 | ||||
-rw-r--r-- | ApiExtractor/abstractmetalang.h | 5 |
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; |