12 Trace(const QString &s): name(s) {
13 qDebug() << prefix() + ">" + name;
20 qDebug() << prefix() + "<" + name;
22 void trace(const QString &s) const {
23 qDebug() << prefix() + name + ": " + s;
26 static void debug(const QString &s) {
27 qDebug() << prefix() + s;
30 static QString event(QEvent::Type t) {
31 for (int i = 0; eventTab[i].name; i++) {
32 if (eventTab[i].type == t) {
33 return eventTab[i].name;
36 if (t >= QEvent::User) {
37 return QString("QEvent::User+%1").arg(t - QEvent::User);
39 return QString("Unknown event %1").arg(t);
43 static void messageHandler(QtMsgType type, const char *msg);
45 static QtMsgType level;
48 static QString prefix() {
49 return QTime::currentTime().toString("hh:mm:ss.zzz ") +
50 QString(" ").repeated(indent);
54 typedef struct {int type; const char *name;} EventName;
55 static EventName eventTab[];