mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-20 01:59:17 +00:00
52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
#include "slider-ignorewheel.hpp"
|
|
|
|
SliderIgnoreScroll::SliderIgnoreScroll(QWidget *parent) : QSlider(parent)
|
|
{
|
|
setFocusPolicy(Qt::StrongFocus);
|
|
}
|
|
|
|
SliderIgnoreScroll::SliderIgnoreScroll(Qt::Orientation orientation,
|
|
QWidget *parent)
|
|
: QSlider(parent)
|
|
{
|
|
setFocusPolicy(Qt::StrongFocus);
|
|
setOrientation(orientation);
|
|
}
|
|
|
|
void SliderIgnoreScroll::wheelEvent(QWheelEvent *event)
|
|
{
|
|
if (!hasFocus())
|
|
event->ignore();
|
|
else
|
|
QSlider::wheelEvent(event);
|
|
}
|
|
|
|
void SliderIgnoreClick::mousePressEvent(QMouseEvent *event)
|
|
{
|
|
QStyleOptionSlider styleOption;
|
|
initStyleOption(&styleOption);
|
|
QRect handle = style()->subControlRect(QStyle::CC_Slider, &styleOption,
|
|
QStyle::SC_SliderHandle, this);
|
|
if (handle.contains(event->position().toPoint())) {
|
|
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();
|
|
}
|
|
}
|