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)