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);
}