UI: Add floating point slider control
This commit is contained in:
parent
dac3fd88e0
commit
17adf8f35e
@ -104,6 +104,7 @@ set(obs_SOURCES
|
||||
window-log-reply.cpp
|
||||
window-remux.cpp
|
||||
properties-view.cpp
|
||||
double-slider.cpp
|
||||
volume-control.cpp
|
||||
adv-audio-control.cpp
|
||||
vertical-scroll-area.cpp
|
||||
@ -131,6 +132,7 @@ set(obs_HEADERS
|
||||
window-remux.hpp
|
||||
properties-view.hpp
|
||||
display-helpers.hpp
|
||||
double-slider.hpp
|
||||
volume-control.hpp
|
||||
adv-audio-control.hpp
|
||||
vertical-scroll-area.hpp
|
||||
|
33
obs/double-slider.cpp
Normal file
33
obs/double-slider.cpp
Normal file
@ -0,0 +1,33 @@
|
||||
#include "double-slider.hpp"
|
||||
|
||||
DoubleSlider::DoubleSlider(QWidget *parent) : QSlider(parent)
|
||||
{
|
||||
connect(this, SIGNAL(valueChanged(int)),
|
||||
this, SLOT(intValChanged(int)));
|
||||
}
|
||||
|
||||
void DoubleSlider::setDoubleConstraints(double newMin, double newMax,
|
||||
double newStep, double val)
|
||||
{
|
||||
minVal = newMin;
|
||||
maxVal = newMax;
|
||||
minStep = newStep;
|
||||
|
||||
double total = maxVal - minVal;
|
||||
int intMax = int(total / minStep);
|
||||
|
||||
setMinimum(0);
|
||||
setMaximum(intMax);
|
||||
setSingleStep(1);
|
||||
setDoubleVal(val);
|
||||
}
|
||||
|
||||
void DoubleSlider::intValChanged(int val)
|
||||
{
|
||||
emit doubleValChanged(double(val) * minStep + minVal);
|
||||
}
|
||||
|
||||
void DoubleSlider::setDoubleVal(double val)
|
||||
{
|
||||
setValue(int((val - minVal) / minStep));
|
||||
}
|
20
obs/double-slider.hpp
Normal file
20
obs/double-slider.hpp
Normal file
@ -0,0 +1,20 @@
|
||||
#include <QSlider>
|
||||
|
||||
class DoubleSlider : public QSlider {
|
||||
Q_OBJECT
|
||||
|
||||
double minVal, maxVal, minStep;
|
||||
|
||||
public:
|
||||
DoubleSlider(QWidget *parent = nullptr);
|
||||
|
||||
void setDoubleConstraints(double newMin, double newMax,
|
||||
double newStep, double val);
|
||||
|
||||
signals:
|
||||
void doubleValChanged(double val);
|
||||
|
||||
public slots:
|
||||
void intValChanged(int val);
|
||||
void setDoubleVal(double val);
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user