Rework stretch to use just MTF

This commit is contained in:
2022-04-06 13:12:47 +02:00
parent 31783dbdeb
commit 2ff1b993a1
8 changed files with 93 additions and 135 deletions
+34 -1
View File
@@ -3,9 +3,15 @@
#include <QPainter>
#include <QPaintEvent>
static float clamp(float x)
{
return std::min(std::max(x, 0.0f), 1.0f);
}
STFSlider::STFSlider(QWidget *parent) : QWidget(parent)
{
setMinimumHeight(15);
setMaximumHeight(15);
setMouseTracking(true);
m_blackPoint = 0;
m_midPoint = 0.5;
@@ -13,6 +19,29 @@ STFSlider::STFSlider(QWidget *parent) : QWidget(parent)
m_grabbed = -1;
}
float STFSlider::blackPoint() const
{
return m_blackPoint;
}
float STFSlider::midPoint() const
{
return m_midPoint;
}
float STFSlider::whitePoint() const
{
return m_whitePoint;
}
void STFSlider::setMTFParams(float low, float mid, float high)
{
m_blackPoint = clamp(low);
m_midPoint = clamp(mid);
m_whitePoint = clamp(high);
update();
}
void STFSlider::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
@@ -77,7 +106,10 @@ void STFSlider::mouseMoveEvent(QMouseEvent *event)
break;
}
if(m_grabbed >= 0)
repaint();
{
emit paramChanged(m_blackPoint, midPoint(), m_whitePoint);
update();
}
}
void STFSlider::mousePressEvent(QMouseEvent *event)
@@ -95,4 +127,5 @@ void STFSlider::mousePressEvent(QMouseEvent *event)
void STFSlider::mouseReleaseEvent(QMouseEvent *)
{
m_grabbed = -1;
emit paramChanged(m_blackPoint, midPoint(), m_whitePoint);
}