diff --git a/libs/ui/input/wintab/drawpile_tablettester/tablettest.cpp b/libs/ui/input/wintab/drawpile_tablettester/tablettest.cpp index aea2afe128..61a252b7a1 100644 --- a/libs/ui/input/wintab/drawpile_tablettester/tablettest.cpp +++ b/libs/ui/input/wintab/drawpile_tablettester/tablettest.cpp @@ -1,136 +1,144 @@ /* Drawpile - a collaborative drawing program. Copyright (C) 2017 Calle Laakkonen Drawpile is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Drawpile is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Drawpile. If not, see . */ #include "tablettest.h" +#include + #include #include TabletTester::TabletTester(QWidget *parent) : QWidget(parent), m_mouseDown(false), m_tabletDown(false) { } QSize TabletTester::sizeHint() const { return QSize(500, 200); } void TabletTester::clear() { m_mousePath.clear(); m_tabletPath.clear(); update(); } void TabletTester::paintEvent(QPaintEvent *e) { Q_UNUSED(e); const int w = width(); const int h = height(); QPainter p(this); p.fillRect(0, 0, w, h, QColor(200, 200, 200)); p.setPen(QColor(128, 128, 128)); // Draw grid for(int i=w/8;ix()).arg(e->y()).arg(e->button())); + Q_EMIT eventReport(i18nc("@info:status Tablet tester event (%1: X position, %2: Y position, %3: button number)", + "Mouse press: X = %1, Y = %2, B = %3", e->x(), e->y(), e->button())); m_mouseDown = true; m_mousePath.clear(); update(); } void TabletTester::mouseMoveEvent(QMouseEvent *e) { - Q_EMIT eventReport(QString("Mouse move X=%1 Y=%2 B=%3").arg(e->x()).arg(e->y()).arg(e->buttons())); + Q_EMIT eventReport(i18nc("@info:status Tablet tester event (%1: X position, %2: Y position, %3: button number)", + "Mouse move: X = %1, Y = %2, B = %3", e->x(), e->y(), e->buttons())); m_mousePath << e->pos(); update(); } void TabletTester::mouseReleaseEvent(QMouseEvent *e) { Q_UNUSED(e); - Q_EMIT eventReport(QString("Mouse release")); + Q_EMIT eventReport(i18nc("@info:status Tablet tester event", "Mouse release")); m_mouseDown = false; } void TabletTester::tabletEvent(QTabletEvent *e) { e->accept(); + QString deviceString; + QString actionString; QString msg; switch(e->device()) { - case QTabletEvent::Stylus: msg = "Stylus"; break; - default: msg = QString("Device(%1)").arg(e->device()); break; + case QTabletEvent::Stylus: deviceString = i18nc("@info:status Tablet tester input device", "Stylus"); break; + default: deviceString = i18nc("@info:status Tablet tester input device (%1: device name)", "Device (%1)", e->device()); break; } switch(e->type()) { case QEvent::TabletMove: - msg += " move"; + actionString = i18nc("@info:status Tablet tester event", "move"); break; case QEvent::TabletPress: - msg += " press"; + actionString = i18nc("@info:status Tablet tester event", "press"); m_tabletPath.clear(); m_tabletDown = true; break; case QEvent::TabletRelease: - msg += " release"; + actionString = i18nc("@info:status Tablet tester event", "release"); m_tabletDown = false; break; default: - msg += QString(" event-%1").arg(e->type()); + actionString = i18nc("@info:status Tablet tester event", "event %1", e->type()); break; } + msg = i18nc("@info:status Tablet tester event (%1: device, e.g. 'Stylus', %2: action, e.g. 'move')", "%1 %2:", deviceString, actionString); - msg += QString(" X=%1 Y=%2 B=%3 P=%4%") - .arg(e->posF().x(), 0, 'f', 2) - .arg(e->posF().y(), 0, 'f', 2) - .arg(e->buttons()) - .arg(e->pressure()*100, 0, 'f', 1) - ; + msg += i18nc("@info:status Tablet tester event parameters (%1: X position, %2: Y position, %3: button number, %4: stylus pressure)", + " X = %1, Y = %2, B = %3, P = %4%", + QString::number(e->posF().x(), 'f', 2), + QString::number(e->posF().y(), 'f', 2), + e->buttons(), + QString::number(e->pressure()*100, 'f', 1) + ); if(e->type() == QEvent::TabletMove) { if(m_tabletDown) { - msg += " (DRAW)"; + msg += i18nc("@info:status Tablet tester event (device action appended to event string)", " (DRAW)"); m_tabletPath << e->pos(); update(); } else { - msg += " (HOVER)"; + msg += i18nc("@info:status Tablet tester event (device action appended to event string)"," (HOVER)"); } } Q_EMIT eventReport(msg); } diff --git a/libs/ui/input/wintab/drawpile_tablettester/tablettester.cpp b/libs/ui/input/wintab/drawpile_tablettester/tablettester.cpp index 5a4c566436..48b55a580f 100644 --- a/libs/ui/input/wintab/drawpile_tablettester/tablettester.cpp +++ b/libs/ui/input/wintab/drawpile_tablettester/tablettester.cpp @@ -1,66 +1,66 @@ /* Drawpile - a collaborative drawing program. Copyright (C) 2017 Calle Laakkonen Drawpile is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Drawpile is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Drawpile. If not, see . */ #include "tablettester.h" #include "tablettest.h" #include "ui_tablettest.h" TabletTestDialog::TabletTestDialog(QWidget *parent) : KoDialog(parent, Qt::Dialog) { setCaption(i18n("Tablet Tester")); QWidget *page = new QWidget(this); m_ui = new Ui_TabletTest; m_ui->setupUi(page); setMainWidget(page); setButtons(KoDialog::Close); qApp->installEventFilter(this); } TabletTestDialog::~TabletTestDialog() { qApp->removeEventFilter(this); delete m_ui; } bool TabletTestDialog::eventFilter(QObject *watched, QEvent *e) { Q_UNUSED(watched); if(e->type() == QEvent::TabletEnterProximity || e->type() == QEvent::TabletLeaveProximity) { QTabletEvent *te = static_cast(e); bool isEraser = te->pointerType() == QTabletEvent::Eraser; bool isNear = e->type() == QEvent::TabletEnterProximity; QString msg; if(isEraser) { if (isNear) { - msg = QStringLiteral("Eraser brought near"); + msg = i18nc("@info:status Tablet tester event","Eraser brought near"); } else { - msg = QStringLiteral("Eraser taken away"); + msg = i18nc("@info:status Tablet tester event","Eraser taken away"); } } else { if (isNear) { - msg = QStringLiteral("Pen tip brought near"); + msg = i18nc("@info:status Tablet tester event","Pen tip brought near"); } else { - msg = QStringLiteral("Pen tip taken away"); + msg = i18nc("@info:status Tablet tester event","Pen tip taken away"); } } m_ui->logView->appendPlainText(msg); } return QDialog::eventFilter(watched, e); }