From a53ddf4282bfa89c7694f86fa8cc11ec656069ff Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 1 May 2024 07:49:14 +0200 Subject: [PATCH 1/2] Ciecam - Change management viewing temperature and tint #7055 (#7058) * Change management viewing temperature and tint * Enable autotemp wbcamchanged and hide history message * Change wbcamchnaged as proposed by kaesa --- rtengine/improccoordinator.cc | 4 ++-- rtengine/rtengine.h | 2 +- rtgui/colorappearance.cc | 26 ++++++++++++++++++++++---- rtgui/colorappearance.h | 2 +- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 8a6fd06e4..fbdddf63a 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -2308,8 +2308,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) tempsym = params->colorappearance.tempout; greensym = params->colorappearance.greenout; } - if (params->colorappearance.enabled) { - acListener->wbCamChanged(tempsym, greensym); //real temp and tint. + if (params->colorappearance.enabled && acListener) { + acListener->wbCamChanged(tempsym, greensym, params->colorappearance.autotempout); //real temp and tint. } } else { diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index fdd6676e6..e76d17336 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -372,7 +372,7 @@ public : virtual void autoCamChanged(double ccam, double ccamout) = 0; virtual void adapCamChanged(double cadap) = 0; virtual void ybCamChanged(int yb) = 0; - virtual void wbCamChanged(double tem, double tin) = 0; + virtual void wbCamChanged(double tem, double tin, bool autotemp) = 0; }; diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 0390ef869..d18cddcad 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -1880,18 +1880,36 @@ void ColorAppearance::adapCamChanged (double cadap) } -void ColorAppearance::wbCamChanged (double temp, double tin) +void ColorAppearance::wbCamChanged (double temp, double tin, bool autotemp) {//reactivate this function idle_register.add( - [this, temp, tin]() -> bool + [this, temp, tin, autotemp]() -> bool + { + if (temp != tempout->getValue()) { + disableListener(); + tempout->setValue(temp); + enableListener(); + listener->panelChanged (EvCATtempout, tempout->getTextValue()); + } + if (tin != greenout->getValue()) { + disableListener(); + greenout->setValue(tin); + enableListener(); + listener->panelChanged (EvCATgreenout, greenout->getTextValue()); + } + /* disableListener(); tempout->setValue(temp); greenout->setValue(tin); enableListener(); - listener->panelChanged (EvCATgreenout, greenout->getTextValue()); - listener->panelChanged (EvCATtempout, tempout->getTextValue()); + + if(!autotemp) { + listener->panelChanged (EvCATgreenout, "");//greenout->getTextValue()); + listener->panelChanged (EvCATtempout, "");//tempout->getTextValue()); + }*/ + return false; } ); diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 714f3e557..e8f6084cd 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -66,7 +66,7 @@ public: void autoCamChanged (double ccam, double ccamout) override; bool autoCamComputed_ (); void adapCamChanged (double cadap) override; - void wbCamChanged(double tem, double tin) override; + void wbCamChanged(double tem, double tin, bool autotemp) override; bool adapCamComputed_ (); void ybCamChanged (int yb) override; bool ybCamComputed_ (); From ca569b051b258400cff14f72b32df69a33a13377 Mon Sep 17 00:00:00 2001 From: "U-PCSPECIALIST01\\jdesm" Date: Wed, 1 May 2024 10:48:15 +0200 Subject: [PATCH 2/2] Fixed bad variable assignement in iplocallab.cc --- rtengine/iplocallab.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index 37ef276df..d7eca81ff 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -933,8 +933,8 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall lp.balanexp = locallab.spots.at(sp).balanexp; lp.linear = locallab.spots.at(sp).linear; - if (locallab.spots.at(sp).smoothciemet == "norm") { - lp.smoothciem = 1; + if (locallab.spots.at(sp).smoothciemet == "none") { + lp.smoothciem = 0; } else if (locallab.spots.at(sp).smoothciemet == "Ev") { lp.smoothciem = 1; } else if (locallab.spots.at(sp).smoothciemet == "gam") { @@ -943,7 +943,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall lp.smoothciem = 3; } - if (locallab.spots.at(sp).smoothciemet == "none") { + if (locallab.spots.at(sp).spotMethod == "norm") { lp.fullim = 0; } else if (locallab.spots.at(sp).spotMethod == "exc") { lp.fullim = 1;