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;
|
||||
};
|
||||
|
||||
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
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -149,10 +168,6 @@ void EventReportWidget::tabletEvent(QTabletEvent *event)
|
||||
QWidget::tabletEvent(event);
|
||||
bool isMove = false;
|
||||
switch (event->type()) {
|
||||
case QEvent::TabletEnterProximity:
|
||||
case QEvent::TabletLeaveProximity:
|
||||
qDebug() << "proximity" << event;
|
||||
break;
|
||||
case QEvent::TabletMove:
|
||||
m_points.push_back(TabletPoint(event->pos(), TabletMove, m_lastButton, event->pointerType(), event->pressure(), event->rotation()));
|
||||
update();
|
||||
@ -203,6 +218,7 @@ void EventReportWidget::timerEvent(QTimerEvent *)
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
app.installEventFilter(new ProximityEventFilter(&app));
|
||||
QMainWindow mainWindow;
|
||||
mainWindow.setWindowTitle(QString::fromLatin1("Tablet Test %1").arg(QT_VERSION_STR));
|
||||
EventReportWidget *widget = new EventReportWidget;
|
||||
|
Loading…
x
Reference in New Issue
Block a user