File indexing completed on 2025-04-27 04:09:17

0001 /*
0002    Drawpile - a collaborative drawing program.
0003 
0004    SPDX-FileCopyrightText: 2017 Calle Laakkonen
0005 
0006    SPDX-License-Identifier: GPL-3.0-or-later
0007 */
0008 
0009 #include "tablettester.h"
0010 #include "tablettest.h"
0011 #include "ui_tablettest.h"
0012 
0013 TabletTestDialog::TabletTestDialog(QWidget *parent)
0014     : KoDialog(parent, Qt::Dialog)
0015 {
0016     setCaption(i18n("Tablet Tester"));
0017     QWidget *page = new QWidget(this);
0018     m_ui = new Ui_TabletTest;
0019     m_ui->setupUi(page);
0020     setMainWidget(page);
0021     setButtons(KoDialog::Close);
0022     qApp->installEventFilter(this);
0023 
0024     m_ui->logView->appendPlainText(
0025                 "## Legend:\n"
0026                 "# X,Y - event coordinate\n"
0027                 "# B - buttons pressed\n"
0028                 "# P - pressure\n"
0029                 "# TX,TY - tilt\n"
0030                 "# S - speed\n"
0031                 "\n");
0032 }
0033 
0034 TabletTestDialog::~TabletTestDialog()
0035 {
0036     qApp->removeEventFilter(this);
0037     delete m_ui;
0038 }
0039 
0040 bool TabletTestDialog::eventFilter(QObject *watched, QEvent *e) {
0041     Q_UNUSED(watched);
0042     if(e->type() == QEvent::TabletEnterProximity || e->type() == QEvent::TabletLeaveProximity) {
0043         QTabletEvent *te = static_cast<QTabletEvent*>(e);
0044         bool isEraser = te->pointerType() == QTabletEvent::Eraser;
0045         bool isNear = e->type() == QEvent::TabletEnterProximity;
0046         QString msg;
0047         if(isEraser) {
0048             if (isNear) {
0049                 msg = QStringLiteral("Eraser brought near");
0050             } else {
0051                 msg = QStringLiteral("Eraser taken away");
0052             }
0053         } else {
0054             if (isNear) {
0055                 msg = QStringLiteral("Pen tip brought near");
0056             } else {
0057                 msg = QStringLiteral("Pen tip taken away");
0058             }
0059         }
0060 
0061         m_ui->logView->appendPlainText(msg);
0062     }
0063     return QDialog::eventFilter(watched, e);
0064 }