diff --git a/rtdata/languages/default b/rtdata/languages/default
index de244675e..ca65e7095 100644
--- a/rtdata/languages/default
+++ b/rtdata/languages/default
@@ -2621,7 +2621,7 @@ TP_LOCALLAB_TRANSMISSIONMAP;Transmission map
TP_LOCALLAB_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction.\nYou can act on this curve to change Transmission and reduce the artifacts
TP_LOCALLAB_USEMASK;Use mask
TP_LOCALLAB_VART;Variance (contrast)
-TP_LOCALLAB_VIBRANCE;Vibrance
+TP_LOCALLAB_VIBRANCE;Vibrance - Warm & Cool
TP_LOCALLAB_VIS_TOOLTIP;Click to show/hide selected Control Spot.\nCtrl+click to show/hide all Control Spot.
TP_LOCALLAB_WAMASKCOL;Ψ Mask Wavelet level
TP_LOCALLAB_WARM;Warm - Cool & Color artifacts
diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc
index 8e0c2a4bb..82caa59a1 100644
--- a/rtengine/iplocallab.cc
+++ b/rtengine/iplocallab.cc
@@ -5276,10 +5276,11 @@ void ImProcFunctions::InverseColorLight_Local(bool tonequ, bool tonecurv, int sp
}
}
}
-
+/*
if (lp.war != 0) {
ImProcFunctions::ciecamloc_02float(sp, temp);
}
+ */
}
if (senstype == 0) { //Color and Light curves L C
@@ -10517,7 +10518,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
//vibrance
- if (lp.expvib && (lp.past != 0.f || lp.satur != 0.f || lp.strvib != 0.f || lp.strvibab != 0.f || lp.strvibh != 0.f || lp.showmaskvibmet == 2 || lp.enavibMask || lp.showmaskvibmet == 3 || lp.showmaskvibmet == 4) && lp.vibena) { //interior ellipse renforced lightness and chroma //locallutili
+ if (lp.expvib && (lp.past != 0.f || lp.satur != 0.f || lp.strvib != 0.f || lp.war != 0 || lp.strvibab != 0.f || lp.strvibh != 0.f || lp.showmaskvibmet == 2 || lp.enavibMask || lp.showmaskvibmet == 3 || lp.showmaskvibmet == 4) && lp.vibena) { //interior ellipse renforced lightness and chroma //locallutili
if (call <= 3) { //simpleprocess, dcrop, improccoordinator
const int ystart = std::max(static_cast(lp.yc - lp.lyT) - cy, 0);
const int yend = std::min(static_cast(lp.yc + lp.ly) - cy, original->H);
@@ -10719,6 +10720,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
ImProcFunctions::vibrance(bufexpfin.get(), vibranceParams, params->toneCurve.hrenabled, params->icm.workingProfile);
+ if (params->locallab.spots.at(sp).warm != 0) {
+ ImProcFunctions::ciecamloc_02float(sp, bufexpfin.get());
+ }
+
+
transit_shapedetect2(call, 2, bufexporig.get(), bufexpfin.get(), originalmaskvib.get(), hueref, chromaref, lumaref, sobelref, 0.f, nullptr, lp, original, transformed, cx, cy, sk);
@@ -12722,7 +12728,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
enablefat = true;;
}
- bool execex = (lp.exposena && (lp.expcomp != 0.f || lp.blac != 0 || lp.war != 0 || lp.laplacexp > 0.1f || lp.strexp != 0.f || enablefat || lp.showmaskexpmet == 2 || lp.enaExpMask || lp.showmaskexpmet == 3 || lp.showmaskexpmet == 4 || lp.showmaskexpmet == 5 || (exlocalcurve && localexutili)));
+ bool execex = (lp.exposena && (lp.expcomp != 0.f || lp.blac != 0 || lp.laplacexp > 0.1f || lp.strexp != 0.f || enablefat || lp.showmaskexpmet == 2 || lp.enaExpMask || lp.showmaskexpmet == 3 || lp.showmaskexpmet == 4 || lp.showmaskexpmet == 5 || (exlocalcurve && localexutili)));
if (!lp.invex && execex) {
int ystart = std::max(static_cast(lp.yc - lp.lyT) - cy, 0);
@@ -13092,12 +13098,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
ImProcFunctions::shadowsHighlights(bufexpfin.get(), true, 1, 0, lp.shadex, 40, sk, 0, lp.shcomp);
}
}
-
+/*
//cat02
if (params->locallab.spots.at(sp).warm != 0) {
ImProcFunctions::ciecamloc_02float(sp, bufexpfin.get());
}
-
+*/
/*
constexpr float ampli = 70.f;
float ch = 0.f;
@@ -13144,7 +13150,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
}
//inverse
- else if (lp.invex && (lp.expcomp != 0.0 || lp.war != 0 || lp.laplacexp > 0.1f || params->locallab.spots.at(sp).fatamount > 1.f || (exlocalcurve && localexutili) || lp.enaExpMaskinv || lp.showmaskexpmetinv == 1) && lp.exposena) {
+ else if (lp.invex && (lp.expcomp != 0.0 || lp.laplacexp > 0.1f || params->locallab.spots.at(sp).fatamount > 1.f || (exlocalcurve && localexutili) || lp.enaExpMaskinv || lp.showmaskexpmetinv == 1) && lp.exposena) {
float adjustr = 2.f;
std::unique_ptr bufmaskblurexp;
std::unique_ptr originalmaskexp;
diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc
index ed163c911..b722ccaba 100644
--- a/rtengine/procparams.cc
+++ b/rtengine/procparams.cc
@@ -2520,7 +2520,6 @@ LocallabParams::LocallabSpot::LocallabSpot() :
shadex(0),
shcompr(50),
expchroma(30),
- warm(0),
sensiex(15),
structexp(0),
blurexpde(5),
@@ -2587,6 +2586,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
expvibrance(false),
saturated(0),
pastels(0),
+ warm(0),
psthreshold({0, 75, false}),
protectskins(false),
avoidcolorshift(true),
@@ -2926,7 +2926,6 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
&& shadex == other.shadex
&& shcompr == other.shcompr
&& expchroma == other.expchroma
- && warm == other.warm
&& sensiex == other.sensiex
&& structexp == other.structexp
&& blurexpde == other.blurexpde
@@ -3002,6 +3001,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
&& expvibrance == other.expvibrance
&& saturated == other.saturated
&& pastels == other.pastels
+ && warm == other.warm
&& psthreshold == other.psthreshold
&& protectskins == other.protectskins
&& avoidcolorshift == other.avoidcolorshift
@@ -4328,7 +4328,6 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).shadex, "Locallab", "Shadex_" + std::to_string(i), spot.shadex, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).shcompr, "Locallab", "Shcompr_" + std::to_string(i), spot.shcompr, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expchroma, "Locallab", "Expchroma_" + std::to_string(i), spot.expchroma, keyFile);
- saveToKeyfile(!pedited || pedited->locallab.spots.at(i).warm, "Locallab", "Warm_" + std::to_string(i), spot.warm, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensiex, "Locallab", "Sensiex_" + std::to_string(i), spot.sensiex, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).structexp, "Locallab", "Structexp_" + std::to_string(i), spot.structexp, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blurexpde, "Locallab", "Blurexpde_" + std::to_string(i), spot.blurexpde, keyFile);
@@ -4396,6 +4395,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
// Vibrance
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expvibrance, "Locallab", "Expvibrance_" + std::to_string(i), spot.expvibrance, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).saturated, "Locallab", "Saturated_" + std::to_string(i), spot.saturated, keyFile);
+ saveToKeyfile(!pedited || pedited->locallab.spots.at(i).warm, "Locallab", "Warm_" + std::to_string(i), spot.warm, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).pastels, "Locallab", "Pastels_" + std::to_string(i), spot.pastels, keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).psthreshold, "Locallab", "PSThreshold_" + std::to_string(i), spot.psthreshold.toVector(), keyFile);
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).protectskins, "Locallab", "ProtectSkins_" + std::to_string(i), spot.protectskins, keyFile);
@@ -5855,7 +5855,6 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
assignFromKeyfile(keyFile, "Locallab", "Shadex_" + std::to_string(i), pedited, spot.shadex, spotEdited.shadex);
assignFromKeyfile(keyFile, "Locallab", "Shcompr_" + std::to_string(i), pedited, spot.shcompr, spotEdited.shcompr);
assignFromKeyfile(keyFile, "Locallab", "Expchroma_" + std::to_string(i), pedited, spot.expchroma, spotEdited.expchroma);
- assignFromKeyfile(keyFile, "Locallab", "Warm_" + std::to_string(i), pedited, spot.warm, spotEdited.warm);
assignFromKeyfile(keyFile, "Locallab", "Sensiex_" + std::to_string(i), pedited, spot.sensiex, spotEdited.sensiex);
assignFromKeyfile(keyFile, "Locallab", "Structexp_" + std::to_string(i), pedited, spot.structexp, spotEdited.structexp);
assignFromKeyfile(keyFile, "Locallab", "Blurexpde_" + std::to_string(i), pedited, spot.blurexpde, spotEdited.blurexpde);
@@ -5924,6 +5923,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
assignFromKeyfile(keyFile, "Locallab", "Expvibrance_" + std::to_string(i), pedited, spot.expvibrance, spotEdited.expvibrance);
assignFromKeyfile(keyFile, "Locallab", "Saturated_" + std::to_string(i), pedited, spot.saturated, spotEdited.saturated);
assignFromKeyfile(keyFile, "Locallab", "Pastels_" + std::to_string(i), pedited, spot.pastels, spotEdited.pastels);
+ assignFromKeyfile(keyFile, "Locallab", "Warm_" + std::to_string(i), pedited, spot.warm, spotEdited.warm);
if (keyFile.has_key("Locallab", "PSThreshold_" + std::to_string(i))) {
const std::vector thresh = keyFile.get_integer_list("Locallab", "PSThreshold_" + std::to_string(i));
diff --git a/rtengine/procparams.h b/rtengine/procparams.h
index aa070179b..3a50632a1 100644
--- a/rtengine/procparams.h
+++ b/rtengine/procparams.h
@@ -1063,7 +1063,6 @@ struct LocallabParams {
int shadex;
int shcompr;
int expchroma;
- int warm;
int sensiex;
int structexp;
int blurexpde;
@@ -1130,6 +1129,7 @@ struct LocallabParams {
bool expvibrance;
int saturated;
int pastels;
+ int warm;
Threshold psthreshold;
bool protectskins;
bool avoidcolorshift;
diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc
index 7ceb2a5d6..2ccee4df8 100644
--- a/rtgui/locallab.cc
+++ b/rtgui/locallab.cc
@@ -417,7 +417,6 @@ Locallab::Locallab():
shadex(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SHADEX"), 0, 100, 1, 0))),
shcompr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SHADEXCOMP"), 0, 100, 1, 50))),
expchroma(Gtk::manage(new Adjuster(M("TP_LOCALLAB_EXPCHROMA"), -50, 100, 1, 30))),
- warm(Gtk::manage(new Adjuster(M("TP_LOCALLAB_WARM"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-orange-small.png"))))),
sensiex(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSI"), 0, 100, 1, 15))),
structexp(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STRUCCOL"), 0, 100, 1, 0))),
blurexpde(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLURDE"), 2, 100, 1, 5))),
@@ -487,6 +486,7 @@ sloSH(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SLOSH"), 0.0, 100.0, 0.01, 12.92))
// Vibrance
saturated(Gtk::manage(new Adjuster(M("TP_VIBRANCE_SATURATED"), -100., 100., 1., 0.))),
pastels(Gtk::manage(new Adjuster(M("TP_VIBRANCE_PASTELS"), -100., 100., 1., 0.))),
+warm(Gtk::manage(new Adjuster(M("TP_LOCALLAB_WARM"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-orange-small.png"))))),
sensiv(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSI"), 0, 100, 1, 15))),
blendmaskvib(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLENDMASKCOL"), -100, 100, 1, 0))),
radmaskvib(Gtk::manage(new Adjuster(M("TP_LOCALLAB_RADMASKCOL"), -10.0, 1000.0, 0.1, 0.))),
@@ -1462,11 +1462,6 @@ pe(nullptr)
shcompr->setAdjusterListener(this);
expchroma->setAdjusterListener(this);
- if (showtooltip) {
- warm->set_tooltip_text(M("TP_LOCALLAB_WARM_TOOLTIP"));
- }
-
- warm->setAdjusterListener(this);
if (showtooltip) {
sensiex->set_tooltip_text(M("TP_LOCALLAB_SENSI_TOOLTIP"));
@@ -1677,7 +1672,7 @@ pe(nullptr)
}
toolBox->pack_start(*curveEditorG, Gtk::PACK_SHRINK, 4);
- toolBox->pack_start(*warm);
+// toolBox->pack_start(*warm);
setExpandAlignProperties(exptoolexp, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
exptoolexp->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), exptoolexp));
@@ -2009,6 +2004,12 @@ pe(nullptr)
pastels->setAdjusterListener(this);
+ if (showtooltip) {
+ warm->set_tooltip_text(M("TP_LOCALLAB_WARM_TOOLTIP"));
+ }
+
+ warm->setAdjusterListener(this);
+
if (showtooltip) {
psThreshold->set_tooltip_markup(M("TP_VIBRANCE_PSTHRESHOLD_TOOLTIP"));
@@ -2101,6 +2102,7 @@ pe(nullptr)
}
vibranceBox->pack_start(*pastels, Gtk::PACK_SHRINK, 0);
+ vibranceBox->pack_start(*warm, Gtk::PACK_SHRINK, 0);
if (complexsoft < 2) {
vibranceBox->pack_start(*psThreshold, Gtk::PACK_SHRINK, 0);
@@ -5056,7 +5058,6 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
pp->locallab.spots.at(pp->locallab.selspot).shadex = shadex->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).shcompr = shcompr->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).expchroma = expchroma->getIntValue();
- pp->locallab.spots.at(pp->locallab.selspot).warm = warm->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).sensiex = sensiex->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).structexp = structexp->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).blurexpde = blurexpde->getIntValue();
@@ -5153,6 +5154,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
// Vibrance
pp->locallab.spots.at(pp->locallab.selspot).expvibrance = expvibrance->getEnabled();
+ pp->locallab.spots.at(pp->locallab.selspot).warm = warm->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).saturated = saturated->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).pastels = pastels->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).psthreshold = psThreshold->getValue();
@@ -5546,7 +5548,6 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
pe->locallab.spots.at(pp->locallab.selspot).shadex = pe->locallab.spots.at(pp->locallab.selspot).shadex || shadex->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).shcompr = pe->locallab.spots.at(pp->locallab.selspot).shcompr || shcompr->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).expchroma = pe->locallab.spots.at(pp->locallab.selspot).expchroma || expchroma->getEditedState();
- pe->locallab.spots.at(pp->locallab.selspot).warm = pe->locallab.spots.at(pp->locallab.selspot).warm || warm->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).sensiex = pe->locallab.spots.at(pp->locallab.selspot).sensiex || sensiex->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).structexp = pe->locallab.spots.at(pp->locallab.selspot).structexp || structexp->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).blurexpde = pe->locallab.spots.at(pp->locallab.selspot).blurexpde || blurexpde->getEditedState();
@@ -5617,6 +5618,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
// Vibrance
pe->locallab.spots.at(pp->locallab.selspot).expvibrance = pe->locallab.spots.at(pp->locallab.selspot).expvibrance || !expvibrance->get_inconsistent();
pe->locallab.spots.at(pp->locallab.selspot).saturated = pe->locallab.spots.at(pp->locallab.selspot).saturated || saturated->getEditedState();
+ pe->locallab.spots.at(pp->locallab.selspot).warm = pe->locallab.spots.at(pp->locallab.selspot).warm || warm->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).pastels = pe->locallab.spots.at(pp->locallab.selspot).pastels || pastels->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).psthreshold = pe->locallab.spots.at(pp->locallab.selspot).psthreshold || psThreshold->getEditedState();
pe->locallab.spots.at(pp->locallab.selspot).protectskins = pe->locallab.spots.at(pp->locallab.selspot).protectskins || !protectSkins->get_inconsistent();
@@ -5961,7 +5963,6 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
pedited->locallab.spots.at(pp->locallab.selspot).shadex = pedited->locallab.spots.at(pp->locallab.selspot).shadex || shadex->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).shcompr = pedited->locallab.spots.at(pp->locallab.selspot).shcompr || shcompr->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).expchroma = pedited->locallab.spots.at(pp->locallab.selspot).expchroma || expchroma->getEditedState();
- pedited->locallab.spots.at(pp->locallab.selspot).warm = pedited->locallab.spots.at(pp->locallab.selspot).warm || warm->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).sensiex = pedited->locallab.spots.at(pp->locallab.selspot).sensiex || sensiex->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).structexp = pedited->locallab.spots.at(pp->locallab.selspot).structexp || structexp->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).blurexpde = pedited->locallab.spots.at(pp->locallab.selspot).blurexpde || blurexpde->getEditedState();
@@ -6032,6 +6033,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
// Vibrance
pedited->locallab.spots.at(pp->locallab.selspot).expvibrance = pedited->locallab.spots.at(pp->locallab.selspot).expvibrance || !expvibrance->get_inconsistent();
pedited->locallab.spots.at(pp->locallab.selspot).saturated = pedited->locallab.spots.at(pp->locallab.selspot).saturated || saturated->getEditedState();
+ pedited->locallab.spots.at(pp->locallab.selspot).warm = pedited->locallab.spots.at(pp->locallab.selspot).warm || warm->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).pastels = pedited->locallab.spots.at(pp->locallab.selspot).pastels || pastels->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).psthreshold = pedited->locallab.spots.at(pp->locallab.selspot).psthreshold || psThreshold->getEditedState();
pedited->locallab.spots.at(pp->locallab.selspot).protectskins = pedited->locallab.spots.at(pp->locallab.selspot).protectskins || !protectSkins->get_inconsistent();
@@ -8829,7 +8831,6 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
shadex->setDefault((double)defSpot->shadex);
shcompr->setDefault((double)defSpot->shcompr);
expchroma->setDefault((double)defSpot->expchroma);
- warm->setDefault((double)defSpot->warm);
sensiex->setDefault((double)defSpot->sensiex);
structexp->setDefault((double)defSpot->structexp);
blurexpde->setDefault((double)defSpot->blurexpde);
@@ -8881,6 +8882,7 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
// Vibrance
saturated->setDefault((double)defSpot->saturated);
+ warm->setDefault((double)defSpot->warm);
pastels->setDefault((double)defSpot->pastels);
psThreshold->setDefault(defSpot->psthreshold);
sensiv->setDefault((double)defSpot->sensiv);
@@ -9073,7 +9075,6 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
shadex->setDefaultEditedState(Irrelevant);
shcompr->setDefaultEditedState(Irrelevant);
expchroma->setDefaultEditedState(Irrelevant);
- warm->setDefaultEditedState(Irrelevant);
sensiex->setDefaultEditedState(Irrelevant);
structexp->setDefaultEditedState(Irrelevant);
blurexpde->setDefaultEditedState(Irrelevant);
@@ -9126,6 +9127,7 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
// Vibrance
saturated->setDefaultEditedState(Irrelevant);
pastels->setDefaultEditedState(Irrelevant);
+ warm->setDefaultEditedState(Irrelevant);
psThreshold->setDefaultEditedState(Irrelevant);
sensiv->setDefaultEditedState(Irrelevant);
blendmaskvib->setDefaultEditedState(Irrelevant);
@@ -9322,7 +9324,6 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
shadex->setDefaultEditedState(defSpotState->shadex ? Edited : UnEdited);
shcompr->setDefaultEditedState(defSpotState->shcompr ? Edited : UnEdited);
expchroma->setDefaultEditedState(defSpotState->expchroma ? Edited : UnEdited);
- warm->setDefaultEditedState(defSpotState->warm ? Edited : UnEdited);
sensiex->setDefaultEditedState(defSpotState->sensiex ? Edited : UnEdited);
structexp->setDefaultEditedState(defSpotState->structexp ? Edited : UnEdited);
blurexpde->setDefaultEditedState(defSpotState->blurexpde ? Edited : UnEdited);
@@ -9375,6 +9376,7 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
// Vibrance
saturated->setDefaultEditedState(defSpotState->saturated ? Edited : UnEdited);
pastels->setDefaultEditedState(defSpotState->pastels ? Edited : UnEdited);
+ warm->setDefaultEditedState(defSpotState->warm ? Edited : UnEdited);
psThreshold->setDefaultEditedState(defSpotState->psthreshold ? Edited : UnEdited);
sensiv->setDefaultEditedState(defSpotState->sensiv ? Edited : UnEdited);
blendmaskvib->setDefaultEditedState(defSpotState->blendmaskvib ? Edited : UnEdited);
@@ -9805,11 +9807,6 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
}
}
- if (a == warm) {
- if (listener) {
- listener->panelChanged(Evlocallabwarm, warm->getTextValue());
- }
- }
if (a == sensiex) {
if (listener) {
@@ -10101,6 +10098,12 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
}
}
+ if (a == warm) {
+ if (listener) {
+ listener->panelChanged(Evlocallabwarm, warm->getTextValue());
+ }
+ }
+
if (a == sensiv) {
if (listener) {
listener->panelChanged(Evlocallabsensiv, sensiv->getTextValue());
@@ -11044,7 +11047,6 @@ void Locallab::setBatchMode(bool batchMode)
shadex->showEditedCB();
shcompr->showEditedCB();
expchroma->showEditedCB();
- warm->showEditedCB();
sensiex->showEditedCB();
structexp->showEditedCB();
blurexpde->showEditedCB();
@@ -11097,6 +11099,7 @@ void Locallab::setBatchMode(bool batchMode)
// Vibrance
saturated->showEditedCB();
pastels->showEditedCB();
+ warm->showEditedCB();
psThreshold->showEditedCB();
sensiv->showEditedCB();
blendmaskvib->showEditedCB();
@@ -11847,7 +11850,6 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
shadex->setValue(pp->locallab.spots.at(index).shadex);
shcompr->setValue(pp->locallab.spots.at(index).shcompr);
expchroma->setValue(pp->locallab.spots.at(index).expchroma);
- warm->setValue(pp->locallab.spots.at(index).warm);
sensiex->setValue(pp->locallab.spots.at(index).sensiex);
structexp->setValue(pp->locallab.spots.at(index).structexp);
blurexpde->setValue(pp->locallab.spots.at(index).blurexpde);
@@ -11992,6 +11994,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
expvibrance->setEnabled(pp->locallab.spots.at(index).expvibrance);
saturated->setValue(pp->locallab.spots.at(index).saturated);
pastels->setValue(pp->locallab.spots.at(index).pastels);
+ warm->setValue(pp->locallab.spots.at(index).warm);
psThreshold->setValue(pp->locallab.spots.at(index).psthreshold);
protectSkins->set_active(pp->locallab.spots.at(index).protectskins);
avoidColorShift->set_active(pp->locallab.spots.at(index).avoidcolorshift);
@@ -12536,7 +12539,6 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
hlcomprthresh->setEditedState(spotState->hlcomprthresh ? Edited : UnEdited);
black->setEditedState(spotState->black ? Edited : UnEdited);
shadex->setEditedState(spotState->shadex ? Edited : UnEdited);
- warm->setEditedState(spotState->warm ? Edited : UnEdited);
shcompr->setEditedState(spotState->shcompr ? Edited : UnEdited);
expchroma->setEditedState(spotState->expchroma ? Edited : UnEdited);
sensiex->setEditedState(spotState->sensiex ? Edited : UnEdited);
@@ -12621,6 +12623,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
expvibrance->set_inconsistent(!spotState->expvibrance);
saturated->setEditedState(spotState->saturated ? Edited : UnEdited);
pastels->setEditedState(spotState->pastels ? Edited : UnEdited);
+ warm->setEditedState(spotState->warm ? Edited : UnEdited);
psThreshold->setEditedState(spotState->psthreshold ? Edited : UnEdited);
protectSkins->set_inconsistent(multiImage && !spotState->protectskins);
avoidColorShift->set_inconsistent(multiImage && !spotState->avoidcolorshift);
diff --git a/rtgui/locallab.h b/rtgui/locallab.h
index 2f76f76c1..f9b40ba8b 100644
--- a/rtgui/locallab.h
+++ b/rtgui/locallab.h
@@ -229,7 +229,7 @@ private:
Adjuster* const shadex;
Adjuster* const shcompr;
Adjuster* const expchroma;
- Adjuster* const warm;
+// Adjuster* const warm;
Adjuster* const sensiex;
Adjuster* const structexp;
Adjuster* const blurexpde;
@@ -277,6 +277,7 @@ private:
// Vibrance
Adjuster* const saturated;
Adjuster* const pastels;
+ Adjuster* const warm;
Adjuster* const sensiv;
Adjuster* const blendmaskvib;
Adjuster* const radmaskvib;
diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc
index cd2f4ee5b..a598e47ea 100644
--- a/rtgui/paramsedited.cc
+++ b/rtgui/paramsedited.cc
@@ -1056,7 +1056,6 @@ void ParamsEdited::initFrom(const std::vector&
locallab.spots.at(j).shadex = locallab.spots.at(j).shadex && pSpot.shadex == otherSpot.shadex;
locallab.spots.at(j).shcompr = locallab.spots.at(j).shcompr && pSpot.shcompr == otherSpot.shcompr;
locallab.spots.at(j).expchroma = locallab.spots.at(j).expchroma && pSpot.expchroma == otherSpot.expchroma;
- locallab.spots.at(j).warm = locallab.spots.at(j).warm && pSpot.warm == otherSpot.warm;
locallab.spots.at(j).sensiex = locallab.spots.at(j).sensiex && pSpot.sensiex == otherSpot.sensiex;
locallab.spots.at(j).structexp = locallab.spots.at(j).structexp && pSpot.structexp == otherSpot.structexp;
locallab.spots.at(j).blurexpde = locallab.spots.at(j).blurexpde && pSpot.blurexpde == otherSpot.blurexpde;
@@ -1125,6 +1124,7 @@ void ParamsEdited::initFrom(const std::vector&
locallab.spots.at(j).expvibrance = locallab.spots.at(j).expvibrance && pSpot.expvibrance == otherSpot.expvibrance;
locallab.spots.at(j).saturated = locallab.spots.at(j).saturated && pSpot.saturated == otherSpot.saturated;
locallab.spots.at(j).pastels = locallab.spots.at(j).pastels && pSpot.pastels == otherSpot.pastels;
+ locallab.spots.at(j).warm = locallab.spots.at(j).warm && pSpot.warm == otherSpot.warm;
locallab.spots.at(j).psthreshold = locallab.spots.at(j).psthreshold && pSpot.psthreshold == otherSpot.psthreshold;
locallab.spots.at(j).protectskins = locallab.spots.at(j).protectskins && pSpot.protectskins == otherSpot.protectskins;
locallab.spots.at(j).avoidcolorshift = locallab.spots.at(j).avoidcolorshift && pSpot.avoidcolorshift == otherSpot.avoidcolorshift;
@@ -3230,10 +3230,6 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
toEdit.locallab.spots.at(i).expchroma = mods.locallab.spots.at(i).expchroma;
}
- if (locallab.spots.at(i).warm) {
- toEdit.locallab.spots.at(i).warm = mods.locallab.spots.at(i).warm;
- }
-
if (locallab.spots.at(i).sensiex) {
toEdit.locallab.spots.at(i).sensiex = mods.locallab.spots.at(i).sensiex;
}
@@ -3495,6 +3491,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
toEdit.locallab.spots.at(i).pastels = mods.locallab.spots.at(i).pastels;
}
+ if (locallab.spots.at(i).warm) {
+ toEdit.locallab.spots.at(i).warm = mods.locallab.spots.at(i).warm;
+ }
+
if (locallab.spots.at(i).psthreshold) {
toEdit.locallab.spots.at(i).psthreshold = mods.locallab.spots.at(i).psthreshold;
}
@@ -5445,7 +5445,6 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
shadex(v),
shcompr(v),
expchroma(v),
- warm(v),
sensiex(v),
structexp(v),
blurexpde(v),
@@ -5512,6 +5511,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
expvibrance(v),
saturated(v),
pastels(v),
+ warm(v),
psthreshold(v),
protectskins(v),
avoidcolorshift(v),
@@ -5848,7 +5848,6 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
shadex = v;
shcompr = v;
expchroma = v;
- warm = v;
sensiex = v;
structexp = v;
blurexpde = v;
@@ -5917,6 +5916,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
expvibrance = v;
saturated = v;
pastels = v;
+ warm = v;
psthreshold = v;
protectskins = v;
avoidcolorshift = v;
diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h
index 200cc97c4..5470f4b9c 100644
--- a/rtgui/paramsedited.h
+++ b/rtgui/paramsedited.h
@@ -489,7 +489,6 @@ public:
bool shadex;
bool shcompr;
bool expchroma;
- bool warm;
bool sensiex;
bool structexp;
bool blurexpde;
@@ -556,6 +555,7 @@ public:
bool expvibrance;
bool saturated;
bool pastels;
+ bool warm;
bool psthreshold;
bool protectskins;
bool avoidcolorshift;