From fca727c191576266be43355593e05953d42b7cf2 Mon Sep 17 00:00:00 2001 From: Clayton Groeneveld Date: Sat, 11 Jun 2022 13:11:27 -0500 Subject: [PATCH] UI: Add eventFilter to media slider When pressing the up and down arrows or moving the mouse wheel for the media slider, the slider would move. --- UI/media-slider.cpp | 18 ++++++++++++++++++ UI/media-slider.hpp | 1 + 2 files changed, 19 insertions(+) diff --git a/UI/media-slider.cpp b/UI/media-slider.cpp index c85d7622f..4690960da 100644 --- a/UI/media-slider.cpp +++ b/UI/media-slider.cpp @@ -4,6 +4,7 @@ MediaSlider::MediaSlider(QWidget *parent) : SliderIgnoreScroll(parent) { + installEventFilter(this); setMouseTracking(true); QString styleName = style()->objectName(); @@ -32,3 +33,20 @@ void MediaSlider::mouseMoveEvent(QMouseEvent *event) event->accept(); QSlider::mouseMoveEvent(event); } + +bool MediaSlider::eventFilter(QObject *obj, QEvent *event) +{ + if (event->type() == QEvent::KeyPress) { + QKeyEvent *keyEvent = static_cast(event); + + if (keyEvent->key() == Qt::Key_Up || + keyEvent->key() == Qt::Key_Down) { + return true; + } + } + + if (event->type() == QEvent::Wheel) + return true; + + return QSlider::eventFilter(obj, event); +} diff --git a/UI/media-slider.hpp b/UI/media-slider.hpp index caed5abf9..e29ea9f34 100644 --- a/UI/media-slider.hpp +++ b/UI/media-slider.hpp @@ -14,4 +14,5 @@ signals: protected: virtual void mouseMoveEvent(QMouseEvent *event) override; + virtual bool eventFilter(QObject *obj, QEvent *event) override; };