diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt index dd36d0b1c..e96625e49 100644 --- a/obs/CMakeLists.txt +++ b/obs/CMakeLists.txt @@ -114,6 +114,7 @@ set(obs_SOURCES visibility-checkbox.cpp vertical-scroll-area.cpp visibility-item-widget.cpp + slider-absoluteset-style.cpp source-list-widget.cpp crash-report.cpp qt-wrappers.cpp) @@ -148,6 +149,7 @@ set(obs_HEADERS visibility-checkbox.hpp vertical-scroll-area.hpp visibility-item-widget.hpp + slider-absoluteset-style.hpp source-list-widget.hpp qt-display.hpp crash-report.hpp diff --git a/obs/slider-absoluteset-style.cpp b/obs/slider-absoluteset-style.cpp new file mode 100644 index 000000000..064f89a10 --- /dev/null +++ b/obs/slider-absoluteset-style.cpp @@ -0,0 +1,19 @@ +#include "slider-absoluteset-style.hpp" + +SliderAbsoluteSetStyle::SliderAbsoluteSetStyle(const QString& baseStyle) + :QProxyStyle(baseStyle) +{ +} +SliderAbsoluteSetStyle::SliderAbsoluteSetStyle(QStyle* baseStyle) + :QProxyStyle(baseStyle) +{ +} + +int SliderAbsoluteSetStyle::styleHint(QStyle::StyleHint hint, + const QStyleOption* option = 0, const QWidget* widget = 0, + QStyleHintReturn* returnData = 0) const +{ + if(hint == QStyle::SH_Slider_AbsoluteSetButtons) + return (Qt::LeftButton | Qt::MidButton); + return QProxyStyle::styleHint(hint, option, widget, returnData); +} diff --git a/obs/slider-absoluteset-style.hpp b/obs/slider-absoluteset-style.hpp new file mode 100644 index 000000000..a94ebebdd --- /dev/null +++ b/obs/slider-absoluteset-style.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include + +class SliderAbsoluteSetStyle : public QProxyStyle +{ +public: + SliderAbsoluteSetStyle(const QString& baseStyle); + SliderAbsoluteSetStyle(QStyle* baseStyle); + int styleHint(QStyle::StyleHint hint, const QStyleOption* option, + const QWidget* widget, QStyleHintReturn* returnData) const; +}; diff --git a/obs/volume-control.cpp b/obs/volume-control.cpp index 2dab2bb5a..2777b2d06 100644 --- a/obs/volume-control.cpp +++ b/obs/volume-control.cpp @@ -1,6 +1,7 @@ #include "volume-control.hpp" #include "qt-wrappers.hpp" #include "mute-checkbox.hpp" +#include "slider-absoluteset-style.hpp" #include #include #include @@ -161,6 +162,8 @@ VolControl::VolControl(OBSSource source_) obs_fader_attach_source(obs_fader, source); obs_volmeter_attach_source(obs_volmeter, source); + slider->setStyle(new SliderAbsoluteSetStyle(slider->style())); + /* Call volume changed once to init the slider position and label */ VolumeChanged(); }