2019-04-07 00:56:52 +00:00
|
|
|
#include "slider-ignorewheel.hpp"
|
|
|
|
|
|
|
|
SliderIgnoreScroll::SliderIgnoreScroll(QWidget *parent) : QSlider(parent)
|
|
|
|
{
|
|
|
|
setFocusPolicy(Qt::StrongFocus);
|
|
|
|
}
|
|
|
|
|
2019-04-19 02:02:35 +00:00
|
|
|
SliderIgnoreScroll::SliderIgnoreScroll(Qt::Orientation orientation,
|
|
|
|
QWidget *parent)
|
|
|
|
: QSlider(parent)
|
|
|
|
{
|
|
|
|
setFocusPolicy(Qt::StrongFocus);
|
|
|
|
setOrientation(orientation);
|
|
|
|
}
|
|
|
|
|
2019-04-21 11:05:51 +00:00
|
|
|
void SliderIgnoreScroll::wheelEvent(QWheelEvent *event)
|
2019-04-07 00:56:52 +00:00
|
|
|
{
|
|
|
|
if (!hasFocus())
|
|
|
|
event->ignore();
|
|
|
|
else
|
|
|
|
QSlider::wheelEvent(event);
|
|
|
|
}
|
2020-11-25 09:45:28 +00:00
|
|
|
|
2023-02-23 18:37:03 +00:00
|
|
|
void SliderIgnoreClick::mousePressEvent(QMouseEvent *event)
|
|
|
|
{
|
|
|
|
QStyleOptionSlider styleOption;
|
|
|
|
initStyleOption(&styleOption);
|
|
|
|
QRect handle = style()->subControlRect(QStyle::CC_Slider, &styleOption,
|
|
|
|
QStyle::SC_SliderHandle, this);
|
2023-06-10 15:36:11 +00:00
|
|
|
if (handle.contains(event->position().toPoint())) {
|
2023-02-23 18:37:03 +00:00
|
|
|
SliderIgnoreScroll::mousePressEvent(event);
|
|
|
|
dragging = true;
|
|
|
|
} else {
|
|
|
|
event->accept();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void SliderIgnoreClick::mouseReleaseEvent(QMouseEvent *event)
|
|
|
|
{
|
|
|
|
dragging = false;
|
|
|
|
SliderIgnoreScroll::mouseReleaseEvent(event);
|
|
|
|
}
|
|
|
|
|
|
|
|
void SliderIgnoreClick::mouseMoveEvent(QMouseEvent *event)
|
|
|
|
{
|
|
|
|
if (dragging) {
|
|
|
|
SliderIgnoreScroll::mouseMoveEvent(event);
|
|
|
|
} else {
|
|
|
|
event->accept();
|
|
|
|
}
|
|
|
|
}
|