Krita Source Code Documentation
Loading...
Searching...
No Matches
KisTabletDebugger Class Reference

#include <kis_tablet_debugger.h>

Public Member Functions

bool debugEnabled () const
 
QString eventToString (const QEvent &ev, const QString &prefix)
 
QString eventToString (const QKeyEvent &ev, const QString &prefix)
 
QString eventToString (const QMouseEvent &ev, const QString &prefix)
 
QString eventToString (const QNativeGestureEvent &ev, const QString &prefix)
 
QString eventToString (const QTabletEvent &ev, const QString &prefix)
 
QString eventToString (const QTouchEvent &ev, const QString &prefix)
 
QString eventToString (const QWheelEvent &ev, const QString &prefix)
 
 KisTabletDebugger ()
 
void toggleDebugging ()
 

Static Public Member Functions

static QString exTypeToString (QEvent::Type type)
 
static KisTabletDebugger * instance ()
 
static QString pointerTypeToString (const QTabletEvent &event)
 
static QString tabletDeviceToString (const QTabletEvent &event)
 

Private Attributes

bool m_debugEnabled
 
bool m_shouldEatDriverShortcuts
 

Detailed Description

Definition at line 13 of file kis_tablet_debugger.h.

Constructor & Destructor Documentation

◆ KisTabletDebugger()

KisTabletDebugger::KisTabletDebugger ( )

Definition at line 106 of file kis_tablet_debugger.cpp.

107 : m_debugEnabled(false)
108{
109 KisConfig cfg(true);
110 m_shouldEatDriverShortcuts = cfg.shouldEatDriverShortcuts();
111}

References m_shouldEatDriverShortcuts, and KisConfig::shouldEatDriverShortcuts().

Member Function Documentation

◆ debugEnabled()

bool KisTabletDebugger::debugEnabled ( ) const

Definition at line 132 of file kis_tablet_debugger.cpp.

133{
134 return m_debugEnabled;
135}

References m_debugEnabled.

◆ eventToString() [1/7]

QString KisTabletDebugger::eventToString ( const QEvent & ev,
const QString & prefix )

Definition at line 226 of file kis_tablet_debugger.cpp.

227{
228 QString string;
229 QTextStream s(&string);
231
232 dumpBaseParams(s, ev, prefix);
233
234 return string;
235}
void dumpBaseParams(QTextStream &s, const Event &ev, const QString &prefix)
void setUtf8OnStream(QTextStream &stream)

References dumpBaseParams(), and KisPortingUtils::setUtf8OnStream().

◆ eventToString() [2/7]

QString KisTabletDebugger::eventToString ( const QKeyEvent & ev,
const QString & prefix )

Definition at line 155 of file kis_tablet_debugger.cpp.

156{
157 QString string;
158 QTextStream s(&string);
160
161 dumpBaseParams(s, ev, prefix);
162
163 s << "key: 0x" << Qt::hex << ev.key() << Qt::reset << " ";
164 s << "mod: 0x" << Qt::hex << ev.modifiers() << Qt::reset << " ";
165 s << "text: " << (ev.text().isEmpty() ? "none" : ev.text()) << " ";
166 s << "autorepeat: " << bool(ev.isAutoRepeat());
167
168 return string;
169}

References dumpBaseParams(), and KisPortingUtils::setUtf8OnStream().

◆ eventToString() [3/7]

QString KisTabletDebugger::eventToString ( const QMouseEvent & ev,
const QString & prefix )

Definition at line 137 of file kis_tablet_debugger.cpp.

138{
139 QString string;
140 QTextStream s(&string);
141
142 dumpBaseParams(s, ev, prefix);
144 s << "hires: " << qSetFieldWidth(8) << ev.screenPos().x() << qSetFieldWidth(0) << "," << qSetFieldWidth(8) << ev.screenPos().y() << qSetFieldWidth(0) << " ";
145 s << "source: " << sourceToString(ev.source()) << " ";
146#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
147 s << "dev. type: " << static_cast<int>(ev.device()->type()) << " ";
148 s << "dev. caps: " << static_cast<int>(ev.device()->capabilities()) << " ";
149 s << "dev. name: " << ev.device()->name() << " ";
150#endif
151
152 return string;
153}
void dumpMouseRelatedParams(QTextStream &s, const Event &ev)
QString sourceToString(Qt::MouseEventSource source)

References dumpBaseParams(), dumpMouseRelatedParams(), and sourceToString().

◆ eventToString() [4/7]

QString KisTabletDebugger::eventToString ( const QNativeGestureEvent & ev,
const QString & prefix )

Definition at line 270 of file kis_tablet_debugger.cpp.

271{
272 const auto gestureTypeToString = [](Qt::NativeGestureType gestureType) -> const char* {
273 switch (gestureType) {
274 case Qt::BeginNativeGesture:
275 return "BeginNativeGesture";
276 case Qt::EndNativeGesture:
277 return "EndNativeGesture";
278 case Qt::PanNativeGesture:
279 return "PanNativeGesture";
280 case Qt::ZoomNativeGesture:
281 return "ZoomNativeGesture";
282 case Qt::SmartZoomNativeGesture:
283 return "SmartZoomNativeGesture";
284 case Qt::RotateNativeGesture:
285 return "RotateNativeGesture";
286 case Qt::SwipeNativeGesture:
287 return "SwipeNativeGesture";
288 default:
289 return "UnknownNativeGesture";
290 }
291 };
292
293 QString string;
294 QTextStream s(&string);
296
297 dumpBaseParams(s, ev, prefix);
298
299 s << gestureTypeToString(ev.gestureType()) << " "
300 << "value: " << ev.value() << " "
301#if (QT_VERSION >= QT_VERSION_CHECK(6, 2, 0))
302 << "delta: " << ev.delta().x() << "," << ev.delta().y() << " "
303 << "fingerCount: " << ev.fingerCount() << " "
304#endif
305 ;
306
307 return string;
308}

References dumpBaseParams(), and KisPortingUtils::setUtf8OnStream().

◆ eventToString() [5/7]

QString KisTabletDebugger::eventToString ( const QTabletEvent & ev,
const QString & prefix )

Definition at line 265 of file kis_tablet_debugger.cpp.

266{
267 return tabletEventToString(ev, prefix);
268}
QString tabletEventToString(const Event &ev, const QString &prefix)

References tabletEventToString().

◆ eventToString() [6/7]

QString KisTabletDebugger::eventToString ( const QTouchEvent & ev,
const QString & prefix )

Definition at line 196 of file kis_tablet_debugger.cpp.

197{
198 QString string;
199 QTextStream s(&string);
201
202 dumpBaseParams(s, ev, prefix);
203#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
204 s << (ev.device()->type() ? "TouchPad" : "TouchScreen") << " ";
205#else
206 if (ev.deviceType() == QInputDevice::DeviceType::TouchPad) {
207 s << "Touchpad";
208 }
209 else if (ev.deviceType() == QInputDevice::DeviceType::TouchScreen) {
210 s << "TouchScreen";
211 }
212 s << " ";
213#endif
214 for (const auto& touchpoint: ev.touchPoints()) {
215 s << "id: " << touchpoint.id() << " ";
216 s << "hires: " << qSetFieldWidth(8) << touchpoint.screenPos().x() << qSetFieldWidth(0) << "," << qSetFieldWidth(8) << touchpoint.screenPos().y() << qSetFieldWidth(0) << " ";
217 s << "prs: " << touchpoint.pressure() << " ";
218 s << "rot: "<< touchpoint.rotation() << " ";
219 s << "state: 0x" << Qt::hex << touchpoint.state() << "; ";
220 s << Qt::dec;
221 }
222
223 return string;
224}

References dumpBaseParams(), and KisPortingUtils::setUtf8OnStream().

◆ eventToString() [7/7]

QString KisTabletDebugger::eventToString ( const QWheelEvent & ev,
const QString & prefix )

Definition at line 171 of file kis_tablet_debugger.cpp.

172{
173 QString string;
174 QTextStream s(&string);
176
177 dumpBaseParams(s, ev, prefix);
179
180 s << "delta: x: " << ev.angleDelta().x() << " y: " << ev.angleDelta().y() << " ";
181 s << "source: " << sourceToString(ev.source()) << " ";
182
183 QString phaseString;
184 QDebug(&phaseString) << ev.phase();
185 s << "phase: " << phaseString << " ";
186
187#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
188 s << "dev. type: " << static_cast<int>(ev.device()->type()) << " ";
189 s << "dev. caps: " << static_cast<int>(ev.device()->capabilities()) << " ";
190 s << "dev. name: " << ev.device()->name() << " ";
191#endif
192
193 return string;
194}

References dumpBaseParams(), dumpMouseRelatedParams(), KisPortingUtils::setUtf8OnStream(), and sourceToString().

◆ exTypeToString()

QString KisTabletDebugger::exTypeToString ( QEvent::Type type)
static

Definition at line 64 of file kis_tablet_debugger.cpp.

64 {
65 return
66 type == QEvent::TabletEnterProximity ? "TabletEnterProximity" :
67 type == QEvent::TabletLeaveProximity ? "TabletLeaveProximity" :
68 type == QEvent::Enter ? "Enter" :
69 type == QEvent::Leave ? "Leave" :
70 type == QEvent::FocusIn ? "FocusIn" :
71 type == QEvent::FocusOut ? "FocusOut" :
72 type == QEvent::Wheel ? "Wheel" :
73 type == QEvent::KeyPress ? "KeyPress" :
74 type == QEvent::KeyRelease ? "KeyRelease" :
75 type == QEvent::ShortcutOverride ? "ShortcutOverride" :
76 type == QMouseEvent::MouseButtonPress ? "MouseButtonPress" :
77 type == QMouseEvent::MouseButtonRelease ? "MouseButtonRelease" :
78 type == QMouseEvent::MouseButtonDblClick ? "MouseButtonDblClick" :
79 type == QMouseEvent::MouseMove ? "MouseMove" :
80 type == QTabletEvent::TabletMove ? "TabletMove" :
81 type == QTabletEvent::TabletPress ? "TabletPress" :
82 type == QTabletEvent::TabletRelease ? "TabletRelease" :
83 type == QTouchEvent::TouchBegin ? "TouchBegin" :
84 type == QTouchEvent::TouchUpdate ? "TouchUpdate" :
85 type == QTouchEvent::TouchEnd ? "TouchEnd" :
86 type == QTouchEvent::TouchCancel ? "TouchCancel" :
87 type == QTouchEvent::NativeGesture ? "NativeGesture" :
88 "unknown";
89}

◆ instance()

KisTabletDebugger * KisTabletDebugger::instance ( )
static

Definition at line 113 of file kis_tablet_debugger.cpp.

114{
115 return s_instance;
116}

◆ pointerTypeToString()

QString KisTabletDebugger::pointerTypeToString ( const QTabletEvent & event)
static

Definition at line 333 of file kis_tablet_debugger.cpp.

333 {
334#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
335 return
336 event.pointerType() == QTabletEvent::UnknownPointer ? "UnknownPointer" :
337 event.pointerType() == QTabletEvent::Pen ? "Pen" :
338 event.pointerType() == QTabletEvent::Cursor ? "Cursor" :
339 event.pointerType() == QTabletEvent::Eraser ? "Eraser" :
340 "Unknown";
341#else
342 QPointingDevice::PointerType pointerType = event.pointerType();
343 return
344 pointerType == QPointingDevice::PointerType::Pen ? "Pen" :
345 pointerType == QPointingDevice::PointerType::Cursor ? "Cursor" :
346 pointerType == QPointingDevice::PointerType::Eraser ? "Eraser" :
347 "Unknown";
348#endif
349
350}

◆ tabletDeviceToString()

QString KisTabletDebugger::tabletDeviceToString ( const QTabletEvent & event)
static

Definition at line 310 of file kis_tablet_debugger.cpp.

311{
312#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
313 return
314 event.deviceType() == QTabletEvent::NoDevice ? "NoDevice" :
315 event.deviceType() == QTabletEvent::Puck ? "Puck" :
316 event.deviceType() == QTabletEvent::Stylus ? "Stylus" :
317 event.deviceType() == QTabletEvent::Airbrush ? "Airbrush" :
318 event.deviceType() == QTabletEvent::FourDMouse ? "FourDMouse" :
319 event.deviceType() == QTabletEvent::XFreeEraser ? "XFreeEraser" :
320 event.deviceType() == QTabletEvent::RotationStylus ? "RotationStylus" :
321 "Unknown";
322#else
323 QInputDevice::DeviceType deviceType = event.deviceType();
324
325 return
326 deviceType == QInputDevice::DeviceType::Puck ? "Puck" :
327 deviceType == QInputDevice::DeviceType::Stylus ? "Stylus" :
328 deviceType == QInputDevice::DeviceType::Airbrush ? "Airbrush" :
329 "Unknown";
330#endif
331}

◆ toggleDebugging()

void KisTabletDebugger::toggleDebugging ( )

Definition at line 118 of file kis_tablet_debugger.cpp.

119{
121 QMessageBox::information(qApp->activeWindow(), i18nc("@title:window", "Krita"), m_debugEnabled ?
122 i18n("Tablet Event Logging Enabled") :
123 i18n("Tablet Event Logging Disabled"));
124 if (m_debugEnabled) {
125 dbgTablet << "vvvvvvvvvvvvvvvvvvvvvvv START TABLET EVENT LOG vvvvvvvvvvvvvvvvvvvvvvv";
126 }
127 else {
128 dbgTablet << "^^^^^^^^^^^^^^^^^^^^^^^ END TABLET EVENT LOG ^^^^^^^^^^^^^^^^^^^^^^^";
129 }
130}
#define dbgTablet
Definition kis_debug.h:62

References dbgTablet, and m_debugEnabled.

Member Data Documentation

◆ m_debugEnabled

bool KisTabletDebugger::m_debugEnabled
private

Definition at line 36 of file kis_tablet_debugger.h.

◆ m_shouldEatDriverShortcuts

bool KisTabletDebugger::m_shouldEatDriverShortcuts
private

Definition at line 37 of file kis_tablet_debugger.h.


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