QTabletEvent/manual widgets test: Port to C++ 11
Change-Id: If5ebb45ce286d6a96c9f8bfe1fac70661d065460 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
parent
c5b7a3c922
commit
dc03ac15b0
@ -63,46 +63,36 @@ class EventReportWidget : public QWidget
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
EventReportWidget();
|
EventReportWidget() { startTimer(1000); }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void clearPoints() { m_points.clear(); update(); }
|
void clearPoints() { m_points.clear(); update(); }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void stats(QString s);
|
void stats(QString s, int timeOut = 0);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void mouseDoubleClickEvent(QMouseEvent *event) { outputMouseEvent(event); }
|
void mouseDoubleClickEvent(QMouseEvent *event) override { outputMouseEvent(event); }
|
||||||
void mouseMoveEvent(QMouseEvent *event) { outputMouseEvent(event); }
|
void mouseMoveEvent(QMouseEvent *event) override { outputMouseEvent(event); }
|
||||||
void mousePressEvent(QMouseEvent *event) { outputMouseEvent(event); }
|
void mousePressEvent(QMouseEvent *event) override { outputMouseEvent(event); }
|
||||||
void mouseReleaseEvent(QMouseEvent *event) { outputMouseEvent(event); }
|
void mouseReleaseEvent(QMouseEvent *event) override { outputMouseEvent(event); }
|
||||||
|
|
||||||
void tabletEvent(QTabletEvent *);
|
void tabletEvent(QTabletEvent *) override;
|
||||||
|
|
||||||
void paintEvent(QPaintEvent *);
|
void paintEvent(QPaintEvent *) override;
|
||||||
void timerEvent(QTimerEvent *);
|
void timerEvent(QTimerEvent *) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void outputMouseEvent(QMouseEvent *event);
|
void outputMouseEvent(QMouseEvent *event);
|
||||||
|
|
||||||
bool m_lastIsMouseMove;
|
bool m_lastIsMouseMove = false;
|
||||||
bool m_lastIsTabletMove;
|
bool m_lastIsTabletMove = false;
|
||||||
Qt::MouseButton m_lastButton;
|
Qt::MouseButton m_lastButton = Qt::NoButton;
|
||||||
QVector<TabletPoint> m_points;
|
QVector<TabletPoint> m_points;
|
||||||
int m_tabletMoveCount;
|
int m_tabletMoveCount = 0;
|
||||||
int m_paintEventCount;
|
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 *)
|
void EventReportWidget::paintEvent(QPaintEvent *)
|
||||||
{
|
{
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
@ -114,7 +104,7 @@ void EventReportWidget::paintEvent(QPaintEvent *)
|
|||||||
p.setPen(Qt::white);
|
p.setPen(Qt::white);
|
||||||
QPainterPath ellipse;
|
QPainterPath ellipse;
|
||||||
ellipse.addEllipse(0, 0, halfLineSpacing * 5, halfLineSpacing);
|
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)) {
|
if (geom.contains(t.pos)) {
|
||||||
QPainterPath pp;
|
QPainterPath pp;
|
||||||
pp.addEllipse(t.pos, halfLineSpacing, halfLineSpacing);
|
pp.addEllipse(t.pos, halfLineSpacing, halfLineSpacing);
|
||||||
@ -218,10 +208,10 @@ int main(int argc, char *argv[])
|
|||||||
EventReportWidget *widget = new EventReportWidget;
|
EventReportWidget *widget = new EventReportWidget;
|
||||||
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()));
|
fileMenu->addAction("Clear", widget, &EventReportWidget::clearPoints);
|
||||||
QObject::connect(widget, SIGNAL(stats(QString)), mainWindow.statusBar(), SLOT(showMessage(QString)));
|
QObject::connect(widget, &EventReportWidget::stats,
|
||||||
QAction *quitAction = fileMenu->addAction("Quit");
|
mainWindow.statusBar(), &QStatusBar::showMessage);
|
||||||
QObject::connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
QAction *quitAction = fileMenu->addAction("Quit", qApp, &QCoreApplication::quit);
|
||||||
quitAction->setShortcut(Qt::CTRL + Qt::Key_Q);
|
quitAction->setShortcut(Qt::CTRL + Qt::Key_Q);
|
||||||
mainWindow.setCentralWidget(widget);
|
mainWindow.setCentralWidget(widget);
|
||||||
mainWindow.show();
|
mainWindow.show();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user