Replaced InputEventFilter by InputEventSpy in DebugConsole

Summary:
As explained in 84e3308149
the DebugConsole should use an InputEventSpy instead of an InputEventFilter.

Reviewers: kwin, graesslin

Reviewed By: graesslin

Subscribers: graesslin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D3879
This commit is contained in:
Martina Flöser 2017-01-01 19:06:04 +01:00 committed by Martin Gräßlin
parent a9ac70f007
commit 9cc7d12158
2 changed files with 45 additions and 59 deletions

View file

@ -170,14 +170,14 @@ static const QString s_tableStart = QStringLiteral("<table>");
static const QString s_tableEnd = QStringLiteral("</table>");
DebugConsoleFilter::DebugConsoleFilter(QTextEdit *textEdit)
: InputEventFilter()
: InputEventSpy()
, m_textEdit(textEdit)
{
}
DebugConsoleFilter::~DebugConsoleFilter() = default;
bool DebugConsoleFilter::pointerEvent(QMouseEvent *event, quint32 nativeButton)
void DebugConsoleFilter::pointerEvent(MouseEvent *event)
{
QString text = s_hr;
const QString timestamp = timestampRow(event->timestamp());
@ -186,21 +186,20 @@ bool DebugConsoleFilter::pointerEvent(QMouseEvent *event, quint32 nativeButton)
switch (event->type()) {
case QEvent::MouseMove: {
text.append(tableHeaderRow(i18nc("A mouse pointer motion event", "Pointer Motion")));
auto e = static_cast<MouseEvent*>(event);
#if HAVE_INPUT
text.append(deviceRow(e->device()));
text.append(deviceRow(event->device()));
#endif
text.append(timestamp);
if (e->timestampMicroseconds() != 0) {
text.append(timestampRowUsec(e->timestampMicroseconds()));
if (event->timestampMicroseconds() != 0) {
text.append(timestampRowUsec(event->timestampMicroseconds()));
}
if (e->delta() != QSizeF()) {
if (event->delta() != QSizeF()) {
text.append(tableRow(i18nc("The relative mouse movement", "Delta"),
QStringLiteral("%1/%2").arg(e->delta().width()).arg(e->delta().height())));
QStringLiteral("%1/%2").arg(event->delta().width()).arg(event->delta().height())));
}
if (e->deltaUnaccelerated() != QSizeF()) {
if (event->deltaUnaccelerated() != QSizeF()) {
text.append(tableRow(i18nc("The relative mouse movement", "Delta (not accelerated)"),
QStringLiteral("%1/%2").arg(e->deltaUnaccelerated().width()).arg(e->deltaUnaccelerated().height())));
QStringLiteral("%1/%2").arg(event->deltaUnaccelerated().width()).arg(event->deltaUnaccelerated().height())));
}
text.append(tableRow(i18nc("The global mouse pointer position", "Global Position"), QStringLiteral("%1/%2").arg(event->pos().x()).arg(event->pos().y())));
break;
@ -208,21 +207,21 @@ bool DebugConsoleFilter::pointerEvent(QMouseEvent *event, quint32 nativeButton)
case QEvent::MouseButtonPress:
text.append(tableHeaderRow(i18nc("A mouse pointer button press event", "Pointer Button Press")));
#if HAVE_INPUT
text.append(deviceRow(static_cast<MouseEvent*>(event)->device()));
text.append(deviceRow(event->device()));
#endif
text.append(timestamp);
text.append(tableRow(i18nc("A button in a mouse press/release event", "Button"), buttonToString(event->button())));
text.append(tableRow(i18nc("A button in a mouse press/release event", "Native Button code"), nativeButton));
text.append(tableRow(i18nc("A button in a mouse press/release event", "Native Button code"), event->nativeButton()));
text.append(tableRow(i18nc("All currently pressed buttons in a mouse press/release event", "Pressed Buttons"), buttonsToString(event->buttons())));
break;
case QEvent::MouseButtonRelease:
text.append(tableHeaderRow(i18nc("A mouse pointer button release event", "Pointer Button Release")));
#if HAVE_INPUT
text.append(deviceRow(static_cast<MouseEvent*>(event)->device()));
text.append(deviceRow(event->device()));
#endif
text.append(timestamp);
text.append(tableRow(i18nc("A button in a mouse press/release event", "Button"), buttonToString(event->button())));
text.append(tableRow(i18nc("A button in a mouse press/release event", "Native Button code"), nativeButton));
text.append(tableRow(i18nc("A button in a mouse press/release event", "Native Button code"), event->nativeButton()));
text.append(tableRow(i18nc("All currently pressed buttons in a mouse press/release event", "Pressed Buttons"), buttonsToString(event->buttons())));
break;
default:
@ -232,16 +231,15 @@ bool DebugConsoleFilter::pointerEvent(QMouseEvent *event, quint32 nativeButton)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::wheelEvent(QWheelEvent *event)
void DebugConsoleFilter::wheelEvent(WheelEvent *event)
{
QString text = s_hr;
text.append(s_tableStart);
text.append(tableHeaderRow(i18nc("A mouse pointer axis (wheel) event", "Pointer Axis")));
#if HAVE_INPUT
text.append(deviceRow(static_cast<WheelEvent*>(event)->device()));
text.append(deviceRow(event->device()));
#endif
text.append(timestampRow(event->timestamp()));
const Qt::Orientation orientation = event->angleDelta().x() == 0 ? Qt::Vertical : Qt::Horizontal;
@ -253,10 +251,9 @@ bool DebugConsoleFilter::wheelEvent(QWheelEvent *event)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::keyEvent(QKeyEvent *event)
void DebugConsoleFilter::keyEvent(KeyEvent *event)
{
QString text = s_hr;
text.append(s_tableStart);
@ -272,7 +269,7 @@ bool DebugConsoleFilter::keyEvent(QKeyEvent *event)
break;
}
#if HAVE_INPUT
text.append(deviceRow(static_cast<KeyEvent*>(event)->device()));
text.append(deviceRow(event->device()));
#endif
auto modifiersToString = [event] {
QString ret;
@ -313,10 +310,9 @@ bool DebugConsoleFilter::keyEvent(QKeyEvent *event)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::touchDown(quint32 id, const QPointF &pos, quint32 time)
void DebugConsoleFilter::touchDown(quint32 id, const QPointF &pos, quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -329,10 +325,9 @@ bool DebugConsoleFilter::touchDown(quint32 id, const QPointF &pos, quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::touchMotion(quint32 id, const QPointF &pos, quint32 time)
void DebugConsoleFilter::touchMotion(quint32 id, const QPointF &pos, quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -345,10 +340,9 @@ bool DebugConsoleFilter::touchMotion(quint32 id, const QPointF &pos, quint32 tim
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::touchUp(quint32 id, quint32 time)
void DebugConsoleFilter::touchUp(quint32 id, quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -359,10 +353,9 @@ bool DebugConsoleFilter::touchUp(quint32 id, quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::pinchGestureBegin(int fingerCount, quint32 time)
void DebugConsoleFilter::pinchGestureBegin(int fingerCount, quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -373,10 +366,9 @@ bool DebugConsoleFilter::pinchGestureBegin(int fingerCount, quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::pinchGestureUpdate(qreal scale, qreal angleDelta, const QSizeF &delta, quint32 time)
void DebugConsoleFilter::pinchGestureUpdate(qreal scale, qreal angleDelta, const QSizeF &delta, quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -390,10 +382,9 @@ bool DebugConsoleFilter::pinchGestureUpdate(qreal scale, qreal angleDelta, const
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::pinchGestureEnd(quint32 time)
void DebugConsoleFilter::pinchGestureEnd(quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -403,10 +394,9 @@ bool DebugConsoleFilter::pinchGestureEnd(quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::pinchGestureCancelled(quint32 time)
void DebugConsoleFilter::pinchGestureCancelled(quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -416,10 +406,9 @@ bool DebugConsoleFilter::pinchGestureCancelled(quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::swipeGestureBegin(int fingerCount, quint32 time)
void DebugConsoleFilter::swipeGestureBegin(int fingerCount, quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -430,10 +419,9 @@ bool DebugConsoleFilter::swipeGestureBegin(int fingerCount, quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::swipeGestureUpdate(const QSizeF &delta, quint32 time)
void DebugConsoleFilter::swipeGestureUpdate(const QSizeF &delta, quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -445,10 +433,9 @@ bool DebugConsoleFilter::swipeGestureUpdate(const QSizeF &delta, quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::swipeGestureEnd(quint32 time)
void DebugConsoleFilter::swipeGestureEnd(quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -458,10 +445,9 @@ bool DebugConsoleFilter::swipeGestureEnd(quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
bool DebugConsoleFilter::swipeGestureCancelled(quint32 time)
void DebugConsoleFilter::swipeGestureCancelled(quint32 time)
{
QString text = s_hr;
text.append(s_tableStart);
@ -471,7 +457,6 @@ bool DebugConsoleFilter::swipeGestureCancelled(quint32 time)
m_textEdit->insertHtml(text);
m_textEdit->ensureCursorVisible();
return false;
}
DebugConsole::DebugConsole()
@ -507,7 +492,7 @@ DebugConsole::DebugConsole()
// delay creation of input event filter until the tab is selected
if (index == 2 && m_inputFilter.isNull()) {
m_inputFilter.reset(new DebugConsoleFilter(m_ui->inputTextEdit));
input()->prepandInputEventFilter(m_inputFilter.data());
input()->installInputEventSpy(m_inputFilter.data());
}
if (index == 5) {
updateKeyboardTab();

View file

@ -23,6 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <kwin_export.h>
#include <config-kwin.h>
#include "input.h"
#include "input_event_spy.h"
#include <QAbstractItemModel>
#include <QStyledItemDelegate>
@ -126,28 +127,28 @@ public:
QModelIndex parent(const QModelIndex &child) const override;
};
class DebugConsoleFilter : public InputEventFilter
class DebugConsoleFilter : public InputEventSpy
{
public:
explicit DebugConsoleFilter(QTextEdit *textEdit);
virtual ~DebugConsoleFilter();
bool pointerEvent(QMouseEvent *event, quint32 nativeButton) override;
bool wheelEvent(QWheelEvent *event) override;
bool keyEvent(QKeyEvent *event) override;
bool touchDown(quint32 id, const QPointF &pos, quint32 time) override;
bool touchMotion(quint32 id, const QPointF &pos, quint32 time) override;
bool touchUp(quint32 id, quint32 time) override;
void pointerEvent(MouseEvent *event) override;
void wheelEvent(WheelEvent *event) override;
void keyEvent(KeyEvent *event) override;
void touchDown(quint32 id, const QPointF &pos, quint32 time) override;
void touchMotion(quint32 id, const QPointF &pos, quint32 time) override;
void touchUp(quint32 id, quint32 time) override;
bool pinchGestureBegin(int fingerCount, quint32 time) override;
bool pinchGestureUpdate(qreal scale, qreal angleDelta, const QSizeF &delta, quint32 time) override;
bool pinchGestureEnd(quint32 time) override;
bool pinchGestureCancelled(quint32 time) override;
void pinchGestureBegin(int fingerCount, quint32 time) override;
void pinchGestureUpdate(qreal scale, qreal angleDelta, const QSizeF &delta, quint32 time) override;
void pinchGestureEnd(quint32 time) override;
void pinchGestureCancelled(quint32 time) override;
bool swipeGestureBegin(int fingerCount, quint32 time) override;
bool swipeGestureUpdate(const QSizeF &delta, quint32 time) override;
bool swipeGestureEnd(quint32 time) override;
bool swipeGestureCancelled(quint32 time) override;
void swipeGestureBegin(int fingerCount, quint32 time) override;
void swipeGestureUpdate(const QSizeF &delta, quint32 time) override;
void swipeGestureEnd(quint32 time) override;
void swipeGestureCancelled(quint32 time) override;
private:
QTextEdit *m_textEdit;