7 QtMsgType Trace::level = QtDebugMsg;
10 Trace::EventName Trace::eventTab[] = {
11 {QEvent::None, "QEvent::None"},
12 {QEvent::Timer, "QEvent::Timer"},
13 {QEvent::MouseButtonPress, "QEvent::MouseButtonPress"},
14 {QEvent::MouseButtonRelease, "QEvent::MouseButtonRelease"},
15 {QEvent::MouseButtonDblClick, "QEvent::MouseButtonDblClick"},
16 {QEvent::MouseMove, "QEvent::MouseMove"},
17 {QEvent::KeyPress, "QEvent::KeyPress"},
18 {QEvent::KeyRelease, "QEvent::KeyRelease"},
19 {QEvent::FocusIn, "QEvent::FocusIn"},
20 {QEvent::FocusOut, "QEvent::FocusOut"},
21 {QEvent::Enter, "QEvent::Enter"},
22 {QEvent::Leave, "QEvent::Leave"},
23 {QEvent::Paint, "QEvent::Paint"},
24 {QEvent::Move, "QEvent::Move"},
25 {QEvent::Resize, "QEvent::Resize"},
26 {QEvent::Create, "QEvent::Create"},
27 {QEvent::Destroy, "QEvent::Destroy"},
28 {QEvent::Show, "QEvent::Show"},
29 {QEvent::Hide, "QEvent::Hide"},
30 {QEvent::Close, "QEvent::Close"},
31 {QEvent::Quit, "QEvent::Quit"},
32 {QEvent::ParentChange, "QEvent::ParentChange"},
33 {QEvent::ParentAboutToChange, "QEvent::ParentAboutToChange"},
35 {QEvent::Reparent, "QEvent::Reparent"},
37 {QEvent::ThreadChange, "QEvent::ThreadChange"},
38 {QEvent::WindowActivate, "QEvent::WindowActivate"},
39 {QEvent::WindowDeactivate, "QEvent::WindowDeactivate"},
40 {QEvent::ShowToParent, "QEvent::ShowToParent"},
41 {QEvent::HideToParent, "QEvent::HideToParent"},
42 {QEvent::Wheel, "QEvent::Wheel"},
43 {QEvent::WindowTitleChange, "QEvent::WindowTitleChange"},
44 {QEvent::WindowIconChange, "QEvent::WindowIconChange"},
45 {QEvent::ApplicationWindowIconChange, "QEvent::ApplicationWindowIconChange"},
46 {QEvent::ApplicationFontChange, "QEvent::ApplicationFontChange"},
47 {QEvent::ApplicationLayoutDirectionChange, "QEvent::ApplicationLayoutDirectionChange"},
48 {QEvent::ApplicationPaletteChange, "QEvent::ApplicationPaletteChange"},
49 {QEvent::PaletteChange, "QEvent::PaletteChange"},
50 {QEvent::Clipboard, "QEvent::Clipboard"},
51 {QEvent::Speech, "QEvent::Speech"},
52 {QEvent::MetaCall, "QEvent::MetaCall"},
53 {QEvent::SockAct, "QEvent::SockAct"},
54 {QEvent::WinEventAct, "QEvent::WinEventAct"},
55 {QEvent::DeferredDelete, "QEvent::DeferredDelete"},
56 {QEvent::DragEnter, "QEvent::DragEnter"},
57 {QEvent::DragMove, "QEvent::DragMove"},
58 {QEvent::DragLeave, "QEvent::DragLeave"},
59 {QEvent::Drop, "QEvent::Drop"},
60 {QEvent::DragResponse, "QEvent::DragResponse"},
61 {QEvent::ChildAdded, "QEvent::ChildAdded"},
62 {QEvent::ChildPolished, "QEvent::ChildPolished"},
64 {QEvent::ChildInsertedRequest, "QEvent::ChildInsertedRequest"},
65 {QEvent::ChildInserted, "QEvent::ChildInserted"},
66 {QEvent::LayoutHint, "QEvent::LayoutHint"},
68 {QEvent::ChildRemoved, "QEvent::ChildRemoved"},
69 {QEvent::ShowWindowRequest, "QEvent::ShowWindowRequest"},
70 {QEvent::PolishRequest, "QEvent::PolishRequest"},
71 {QEvent::Polish, "QEvent::Polish"},
72 {QEvent::LayoutRequest, "QEvent::LayoutRequest"},
73 {QEvent::UpdateRequest, "QEvent::UpdateRequest"},
74 {QEvent::UpdateLater, "QEvent::UpdateLater"},
76 {QEvent::EmbeddingControl, "QEvent::EmbeddingControl"},
77 {QEvent::ActivateControl, "QEvent::ActivateControl"},
78 {QEvent::DeactivateControl, "QEvent::DeactivateControl"},
79 {QEvent::ContextMenu, "QEvent::ContextMenu"},
80 {QEvent::InputMethod, "QEvent::InputMethod"},
81 {QEvent::AccessibilityPrepare, "QEvent::AccessibilityPrepare"},
82 {QEvent::TabletMove, "QEvent::TabletMove"},
83 {QEvent::LocaleChange, "QEvent::LocaleChange"},
84 {QEvent::LanguageChange, "QEvent::LanguageChange"},
85 {QEvent::LayoutDirectionChange, "QEvent::LayoutDirectionChange"},
86 {QEvent::Style, "QEvent::Style"},
87 {QEvent::TabletPress, "QEvent::TabletPress"},
88 {QEvent::TabletRelease, "QEvent::TabletRelease"},
89 {QEvent::OkRequest, "QEvent::OkRequest"},
90 {QEvent::HelpRequest, "QEvent::HelpRequest"},
92 {QEvent::IconDrag, "QEvent::IconDrag"},
94 {QEvent::FontChange, "QEvent::FontChange"},
95 {QEvent::EnabledChange, "QEvent::EnabledChange"},
96 {QEvent::ActivationChange, "QEvent::ActivationChange"},
97 {QEvent::StyleChange, "QEvent::StyleChange"},
98 {QEvent::IconTextChange, "QEvent::IconTextChange"},
99 {QEvent::ModifiedChange, "QEvent::ModifiedChange"},
100 {QEvent::MouseTrackingChange, "QEvent::MouseTrackingChange"},
102 {QEvent::WindowBlocked, "QEvent::WindowBlocked"},
103 {QEvent::WindowUnblocked, "QEvent::WindowUnblocked"},
104 {QEvent::WindowStateChange, "QEvent::WindowStateChange"},
106 {QEvent::ToolTip, "QEvent::ToolTip"},
107 {QEvent::WhatsThis, "QEvent::WhatsThis"},
108 {QEvent::StatusTip, "QEvent::StatusTip"},
110 {QEvent::ActionChanged, "QEvent::ActionChanged"},
111 {QEvent::ActionAdded, "QEvent::ActionAdded"},
112 {QEvent::ActionRemoved, "QEvent::ActionRemoved"},
114 {QEvent::FileOpen, "QEvent::FileOpen"},
116 {QEvent::Shortcut, "QEvent::Shortcut"},
117 {QEvent::ShortcutOverride, "QEvent::ShortcutOverride"},
120 {QEvent::Accel, "QEvent::Accel"},
121 {QEvent::AccelAvailable, "QEvent::AccelAvailable"},
122 {QEvent::AccelOverride, "QEvent::AccelOverride"},
125 {QEvent::WhatsThisClicked, "QEvent::WhatsThisClicked"},
128 {QEvent::CaptionChange, "QEvent::CaptionChange"},
129 {QEvent::IconChange, "QEvent::IconChange"},
131 {QEvent::ToolBarChange, "QEvent::ToolBarChange"},
133 {QEvent::ApplicationActivate, "QEvent::ApplicationActivate"},
134 {QEvent::ApplicationActivated, "QEvent::ApplicationActivated"},
135 {QEvent::ApplicationDeactivate, "QEvent::ApplicationDeactivate"},
136 {QEvent::ApplicationDeactivated, "QEvent::ApplicationDeactivated"},
138 {QEvent::QueryWhatsThis, "QEvent::QueryWhatsThis"},
139 {QEvent::EnterWhatsThisMode, "QEvent::EnterWhatsThisMode"},
140 {QEvent::LeaveWhatsThisMode, "QEvent::LeaveWhatsThisMode"},
142 {QEvent::ZOrderChange, "QEvent::ZOrderChange"},
144 {QEvent::HoverEnter, "QEvent::HoverEnter"},
145 {QEvent::HoverLeave, "QEvent::HoverLeave"},
146 {QEvent::HoverMove, "QEvent::HoverMove"},
148 {QEvent::AccessibilityHelp, "QEvent::AccessibilityHelp"},
149 {QEvent::AccessibilityDescription, "QEvent::AccessibilityDescription"},
151 #ifdef QT_KEYPAD_NAVIGATION
152 {QEvent::EnterEditFocus, "QEvent::EnterEditFocus"},
153 {QEvent::LeaveEditFocus, "QEvent::LeaveEditFocus"},
155 {QEvent::AcceptDropsChange, "QEvent::AcceptDropsChange"},
157 {QEvent::MenubarUpdated, "QEvent::MenubarUpdated"},
158 {QEvent::ZeroTimerEvent, "QEvent::ZeroTimerEvent"},
160 {QEvent::GraphicsSceneMouseMove, "QEvent::GraphicsSceneMouseMove"},
161 {QEvent::GraphicsSceneMousePress, "QEvent::GraphicsSceneMousePress"},
162 {QEvent::GraphicsSceneMouseRelease, "QEvent::GraphicsSceneMouseRelease"},
163 {QEvent::GraphicsSceneMouseDoubleClick, "QEvent::GraphicsSceneMouseDoubleClick"},
164 {QEvent::GraphicsSceneContextMenu, "QEvent::GraphicsSceneContextMenu"},
165 {QEvent::GraphicsSceneHoverEnter, "QEvent::GraphicsSceneHoverEnter"},
166 {QEvent::GraphicsSceneHoverMove, "QEvent::GraphicsSceneHoverMove"},
167 {QEvent::GraphicsSceneHoverLeave, "QEvent::GraphicsSceneHoverLeave"},
168 {QEvent::GraphicsSceneHelp, "QEvent::GraphicsSceneHelp"},
169 {QEvent::GraphicsSceneDragEnter, "QEvent::GraphicsSceneDragEnter"},
170 {QEvent::GraphicsSceneDragMove, "QEvent::GraphicsSceneDragMove"},
171 {QEvent::GraphicsSceneDragLeave, "QEvent::GraphicsSceneDragLeave"},
172 {QEvent::GraphicsSceneDrop, "QEvent::GraphicsSceneDrop"},
173 {QEvent::GraphicsSceneWheel, "QEvent::GraphicsSceneWheel"},
175 {QEvent::KeyboardLayoutChange, "QEvent::KeyboardLayoutChange"},
177 {QEvent::DynamicPropertyChange, "QEvent::DynamicPropertyChange"},
179 {QEvent::TabletEnterProximity, "QEvent::TabletEnterProximity"},
180 {QEvent::TabletLeaveProximity, "QEvent::TabletLeaveProximity"},
182 {QEvent::NonClientAreaMouseMove, "QEvent::NonClientAreaMouseMove"},
183 {QEvent::NonClientAreaMouseButtonPress, "QEvent::NonClientAreaMouseButtonPress"},
184 {QEvent::NonClientAreaMouseButtonRelease, "QEvent::NonClientAreaMouseButtonRelease"},
185 {QEvent::NonClientAreaMouseButtonDblClick, "QEvent::NonClientAreaMouseButtonDblClick"},
187 {QEvent::MacSizeChange, "QEvent::MacSizeChange"},
189 {QEvent::ContentsRectChange, "QEvent::ContentsRectChange"},
191 {QEvent::MacGLWindowChange, "QEvent::MacGLWindowChange"},
193 {QEvent::FutureCallOut, "QEvent::FutureCallOut"},
195 {QEvent::GraphicsSceneResize, "QEvent::GraphicsSceneResize"},
196 {QEvent::GraphicsSceneMove, "QEvent::GraphicsSceneMove"},
198 {QEvent::CursorChange, "QEvent::CursorChange"},
199 {QEvent::ToolTipChange, "QEvent::ToolTipChange"},
201 {QEvent::NetworkReplyUpdated, "QEvent::NetworkReplyUpdated"},
203 {QEvent::GrabMouse, "QEvent::GrabMouse"},
204 {QEvent::UngrabMouse, "QEvent::UngrabMouse"},
205 {QEvent::GrabKeyboard, "QEvent::GrabKeyboard"},
206 {QEvent::UngrabKeyboard, "QEvent::UngrabKeyboard"},
207 {QEvent::MacGLClearDrawable, "QEvent::MacGLClearDrawable"},
209 {QEvent::StateMachineSignal, "QEvent::StateMachineSignal"},
210 {QEvent::StateMachineWrapped, "QEvent::StateMachineWrapped"},
212 {QEvent::TouchBegin, "QEvent::TouchBegin"},
213 {QEvent::TouchUpdate, "QEvent::TouchUpdate"},
214 {QEvent::TouchEnd, "QEvent::TouchEnd"},
216 {QEvent::NativeGesture, "QEvent::NativeGesture"},
218 {QEvent::RequestSoftwareInputPanel, "QEvent::RequestSoftwareInputPanel"},
219 {QEvent::CloseSoftwareInputPanel, "QEvent::CloseSoftwareInputPanel"},
221 {QEvent::UpdateSoftKeys, "QEvent::UpdateSoftKeys"},
223 {QEvent::WinIdChange, "QEvent::WinIdChange"},
224 {QEvent::Gesture, "QEvent::Gesture"},
225 {QEvent::GestureOverride, "QEvent::GestureOverride"},
230 Trace::Trace(const QString &s): name(s)
232 messageHandler(QtDebugMsg, QString(">%1").arg(name).toAscii().constData());
241 messageHandler(QtDebugMsg, QString("<%1").arg(name).toAscii().constData());
244 QString Trace::event(QEvent::Type t)
246 for (int i = 0; eventTab[i].name; i++) {
247 if (eventTab[i].type == t) {
248 return eventTab[i].name;
251 if (t >= QEvent::User) {
252 return QString("QEvent::User+%1").arg(t - QEvent::User);
254 return QString("Unknown event %1").arg(t);
258 QString Trace::prefix()
260 return QTime::currentTime().toString("hh:mm:ss.zzz ") +
261 QString(" ").repeated(indent);
264 void Trace::messageHandler(QtMsgType type, const char *msg)
266 if (type >= Trace::level) {
267 QtMsgHandler oldHandler = qInstallMsgHandler(0);
270 qt_message_output(QtDebugMsg, (prefix()+msg).toUtf8().constData());
273 qt_message_output(type, msg);
275 qInstallMsgHandler(oldHandler);
276 if (Trace::file.isOpen()) {
277 Trace::file.write((prefix() + msg + "\n").toUtf8());
283 void Trace::setFileName(const QString &fileName)
286 Trace::file.setFileName(fileName);
287 if (!fileName.isEmpty()) {
288 (void)Trace::file.open(QIODevice::WriteOnly);
292 QString Trace::fileName()
294 return Trace::file.fileName();