From 8380edc00c7eb1d3b24dd3615b91d670c10ee801 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 13 Jan 2017 15:22:08 +0800 Subject: [PATCH] For each cell setting ignore wheel events. Closes #866. --- src/gui/advancedsettings.cpp | 4 ++++ src/gui/advancedsettings.h | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/gui/advancedsettings.cpp b/src/gui/advancedsettings.cpp index c6d850991..20a9ee0a8 100644 --- a/src/gui/advancedsettings.cpp +++ b/src/gui/advancedsettings.cpp @@ -391,6 +391,10 @@ void AdvancedSettings::loadAdvancedSettings() template void AdvancedSettings::addRow(int row, const QString &rowText, T* widget) { + // ignore mouse wheel event + static WheelEventEater filter; + widget->installEventFilter(&filter); + setItem(row, PROPERTY, new QTableWidgetItem(rowText)); setCellWidget(row, VALUE, widget); diff --git a/src/gui/advancedsettings.h b/src/gui/advancedsettings.h index 74fc45fab..7f4ba70cb 100644 --- a/src/gui/advancedsettings.h +++ b/src/gui/advancedsettings.h @@ -29,6 +29,7 @@ #ifndef ADVANCEDSETTINGS_H #define ADVANCEDSETTINGS_H +#include #include #include #include @@ -37,6 +38,22 @@ #include +class WheelEventEater: public QObject +{ + Q_OBJECT + +private: + bool eventFilter(QObject *obj, QEvent *event) + { + switch (event->type()) { + case QEvent::Wheel: + return true; + default: + return QObject::eventFilter(obj, event); + } + } +}; + class AdvancedSettings: public QTableWidget { Q_OBJECT