diff --git a/nuke.svg b/nuke.svg
new file mode 100644
index 0000000..4308c97
--- /dev/null
+++ b/nuke.svg
@@ -0,0 +1,119 @@
+
+
+
+
diff --git a/resources.qrc b/resources.qrc
index 7359a7c..5a478e6 100644
--- a/resources.qrc
+++ b/resources.qrc
@@ -5,5 +5,6 @@
icon.png
+ nuke.svg
diff --git a/stfslider.cpp b/stfslider.cpp
index 334bf4e..d9c91c0 100644
--- a/stfslider.cpp
+++ b/stfslider.cpp
@@ -3,6 +3,7 @@
#include
#include
#include
+#include
static float clamp(float x)
{
@@ -94,16 +95,19 @@ void STFSlider::mouseMoveEvent(QMouseEvent *event)
switch(m_grabbed)
{
case 0:
- m_blackPoint = (qreal)event->x()/width();
+ m_blackPoint = clamp((qreal)event->x()/width());
m_whitePoint = std::max(m_whitePoint, m_blackPoint);
+ QToolTip::showText(event->globalPos(), QString::number(m_blackPoint), this);
break;
case 1:
m_midPoint = ((qreal)event->x()/width() - m_blackPoint) / (m_whitePoint - m_blackPoint);
- m_midPoint = std::max(std::min(m_midPoint, 1.0f), 0.0f);
+ m_midPoint = clamp(m_midPoint);
+ QToolTip::showText(event->globalPos(), QString::number(m_midPoint), this);
break;
case 2:
- m_whitePoint = (qreal)event->x()/width();
+ m_whitePoint = clamp((qreal)event->x()/width());
m_blackPoint = std::min(m_blackPoint, m_whitePoint);
+ QToolTip::showText(event->globalPos(), QString::number(m_whitePoint), this);
break;
}
if(m_grabbed >= 0)
diff --git a/stretchpanel.cpp b/stretchpanel.cpp
index 44a9551..da5eab7 100644
--- a/stretchpanel.cpp
+++ b/stretchpanel.cpp
@@ -1,7 +1,7 @@
#include "stretchpanel.h"
#include
#include
-#include
+#include
#include "imageringlist.h"
const float BLACK_POINT_SIGMA = -2.8f;
@@ -21,18 +21,22 @@ StretchPanel::StretchPanel(QWidget *parent) : QWidget(parent)
setLayout(layout);
m_stfSlider = new STFSlider(this);
- layout->addWidget(m_stfSlider);
+ layout->addWidget(m_stfSlider, 0, 0);
connect(m_stfSlider, SIGNAL(paramChanged(float, float, float)), this, SIGNAL(paramChanged(float,float,float)));
- QPushButton *resetButton = new QPushButton(tr("Reset STF"), this);
- resetButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
- layout->addWidget(resetButton);
- connect(resetButton, SIGNAL(pressed()), this, SLOT(resetMTF()));
-
- QPushButton *autoStretchButton = new QPushButton(tr("Autostretch"), this);
- autoStretchButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
+ QToolButton *autoStretchButton = new QToolButton(this);
+ autoStretchButton->setIcon(QIcon(":/nuke.svg"));
+ autoStretchButton->setToolTip(tr("Auto Stretch F12"));
+ autoStretchButton->setShortcut(Qt::Key_F12);
layout->addWidget(autoStretchButton);
connect(autoStretchButton, SIGNAL(pressed()), this, SIGNAL(autoStretch()));
+
+ QToolButton *resetButton = new QToolButton(this);
+ resetButton->setIcon(style()->standardIcon(QStyle::SP_DialogResetButton));
+ resetButton->setToolTip(tr("Reset Screen Transfer Function F11"));
+ resetButton->setShortcut(Qt::Key_F11);
+ layout->addWidget(resetButton);
+ connect(resetButton, SIGNAL(pressed()), this, SLOT(resetMTF()));
}
void StretchPanel::stretchImage(Image *img)