Issue 2073: white balance fixes
This commit is contained in:
@@ -184,6 +184,9 @@ WhiteBalance::WhiteBalance () : Gtk::VBox(), FoldableToolPanel(this), wbp(NULL),
|
|||||||
temp = Gtk::manage (new Adjuster (M("TP_WBALANCE_TEMPERATURE"), MINTEMP, MAXTEMP, 5, 4750));
|
temp = Gtk::manage (new Adjuster (M("TP_WBALANCE_TEMPERATURE"), MINTEMP, MAXTEMP, 5, 4750));
|
||||||
green = Gtk::manage (new Adjuster (M("TP_WBALANCE_GREEN"), MINGREEN, MAXGREEN, 0.001, 1.0));
|
green = Gtk::manage (new Adjuster (M("TP_WBALANCE_GREEN"), MINGREEN, MAXGREEN, 0.001, 1.0));
|
||||||
equal = Gtk::manage (new Adjuster (M("TP_WBALANCE_EQBLUERED"), MINEQUAL, MAXEQUAL, 0.001, 1.0));
|
equal = Gtk::manage (new Adjuster (M("TP_WBALANCE_EQBLUERED"), MINEQUAL, MAXEQUAL, 0.001, 1.0));
|
||||||
|
cache_customTemp (0);
|
||||||
|
cache_customGreen (0);
|
||||||
|
cache_customEqual (0);
|
||||||
equal->set_tooltip_markup (M("TP_WBALANCE_EQBLUERED_TOOLTIP"));
|
equal->set_tooltip_markup (M("TP_WBALANCE_EQBLUERED_TOOLTIP"));
|
||||||
temp->show ();
|
temp->show ();
|
||||||
green->show ();
|
green->show ();
|
||||||
@@ -313,9 +316,13 @@ void WhiteBalance::optChanged () {
|
|||||||
case WBT_CUSTOM:
|
case WBT_CUSTOM:
|
||||||
if (custom_temp>0){
|
if (custom_temp>0){
|
||||||
temp->setValue (temp->getAddMode() ? 0.0 : custom_temp);
|
temp->setValue (temp->getAddMode() ? 0.0 : custom_temp);
|
||||||
}
|
|
||||||
green->setValue (green->getAddMode() ? 0.0 : custom_green);
|
green->setValue (green->getAddMode() ? 0.0 : custom_green);
|
||||||
equal->setValue (equal->getAddMode() ? 0.0 : custom_equal);
|
equal->setValue (equal->getAddMode() ? 0.0 : custom_equal);
|
||||||
|
} else {
|
||||||
|
cache_customTemp (temp->getValue());
|
||||||
|
cache_customGreen (green->getValue());
|
||||||
|
cache_customEqual (equal->getValue());
|
||||||
|
}
|
||||||
if (batchMode) {
|
if (batchMode) {
|
||||||
temp->setEditedState (Edited);
|
temp->setEditedState (Edited);
|
||||||
green->setEditedState (Edited);
|
green->setEditedState (Edited);
|
||||||
@@ -389,9 +396,9 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited) {
|
|||||||
// temperature is reset to the associated temperature, or 0.0 if addMode is set.
|
// temperature is reset to the associated temperature, or 0.0 if addMode is set.
|
||||||
switch (wbValues->type) {
|
switch (wbValues->type) {
|
||||||
case WBT_CUSTOM:
|
case WBT_CUSTOM:
|
||||||
temp->setValue (pp->wb.temperature);
|
temp->setValue (temp->getAddMode() ? 0.0 : pp->wb.temperature);
|
||||||
green->setValue (pp->wb.green);
|
green->setValue (green->getAddMode() ? 0.0 : pp->wb.green);
|
||||||
equal->setValue (pp->wb.equal);
|
equal->setValue (equal->getAddMode() ? 0.0 : pp->wb.equal);
|
||||||
cache_customTemp (pp->wb.temperature);
|
cache_customTemp (pp->wb.temperature);
|
||||||
cache_customGreen (pp->wb.green);
|
cache_customGreen (pp->wb.green);
|
||||||
cache_customEqual (pp->wb.equal);
|
cache_customEqual (pp->wb.equal);
|
||||||
@@ -403,14 +410,20 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited) {
|
|||||||
break;
|
break;
|
||||||
case WBT_CAMERA:
|
case WBT_CAMERA:
|
||||||
if (wbp) {
|
if (wbp) {
|
||||||
double ctemp; double cgreen;
|
double ctemp = -1.0; double cgreen = -1.0;
|
||||||
wbp->getCamWB (ctemp, cgreen);
|
wbp->getCamWB (ctemp, cgreen);
|
||||||
|
|
||||||
|
if (ctemp != -1.0) {
|
||||||
// Set the camera's temperature value, or 0.0 if in ADD mode
|
// Set the camera's temperature value, or 0.0 if in ADD mode
|
||||||
temp->setValue (temp->getAddMode() ? 0.0 : ctemp);
|
temp->setValue (temp->getAddMode() ? 0.0 : ctemp);
|
||||||
// Set the camera's green value, or 0.0 if in ADD mode
|
// Set the camera's green value, or 0.0 if in ADD mode
|
||||||
green->setValue (green->getAddMode() ? 0.0 : cgreen);
|
green->setValue (green->getAddMode() ? 0.0 : cgreen);
|
||||||
equal->setValue (equal->getAddMode() ? 0.0 : 1.);
|
equal->setValue (equal->getAddMode() ? 0.0 : 1.);
|
||||||
|
} else {
|
||||||
|
temp->setValue (temp->getAddMode() ? 0.0 : pp->wb.temperature);
|
||||||
|
green->setValue (green->getAddMode() ? 0.0 : pp->wb.green);
|
||||||
|
equal->setValue (equal->getAddMode() ? 0.0 : pp->wb.equal);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WBT_AUTO:
|
case WBT_AUTO:
|
||||||
@@ -497,9 +510,12 @@ void WhiteBalance::setDefaults (const ProcParams* defParams, const ParamsEdited*
|
|||||||
if (wbp && defParams->wb.method == "Camera") {
|
if (wbp && defParams->wb.method == "Camera") {
|
||||||
double ctemp; double cgreen;
|
double ctemp; double cgreen;
|
||||||
wbp->getCamWB (ctemp, cgreen);
|
wbp->getCamWB (ctemp, cgreen);
|
||||||
|
// FIXME: Seems to be always -1.0, called too early? Broken!
|
||||||
|
if (ctemp != -1.0) {
|
||||||
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") {
|
else if (wbp && defParams->wb.method == "Auto") {
|
||||||
// this setDefaults method is called too early ; the wbp has been set,
|
// this setDefaults method is called too early ; the wbp has been set,
|
||||||
// but wbp is not ready to provide!
|
// but wbp is not ready to provide!
|
||||||
|
Reference in New Issue
Block a user