#include "MouseEventSpy.h" #include #include void MouseEventSpy::init() { instance(); } MouseEventSpy* MouseEventSpy::instance() { static MouseEventSpy* inst; if (!inst) { inst = new MouseEventSpy(); QGuiApplication* app = qGuiApp; app->installEventFilter(inst); } return inst; } bool MouseEventSpy::eventFilter(QObject* watched, QEvent* event) { QEvent::Type t = event->type(); if (isMouseEvent(t) && event->spontaneous() // Take only mouse events from outside of Qt ) { emit mouseEventDetected(); } return QObject::eventFilter(watched, event); } bool MouseEventSpy::isMouseEvent(QEvent::Type t) { return (t == QEvent::MouseButtonDblClick || t == QEvent::MouseButtonPress || t == QEvent::MouseButtonRelease || t == QEvent::MouseMove); }