Qt 4.8
Public Types | Public Functions | Static Public Functions | Protected Functions | Private Functions | Properties | List of all members
QDeclarativeDebugTrace Class Reference

#include <qdeclarativedebugtrace_p.h>

Inheritance diagram for QDeclarativeDebugTrace:
QDeclarativeDebugService QObject

Public Types

enum  EventType { FramePaint, Mouse, Key, MaximumEventType }
 
enum  Message {
  Event, RangeStart, RangeData, RangeLocation,
  RangeEnd, Complete, MaximumMessage
}
 
enum  RangeType {
  Painting, Compiling, Creating, Binding,
  HandlingSignal, MaximumRangeType
}
 
- Public Types inherited from QDeclarativeDebugService
enum  Status { NotConnected, Unavailable, Enabled }
 

Public Functions

 QDeclarativeDebugTrace ()
 
- Public Functions inherited from QDeclarativeDebugService
QString name () const
 
 QDeclarativeDebugService (const QString &, QObject *parent=0)
 
void sendMessage (const QByteArray &)
 
Status status () const
 
bool waitForMessage ()
 
 ~QDeclarativeDebugService ()
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Static Public Functions

static void addEvent (EventType)
 
static void endRange (RangeType)
 
static void rangeData (RangeType, const QString &)
 
static void rangeData (RangeType, const QUrl &)
 
static void rangeLocation (RangeType, const QString &, int)
 
static void rangeLocation (RangeType, const QUrl &, int)
 
static void startRange (RangeType)
 
- Static Public Functions inherited from QDeclarativeDebugService
static bool hasDebuggingClient ()
 
static int idForObject (QObject *)
 Returns a unique id for object. More...
 
static bool isDebuggingEnabled ()
 
static QObjectobjectForId (int)
 Returns the object for unique id. More...
 
static QString objectToString (QObject *obj)
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 

Protected Functions

virtual void messageReceived (const QByteArray &)
 
- Protected Functions inherited from QDeclarativeDebugService
virtual void statusChanged (Status)
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 

Private Functions

void addEventImpl (EventType)
 
void endRangeImpl (RangeType)
 
void processMessage (const QDeclarativeDebugData &)
 
void rangeDataImpl (RangeType, const QString &)
 
void rangeDataImpl (RangeType, const QUrl &)
 
void rangeLocationImpl (RangeType, const QString &, int)
 
void rangeLocationImpl (RangeType, const QUrl &, int)
 
void sendMessages ()
 
void startRangeImpl (RangeType)
 

Properties

QList< QDeclarativeDebugDatam_data
 
bool m_deferredSend
 
bool m_enabled
 
bool m_messageReceived
 
QElapsedTimer m_timer
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

Definition at line 66 of file qdeclarativedebugtrace_p.h.

Enumerations

◆ EventType

◆ Message

◆ RangeType

Constructors and Destructors

◆ QDeclarativeDebugTrace()

QDeclarativeDebugTrace::QDeclarativeDebugTrace ( )

Definition at line 126 of file qdeclarativedebugtrace.cpp.

127 : QDeclarativeDebugService(QLatin1String("CanvasFrameRate")),
128  m_enabled(false), m_deferredSend(true), m_messageReceived(false)
129 {
130  m_timer.start();
131  if (status() == Enabled) {
132  // wait for first message indicating whether to trace or not
133  while (!m_messageReceived)
134  waitForMessage();
135  }
136 }
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
QDeclarativeDebugService(const QString &, QObject *parent=0)
void start()
Starts this timer.

Functions

◆ addEvent()

void QDeclarativeDebugTrace::addEvent ( EventType  t)
static

◆ addEventImpl()

void QDeclarativeDebugTrace::addEventImpl ( EventType  event)
private

Definition at line 180 of file qdeclarativedebugtrace.cpp.

181 {
182  if (status() != Enabled || !m_enabled)
183  return;
184 
185  QDeclarativeDebugData ed = {m_timer.nsecsElapsed(), (int)Event, (int)event, QString(), -1};
186  processMessage(ed);
187 }
void processMessage(const QDeclarativeDebugData &)
The QString class provides a Unicode character string.
Definition: qstring.h:83
virtual bool event(QEvent *)
This virtual function receives events to an object and should return true if the event e was recogniz...
Definition: qobject.cpp:1200
qint64 nsecsElapsed() const
Returns the number of nanoseconds since this QElapsedTimer was last started.

◆ endRange()

void QDeclarativeDebugTrace::endRange ( RangeType  t)
static

◆ endRangeImpl()

void QDeclarativeDebugTrace::endRangeImpl ( RangeType  range)
private

Definition at line 234 of file qdeclarativedebugtrace.cpp.

235 {
236  if (status() != Enabled || !m_enabled)
237  return;
238 
239  QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeEnd, (int)range, QString(), -1};
240  processMessage(rd);
241 }
void processMessage(const QDeclarativeDebugData &)
The QString class provides a Unicode character string.
Definition: qstring.h:83
qint64 nsecsElapsed() const
Returns the number of nanoseconds since this QElapsedTimer was last started.

◆ messageReceived()

void QDeclarativeDebugTrace::messageReceived ( const QByteArray message)
protectedvirtual

Reimplemented from QDeclarativeDebugService.

Definition at line 274 of file qdeclarativedebugtrace.cpp.

275 {
276  QByteArray rwData = message;
278 
279  stream >> m_enabled;
280 
281  m_messageReceived = true;
282 
283  if (!m_enabled)
284  sendMessages();
285 }
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
static FILE * stream
The QDataStream class provides serialization of binary data to a QIODevice.
Definition: qdatastream.h:71

◆ processMessage()

void QDeclarativeDebugTrace::processMessage ( const QDeclarativeDebugData message)
private

Definition at line 247 of file qdeclarativedebugtrace.cpp.

Referenced by addEventImpl(), endRangeImpl(), rangeDataImpl(), rangeLocationImpl(), and startRangeImpl().

248 {
249  if (m_deferredSend)
250  m_data.append(message);
251  else
252  sendMessage(message.toByteArray());
253 }
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
QList< QDeclarativeDebugData > m_data
void sendMessage(const QByteArray &)

◆ rangeData() [1/2]

void QDeclarativeDebugTrace::rangeData ( RangeType  t,
const QString data 
)
static

◆ rangeData() [2/2]

void QDeclarativeDebugTrace::rangeData ( RangeType  t,
const QUrl data 
)
static

Definition at line 156 of file qdeclarativedebugtrace.cpp.

157 {
159  traceInstance()->rangeDataImpl(t, data);
160 }

◆ rangeDataImpl() [1/2]

void QDeclarativeDebugTrace::rangeDataImpl ( RangeType  range,
const QString rData 
)
private

Definition at line 198 of file qdeclarativedebugtrace.cpp.

199 {
200  if (status() != Enabled || !m_enabled)
201  return;
202 
203  QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeData, (int)range, rData, -1};
204  processMessage(rd);
205 }
void processMessage(const QDeclarativeDebugData &)
qint64 nsecsElapsed() const
Returns the number of nanoseconds since this QElapsedTimer was last started.

◆ rangeDataImpl() [2/2]

void QDeclarativeDebugTrace::rangeDataImpl ( RangeType  range,
const QUrl rData 
)
private

Definition at line 207 of file qdeclarativedebugtrace.cpp.

208 {
209  if (status() != Enabled || !m_enabled)
210  return;
211 
212  QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeData, (int)range, rData.toString(QUrl::FormattingOption(0x100)), -1};
213  processMessage(rd);
214 }
QString toString(FormattingOptions options=None) const
Returns the human-displayable string representation of the URL.
Definition: qurl.cpp:5896
void processMessage(const QDeclarativeDebugData &)
qint64 nsecsElapsed() const
Returns the number of nanoseconds since this QElapsedTimer was last started.
FormattingOption
The formatting options define how the URL is formatted when written out as text.
Definition: qurl.h:70

◆ rangeLocation() [1/2]

void QDeclarativeDebugTrace::rangeLocation ( RangeType  t,
const QString fileName,
int  line 
)
static

Definition at line 162 of file qdeclarativedebugtrace.cpp.

Referenced by QDeclarativeBindingProfiler::QDeclarativeBindingProfiler(), qmlExecuteDeferred(), and QDeclarativeBoundSignal::qt_metacall().

163 {
165  traceInstance()->rangeLocationImpl(t, fileName, line);
166 }

◆ rangeLocation() [2/2]

void QDeclarativeDebugTrace::rangeLocation ( RangeType  t,
const QUrl fileName,
int  line 
)
static

Definition at line 168 of file qdeclarativedebugtrace.cpp.

169 {
171  traceInstance()->rangeLocationImpl(t, fileName, line);
172 }

◆ rangeLocationImpl() [1/2]

void QDeclarativeDebugTrace::rangeLocationImpl ( RangeType  range,
const QString fileName,
int  line 
)
private

Definition at line 216 of file qdeclarativedebugtrace.cpp.

217 {
218  if (status() != Enabled || !m_enabled)
219  return;
220 
221  QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeLocation, (int)range, fileName, line};
222  processMessage(rd);
223 }
void processMessage(const QDeclarativeDebugData &)
qint64 nsecsElapsed() const
Returns the number of nanoseconds since this QElapsedTimer was last started.
static QString fileName(const QString &fileUrl)

◆ rangeLocationImpl() [2/2]

void QDeclarativeDebugTrace::rangeLocationImpl ( RangeType  range,
const QUrl fileName,
int  line 
)
private

Definition at line 225 of file qdeclarativedebugtrace.cpp.

226 {
227  if (status() != Enabled || !m_enabled)
228  return;
229 
230  QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeLocation, (int)range, fileName.toString(QUrl::FormattingOption(0x100)), line};
231  processMessage(rd);
232 }
QString toString(FormattingOptions options=None) const
Returns the human-displayable string representation of the URL.
Definition: qurl.cpp:5896
void processMessage(const QDeclarativeDebugData &)
qint64 nsecsElapsed() const
Returns the number of nanoseconds since this QElapsedTimer was last started.
FormattingOption
The formatting options define how the URL is formatted when written out as text.
Definition: qurl.h:70

◆ sendMessages()

void QDeclarativeDebugTrace::sendMessages ( )
private

Definition at line 258 of file qdeclarativedebugtrace.cpp.

Referenced by messageReceived().

259 {
260  if (m_deferredSend) {
261  //### this is a suboptimal way to send batched messages
262  for (int i = 0; i < m_data.count(); ++i)
264  m_data.clear();
265 
266  //indicate completion
269  ds << (qint64)-1 << (int)Complete;
270  sendMessage(data);
271  }
272 }
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
static const char * data(const QByteArray &arr)
void clear()
Removes all items from the list.
Definition: qlist.h:764
__int64 qint64
Definition: qglobal.h:942
QList< QDeclarativeDebugData > m_data
The QDataStream class provides serialization of binary data to a QIODevice.
Definition: qdatastream.h:71
void sendMessage(const QByteArray &)

◆ startRange()

void QDeclarativeDebugTrace::startRange ( RangeType  t)
static

◆ startRangeImpl()

void QDeclarativeDebugTrace::startRangeImpl ( RangeType  range)
private

Definition at line 189 of file qdeclarativedebugtrace.cpp.

190 {
191  if (status() != Enabled || !m_enabled)
192  return;
193 
194  QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeStart, (int)range, QString(), -1};
195  processMessage(rd);
196 }
void processMessage(const QDeclarativeDebugData &)
The QString class provides a Unicode character string.
Definition: qstring.h:83
qint64 nsecsElapsed() const
Returns the number of nanoseconds since this QElapsedTimer was last started.

Properties

◆ m_data

QList<QDeclarativeDebugData> QDeclarativeDebugTrace::m_data
private

Definition at line 140 of file qdeclarativedebugtrace_p.h.

Referenced by processMessage(), and sendMessages().

◆ m_deferredSend

bool QDeclarativeDebugTrace::m_deferredSend
private

Definition at line 138 of file qdeclarativedebugtrace_p.h.

Referenced by processMessage(), and sendMessages().

◆ m_enabled

bool QDeclarativeDebugTrace::m_enabled
private

◆ m_messageReceived

bool QDeclarativeDebugTrace::m_messageReceived
private

Definition at line 139 of file qdeclarativedebugtrace_p.h.

Referenced by messageReceived(), and QDeclarativeDebugTrace().

◆ m_timer

QElapsedTimer QDeclarativeDebugTrace::m_timer
private

The documentation for this class was generated from the following files: