merged with autowbfix branch
This commit is contained in:
@@ -390,26 +390,7 @@ void WhiteBalance::adjusterChanged (Adjuster* a, double newval)
|
||||
cache_customTempBias (tempBiasVal);
|
||||
}
|
||||
|
||||
if (a == equal || a == tempBias) {
|
||||
// Recomputing AutoWB if it's the current method
|
||||
if (wbp && ppMethod->type == WBT_AUTO) {
|
||||
double ctemp = -1.0;
|
||||
double cgreen = -1.0;
|
||||
wbp->getAutoWB (ctemp, cgreen, eVal, tempBiasVal);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Recomputing AutoWB if it's the current method will happen in improccoordinator.cc
|
||||
|
||||
if (listener) {
|
||||
if (a == temp) {
|
||||
@@ -481,15 +462,7 @@ void WhiteBalance::optChanged ()
|
||||
// equal remain as is
|
||||
}
|
||||
|
||||
if (!batchMode || equal->getEditedState() || tempBias->getEditedState()) {
|
||||
double ctemp, cgreen;
|
||||
wbp->getAutoWB (ctemp, cgreen, equal->getValue(), tempBias->getValue());
|
||||
|
||||
if (ctemp != -1.0) {
|
||||
temp->setValue (temp->getAddMode() ? 0.0 : (int)ctemp);
|
||||
green->setValue (green->getAddMode() ? 0.0 : cgreen);
|
||||
}
|
||||
}
|
||||
// Recomputing AutoWB will happen in improccoordinator.cc
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -650,32 +623,7 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited)
|
||||
green->setValue (0.0);
|
||||
}
|
||||
|
||||
// then check for the correct ones, if possible
|
||||
if (wbp) {
|
||||
double ctemp = -1.0;
|
||||
double cgreen = -1.0;
|
||||
wbp->getAutoWB (ctemp, cgreen, pp->wb.equal, pp->wb.tempBias);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Recomputing AutoWB will happen in improccoordinator.cc
|
||||
|
||||
break;
|
||||
|
||||
@@ -755,25 +703,11 @@ void WhiteBalance::setDefaults (const ProcParams* defParams, const ParamsEdited*
|
||||
temp->setDefault (temp->getAddMode() ? 0 : (int)ctemp);
|
||||
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, defParams->wb.tempBias);
|
||||
|
||||
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 {
|
||||
temp->setDefault (defParams->wb.temperature);
|
||||
green->setDefault (defParams->wb.green);
|
||||
}
|
||||
// Recomputing AutoWB if it's the current method will happen in improccoordinator.cc
|
||||
|
||||
if (pedited) {
|
||||
temp->setDefaultEditedState (pedited->wb.temperature ? Edited : UnEdited);
|
||||
@@ -934,3 +868,14 @@ inline Gtk::TreeRow WhiteBalance::getActiveMethod ()
|
||||
{
|
||||
return *(method->get_active());
|
||||
}
|
||||
|
||||
void WhiteBalance::WBChanged(double temperature, double greenVal)
|
||||
{
|
||||
GThreadLock lock;
|
||||
disableListener();
|
||||
temp->setValue(temperature);
|
||||
green->setValue(greenVal);
|
||||
temp->setDefault(temperature);
|
||||
green->setDefault(greenVal);
|
||||
enableListener();
|
||||
}
|
||||
|
Reference in New Issue
Block a user