UI: Add SliderAbsoluteSetStyle class

When this class is used in conjunction with a QSlider control, allows
direct setting of the slider handle position when clicking in an area
other than the slider handle.  The default QSlider handle behavior is to
step towards clicked position.
This commit is contained in:
HomeWorld 2015-04-04 16:13:48 +03:00 committed by jp9000
parent f29f286402
commit df893dde81
3 changed files with 33 additions and 0 deletions

View File

@ -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

View File

@ -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);
}

View File

@ -0,0 +1,12 @@
#pragma once
#include <QProxyStyle>
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;
};