QTabletEvent/manual widgets test: Fix reporting of proximity events
Proximit events are sent to the QGuiApplication, catch them via event filter. Change-Id: I7f896e7d9f5c90347b9e3c708feb69abd1c5fc95 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
parent
dc03ac15b0
commit
3760bc7590
@ -59,6 +59,25 @@ struct TabletPoint
|
|||||||
qreal angle;
|
qreal angle;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class ProximityEventFilter : public QObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit ProximityEventFilter(QObject *parent) : QObject(parent) { }
|
||||||
|
|
||||||
|
bool eventFilter(QObject *, QEvent *event) override
|
||||||
|
{
|
||||||
|
switch (event->type()) {
|
||||||
|
case QEvent::TabletEnterProximity:
|
||||||
|
case QEvent::TabletLeaveProximity:
|
||||||
|
qDebug() << event;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class EventReportWidget : public QWidget
|
class EventReportWidget : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -149,10 +168,6 @@ void EventReportWidget::tabletEvent(QTabletEvent *event)
|
|||||||
QWidget::tabletEvent(event);
|
QWidget::tabletEvent(event);
|
||||||
bool isMove = false;
|
bool isMove = false;
|
||||||
switch (event->type()) {
|
switch (event->type()) {
|
||||||
case QEvent::TabletEnterProximity:
|
|
||||||
case QEvent::TabletLeaveProximity:
|
|
||||||
qDebug() << "proximity" << event;
|
|
||||||
break;
|
|
||||||
case QEvent::TabletMove:
|
case QEvent::TabletMove:
|
||||||
m_points.push_back(TabletPoint(event->pos(), TabletMove, m_lastButton, event->pointerType(), event->pressure(), event->rotation()));
|
m_points.push_back(TabletPoint(event->pos(), TabletMove, m_lastButton, event->pointerType(), event->pressure(), event->rotation()));
|
||||||
update();
|
update();
|
||||||
@ -203,6 +218,7 @@ void EventReportWidget::timerEvent(QTimerEvent *)
|
|||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
app.installEventFilter(new ProximityEventFilter(&app));
|
||||||
QMainWindow mainWindow;
|
QMainWindow mainWindow;
|
||||||
mainWindow.setWindowTitle(QString::fromLatin1("Tablet Test %1").arg(QT_VERSION_STR));
|
mainWindow.setWindowTitle(QString::fromLatin1("Tablet Test %1").arg(QT_VERSION_STR));
|
||||||
EventReportWidget *widget = new EventReportWidget;
|
EventReportWidget *widget = new EventReportWidget;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user