summaryrefslogtreecommitdiffstats
path: root/tests/manual/qtabletevent/regular_widgets/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/qtabletevent/regular_widgets/main.cpp')
-rw-r--r--tests/manual/qtabletevent/regular_widgets/main.cpp72
1 files changed, 39 insertions, 33 deletions
diff --git a/tests/manual/qtabletevent/regular_widgets/main.cpp b/tests/manual/qtabletevent/regular_widgets/main.cpp
index fd3c385b97..339d1d3633 100644
--- a/tests/manual/qtabletevent/regular_widgets/main.cpp
+++ b/tests/manual/qtabletevent/regular_widgets/main.cpp
@@ -59,50 +59,59 @@ 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
public:
- EventReportWidget();
+ EventReportWidget() { startTimer(1000); }
public slots:
void clearPoints() { m_points.clear(); update(); }
signals:
- void stats(QString s);
+ void stats(QString s, int timeOut = 0);
protected:
- void mouseDoubleClickEvent(QMouseEvent *event) { outputMouseEvent(event); }
- void mouseMoveEvent(QMouseEvent *event) { outputMouseEvent(event); }
- void mousePressEvent(QMouseEvent *event) { outputMouseEvent(event); }
- void mouseReleaseEvent(QMouseEvent *event) { outputMouseEvent(event); }
+ void mouseDoubleClickEvent(QMouseEvent *event) override { outputMouseEvent(event); }
+ void mouseMoveEvent(QMouseEvent *event) override { outputMouseEvent(event); }
+ void mousePressEvent(QMouseEvent *event) override { outputMouseEvent(event); }
+ void mouseReleaseEvent(QMouseEvent *event) override { outputMouseEvent(event); }
- void tabletEvent(QTabletEvent *);
+ void tabletEvent(QTabletEvent *) override;
- void paintEvent(QPaintEvent *);
- void timerEvent(QTimerEvent *);
+ void paintEvent(QPaintEvent *) override;
+ void timerEvent(QTimerEvent *) override;
private:
void outputMouseEvent(QMouseEvent *event);
- bool m_lastIsMouseMove;
- bool m_lastIsTabletMove;
- Qt::MouseButton m_lastButton;
+ bool m_lastIsMouseMove = false;
+ bool m_lastIsTabletMove = false;
+ Qt::MouseButton m_lastButton = Qt::NoButton;
QVector<TabletPoint> m_points;
- int m_tabletMoveCount;
- int m_paintEventCount;
+ int m_tabletMoveCount = 0;
+ int m_paintEventCount = 0;
};
-EventReportWidget::EventReportWidget()
- : m_lastIsMouseMove(false)
- , m_lastIsTabletMove(false)
- , m_lastButton(Qt::NoButton)
- , m_tabletMoveCount(0)
- , m_paintEventCount(0)
-{
- startTimer(1000);
-}
-
void EventReportWidget::paintEvent(QPaintEvent *)
{
QPainter p(this);
@@ -114,7 +123,7 @@ void EventReportWidget::paintEvent(QPaintEvent *)
p.setPen(Qt::white);
QPainterPath ellipse;
ellipse.addEllipse(0, 0, halfLineSpacing * 5, halfLineSpacing);
- foreach (const TabletPoint &t, m_points) {
+ for (const TabletPoint &t : qAsConst(m_points)) {
if (geom.contains(t.pos)) {
QPainterPath pp;
pp.addEllipse(t.pos, halfLineSpacing, halfLineSpacing);
@@ -159,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();
@@ -213,15 +218,16 @@ 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;
widget->setMinimumSize(640, 480);
QMenu *fileMenu = mainWindow.menuBar()->addMenu("File");
- QObject::connect(fileMenu->addAction("Clear"), SIGNAL(triggered()), widget, SLOT(clearPoints()));
- QObject::connect(widget, SIGNAL(stats(QString)), mainWindow.statusBar(), SLOT(showMessage(QString)));
- QAction *quitAction = fileMenu->addAction("Quit");
- QObject::connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
+ fileMenu->addAction("Clear", widget, &EventReportWidget::clearPoints);
+ QObject::connect(widget, &EventReportWidget::stats,
+ mainWindow.statusBar(), &QStatusBar::showMessage);
+ QAction *quitAction = fileMenu->addAction("Quit", qApp, &QCoreApplication::quit);
quitAction->setShortcut(Qt::CTRL + Qt::Key_Q);
mainWindow.setCentralWidget(widget);
mainWindow.show();