QTabletEvent manual test: show events/sec and frames/sec, proximity
Task-number: QTBUG-47464 Change-Id: I476586bb15dd5113cf6463b1dc6f05e5bb26127a Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
This commit is contained in:
parent
06a469b2ff
commit
08de828a11
@ -39,6 +39,7 @@
|
|||||||
#include <QMenuBar>
|
#include <QMenuBar>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
#include <QStatusBar>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QCursor>
|
#include <QCursor>
|
||||||
@ -72,6 +73,9 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void clearPoints() { m_points.clear(); update(); }
|
void clearPoints() { m_points.clear(); update(); }
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void stats(QString s);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void mouseDoubleClickEvent(QMouseEvent *event) { outputMouseEvent(event); }
|
void mouseDoubleClickEvent(QMouseEvent *event) { outputMouseEvent(event); }
|
||||||
void mouseMoveEvent(QMouseEvent *event) { outputMouseEvent(event); }
|
void mouseMoveEvent(QMouseEvent *event) { outputMouseEvent(event); }
|
||||||
@ -81,6 +85,7 @@ protected:
|
|||||||
void tabletEvent(QTabletEvent *);
|
void tabletEvent(QTabletEvent *);
|
||||||
|
|
||||||
void paintEvent(QPaintEvent *);
|
void paintEvent(QPaintEvent *);
|
||||||
|
void timerEvent(QTimerEvent *);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void outputMouseEvent(QMouseEvent *event);
|
void outputMouseEvent(QMouseEvent *event);
|
||||||
@ -89,13 +94,19 @@ private:
|
|||||||
bool m_lastIsTabletMove;
|
bool m_lastIsTabletMove;
|
||||||
Qt::MouseButton m_lastButton;
|
Qt::MouseButton m_lastButton;
|
||||||
QVector<TabletPoint> m_points;
|
QVector<TabletPoint> m_points;
|
||||||
|
int m_tabletMoveCount;
|
||||||
|
int m_paintEventCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
EventReportWidget::EventReportWidget()
|
EventReportWidget::EventReportWidget()
|
||||||
: m_lastIsMouseMove(false)
|
: m_lastIsMouseMove(false)
|
||||||
, m_lastIsTabletMove(false)
|
, m_lastIsTabletMove(false)
|
||||||
, m_lastButton(Qt::NoButton)
|
, m_lastButton(Qt::NoButton)
|
||||||
{ }
|
, m_tabletMoveCount(0)
|
||||||
|
, m_paintEventCount(0)
|
||||||
|
{
|
||||||
|
startTimer(1000);
|
||||||
|
}
|
||||||
|
|
||||||
void EventReportWidget::paintEvent(QPaintEvent *)
|
void EventReportWidget::paintEvent(QPaintEvent *)
|
||||||
{
|
{
|
||||||
@ -145,6 +156,7 @@ void EventReportWidget::paintEvent(QPaintEvent *)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
++m_paintEventCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventReportWidget::tabletEvent(QTabletEvent *event)
|
void EventReportWidget::tabletEvent(QTabletEvent *event)
|
||||||
@ -154,11 +166,13 @@ void EventReportWidget::tabletEvent(QTabletEvent *event)
|
|||||||
switch (event->type()) {
|
switch (event->type()) {
|
||||||
case QEvent::TabletEnterProximity:
|
case QEvent::TabletEnterProximity:
|
||||||
case QEvent::TabletLeaveProximity:
|
case QEvent::TabletLeaveProximity:
|
||||||
|
qDebug() << "proximity" << event;
|
||||||
break;
|
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();
|
||||||
isMove = true;
|
isMove = true;
|
||||||
|
++m_tabletMoveCount;
|
||||||
break;
|
break;
|
||||||
case QEvent::TabletPress:
|
case QEvent::TabletPress:
|
||||||
m_points.push_back(TabletPoint(event->pos(), TabletButtonPress, event->button(), event->pointerType(), event->rotation()));
|
m_points.push_back(TabletPoint(event->pos(), TabletButtonPress, event->button(), event->pointerType(), event->rotation()));
|
||||||
@ -194,6 +208,13 @@ void EventReportWidget::outputMouseEvent(QMouseEvent *event)
|
|||||||
qDebug() << event;
|
qDebug() << event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EventReportWidget::timerEvent(QTimerEvent *)
|
||||||
|
{
|
||||||
|
emit stats(QString("%1 moves/sec, %2 frames/sec").arg(m_tabletMoveCount).arg(m_paintEventCount));
|
||||||
|
m_tabletMoveCount = 0;
|
||||||
|
m_paintEventCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
@ -203,6 +224,7 @@ int main(int argc, char *argv[])
|
|||||||
widget->setMinimumSize(640, 480);
|
widget->setMinimumSize(640, 480);
|
||||||
QMenu *fileMenu = mainWindow.menuBar()->addMenu("File");
|
QMenu *fileMenu = mainWindow.menuBar()->addMenu("File");
|
||||||
QObject::connect(fileMenu->addAction("Clear"), SIGNAL(triggered()), widget, SLOT(clearPoints()));
|
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");
|
QAction *quitAction = fileMenu->addAction("Quit");
|
||||||
QObject::connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
QObject::connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
||||||
quitAction->setShortcut(Qt::CTRL + Qt::Key_Q);
|
quitAction->setShortcut(Qt::CTRL + Qt::Key_Q);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user