lena_pi/LenaPi/MouseEventSpy.cpp
2021-08-28 14:08:02 +02:00

44 lines
913 B
C++

#include "MouseEventSpy.h"
#include <QGuiApplication>
#include <QDebug>
void MouseEventSpy::init()
{
instance();
}
MouseEventSpy* MouseEventSpy::instance()
{
static MouseEventSpy* inst;
if (inst == nullptr)
{
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);
}