Cleanup for autowb fix
This commit is contained in:
@@ -313,9 +313,8 @@ public :
|
|||||||
class AutoWBListener
|
class AutoWBListener
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
virtual ~AutoWBListener() {}
|
virtual ~AutoWBListener() = default;
|
||||||
virtual void WBChanged (double temp, double green) {}
|
virtual void WBChanged(double temp, double green) = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class WaveletListener
|
class WaveletListener
|
||||||
|
@@ -374,24 +374,7 @@ void WhiteBalance::adjusterChanged (Adjuster* a, double newval)
|
|||||||
} else if (a == equal) {
|
} else if (a == equal) {
|
||||||
cache_customEqual (eVal);
|
cache_customEqual (eVal);
|
||||||
|
|
||||||
// Recomputing AutoWB if it's the current method
|
// Recomputing AutoWB if it's the current method will happen in improccoordinator.cc
|
||||||
if (wbp && ppMethod->type == WBT_AUTO) {
|
|
||||||
double ctemp = -1.0;
|
|
||||||
double cgreen = -1.0;
|
|
||||||
wbp->getAutoWB (ctemp, cgreen, eVal);
|
|
||||||
|
|
||||||
if (ctemp != -1.0) {
|
|
||||||
// Set the automatics temperature value only if in SET mode
|
|
||||||
if (temp->getEditedState() && !temp->getAddMode() ) {
|
|
||||||
temp->setValue (ctemp);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the automatics green value only if in SET mode
|
|
||||||
if (green->getEditedState() && !green->getAddMode()) {
|
|
||||||
green->setValue (cgreen);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (listener) {
|
if (listener) {
|
||||||
@@ -460,15 +443,7 @@ void WhiteBalance::optChanged ()
|
|||||||
// equal remain as is
|
// equal remain as is
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!batchMode || equal->getEditedState()) {
|
// Recomputing AutoWB will happen in improccoordinator.cc
|
||||||
double ctemp, cgreen;
|
|
||||||
wbp->getAutoWB (ctemp, cgreen, equal->getValue());
|
|
||||||
|
|
||||||
if (ctemp != -1.0) {
|
|
||||||
temp->setValue (temp->getAddMode() ? 0.0 : (int)ctemp);
|
|
||||||
green->setValue (green->getAddMode() ? 0.0 : cgreen);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -617,32 +592,7 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited)
|
|||||||
green->setValue (0.0);
|
green->setValue (0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// then check for the correct ones, if possible
|
// Recomputing AutoWB will happen in improccoordinator.cc
|
||||||
if (wbp) {
|
|
||||||
double ctemp = -1.0;
|
|
||||||
double cgreen = -1.0;
|
|
||||||
wbp->getAutoWB (ctemp, cgreen, pp->wb.equal);
|
|
||||||
|
|
||||||
if (ctemp != -1.0) {
|
|
||||||
// Set the automatics temperature if in SET mode
|
|
||||||
if (!pedited || (pedited->wb.temperature && !temp->getAddMode()) ) {
|
|
||||||
temp->setValue (ctemp);
|
|
||||||
|
|
||||||
if (pedited) {
|
|
||||||
temp->setEditedState (Edited);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the automatics green value if in SET mode
|
|
||||||
if (!pedited || (pedited->wb.green && !green->getAddMode())) {
|
|
||||||
green->setValue (cgreen);
|
|
||||||
|
|
||||||
if (pedited) {
|
|
||||||
green->setEditedState (Edited);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -716,25 +666,11 @@ void WhiteBalance::setDefaults (const ProcParams* defParams, const ParamsEdited*
|
|||||||
temp->setDefault (temp->getAddMode() ? 0 : (int)ctemp);
|
temp->setDefault (temp->getAddMode() ? 0 : (int)ctemp);
|
||||||
green->setDefault (green->getAddMode() ? 0 : cgreen);
|
green->setDefault (green->getAddMode() ? 0 : cgreen);
|
||||||
}
|
}
|
||||||
} else if (wbp && defParams->wb.method == "Auto") {
|
|
||||||
// this setDefaults method is called too early ; the wbp has been set,
|
|
||||||
// but wbp is not ready to provide!
|
|
||||||
double ctemp;
|
|
||||||
double cgreen;
|
|
||||||
wbp->getAutoWB (ctemp, cgreen, defParams->wb.equal);
|
|
||||||
|
|
||||||
if (ctemp != -1.0) {
|
|
||||||
temp->setDefault (temp->getAddMode() ? 0 : (int)ctemp);
|
|
||||||
green->setDefault (green->getAddMode() ? 0 : cgreen);
|
|
||||||
} else {
|
|
||||||
// 6504 & 1.0 = same values as in ProcParams::setDefaults
|
|
||||||
temp->setDefault (temp->getAddMode() ? 0 : 6504);
|
|
||||||
green->setDefault (green->getAddMode() ? 0 : 1.0);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
temp->setDefault (defParams->wb.temperature);
|
temp->setDefault (defParams->wb.temperature);
|
||||||
green->setDefault (defParams->wb.green);
|
green->setDefault (defParams->wb.green);
|
||||||
}
|
}
|
||||||
|
// Recomputing AutoWB if it's the current method will happen in improccoordinator.cc
|
||||||
|
|
||||||
if (pedited) {
|
if (pedited) {
|
||||||
temp->setDefaultEditedState (pedited->wb.temperature ? Edited : UnEdited);
|
temp->setDefaultEditedState (pedited->wb.temperature ? Edited : UnEdited);
|
||||||
@@ -887,8 +823,11 @@ inline Gtk::TreeRow WhiteBalance::getActiveMethod ()
|
|||||||
|
|
||||||
void WhiteBalance::WBChanged(double temperature, double greenVal)
|
void WhiteBalance::WBChanged(double temperature, double greenVal)
|
||||||
{
|
{
|
||||||
|
GThreadLock lock;
|
||||||
disableListener();
|
disableListener();
|
||||||
temp->setValue(temperature);
|
temp->setValue(temperature);
|
||||||
green->setValue(greenVal);
|
green->setValue(greenVal);
|
||||||
|
temp->setDefault(temperature);
|
||||||
|
green->setDefault(greenVal);
|
||||||
enableListener();
|
enableListener();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user