From 7b4c917811f48328502ae4cd2a676a6f2d4f7a6b Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 7 Oct 2009 17:13:19 +0100 Subject: Added ObjectDump annotator which prints Symbian-specific internal widget flags Reviewed-by: Frans Englich --- .../mmf/mmfphonondebug/objectdump_symbian.cpp | 30 ++++++++++++++++++++++ .../phonon/mmf/mmfphonondebug/objectdump_symbian.h | 10 ++++++++ 2 files changed, 40 insertions(+) diff --git a/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.cpp b/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.cpp index 5ae10f9..8557e90 100644 --- a/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.cpp +++ b/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.cpp @@ -21,6 +21,8 @@ along with this library. If not, see . #include #include "objectdump_symbian.h" +#include // to access QWExtra + QT_BEGIN_NAMESPACE namespace ObjectDump @@ -28,6 +30,32 @@ namespace ObjectDump namespace Symbian { +QList QAnnotatorWidget::annotation(const QObject& object) +{ + QList result; + + const QWidget* widget = qobject_cast(&object); + if(widget) { + + const QWExtra* extra = qt_widget_private(const_cast(widget))->extraData(); + + if(extra) { + + QByteArray array; + QTextStream stream(&array); + + stream << "widget (Symbian): "; + stream << "activated " << extra->activated << ' '; + stream << "disableBlit " << extra->disableBlit << ' '; + + stream.flush(); + result.append(array); + } + } + + return result; +} + QList QAnnotatorControl::annotation(const QObject& object) { QList result; @@ -121,12 +149,14 @@ QList QAnnotatorWindow::annotation(const QObject& object) void addDefaultAnnotators_sys(QDumper& dumper) { + dumper.addAnnotator(new Symbian::QAnnotatorWidget); dumper.addAnnotator(new Symbian::QAnnotatorControl); dumper.addAnnotator(new Symbian::QAnnotatorWindow); } void addDefaultAnnotators_sys(QVisitor& visitor) { + visitor.addAnnotator(new Symbian::QAnnotatorWidget); visitor.addAnnotator(new Symbian::QAnnotatorControl); visitor.addAnnotator(new Symbian::QAnnotatorWindow); } diff --git a/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.h b/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.h index 26ab308..563c862 100644 --- a/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.h +++ b/src/3rdparty/phonon/mmf/mmfphonondebug/objectdump_symbian.h @@ -29,6 +29,16 @@ namespace Symbian { /** + * Annotator which returns Symbian-specific widget information + */ +class QAnnotatorWidget : public QAnnotator +{ + Q_OBJECT +public: + QList annotation(const QObject& object); +}; + +/** * Annotator which returns control information */ class QAnnotatorControl : public QAnnotator -- cgit v0.12