From 1570c39b7522ff16a3cbd8a240d2a49f7ca29569 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 14 Jan 2020 11:18:58 +0100 Subject: [PATCH] Iprovment to preview selection deltaE --- rtdata/languages/default | 2 ++ rtengine/iplocallab.cc | 20 ++++++++++---------- rtengine/procevents.h | 1 + rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtengine/refreshmap.cc | 3 ++- rtgui/controlspotpanel.cc | 24 ++++++++++++++++++++++++ rtgui/controlspotpanel.h | 4 ++++ rtgui/locallab.cc | 7 +++++++ rtgui/paramsedited.cc | 7 +++++++ rtgui/paramsedited.h | 1 + 11 files changed, 63 insertions(+), 11 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 4d999491a..a4ae5d41d 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1130,6 +1130,7 @@ HISTORY_MSG_890;Local - Contrast Wavelet Graduated angle HISTORY_MSG_891;Local - Contrast Wavelet Graduated HISTORY_MSG_892;Local - Encoding log Graduated Strength HISTORY_MSG_893;Local - Encoding log Graduated angle +HISTORY_MSG_894;Local - Color Preview dE HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction @@ -2259,6 +2260,7 @@ TP_LOCALLAB_CLIPTM;Clip Restored datas (gain) TP_LOCALLAB_COFR;Color & Light - Small defects TP_LOCALLAB_COL_NAME;Name TP_LOCALLAB_COL_VIS;Status +TP_LOCALLAB_COLORDE;Color preview selection ΔE TP_LOCALLAB_COMPFRA;Levels Dynamic Laplacian Range Compression ƒ TP_LOCALLAB_COMPREFRA;Levels Dynamic Wavelet Range (un)Compression TP_LOCALLAB_COMPRESS_TOOLTIP;Use if necessary the module 'Clarity & Sharp mask and Blend & Soft Images' by adjusting 'Soft radius' to reduce artifacts. diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index f2ae9febc..9200b4899 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -197,6 +197,7 @@ struct local_params { float iterat; float balance; float balanceh; + int colorde; int cir; float thr; float stru; @@ -542,6 +543,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall float iterati = (float) locallab.spots.at(sp).iter; float balanc = (float) locallab.spots.at(sp).balan; float balanch = (float) locallab.spots.at(sp).balanh; + int colorde = (int) locallab.spots.at(sp).colorde; if (iterati > 4.f || iterati < 0.2f) {//to avoid artifacts if user does not clear cache with new settings Can be suppressed after iterati = 2.f; @@ -1081,6 +1083,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall lp.iterat = iterati; lp.balance = balanc; lp.balanceh = balanch; + lp.colorde = colorde; lp.dxx = w * local_dxy; lp.dyy = h * local_dxy; lp.thr = thre; @@ -6470,7 +6473,11 @@ void ImProcFunctions::transit_shapedetect2(int call, int senstype, const LabImag clb = bufexpfin->b[y][x] - original->b[y + ystart][x + xstart]; } - const float previewint = settings->previewselection; + // const float previewint = settings->previewselection; + if(lp.colorde == 0) { + lp.colorde = -1;//to avoid black + } + const float realstrdE = reducdE * cli; const float realstradE = reducdE * cla; const float realstrbdE = reducdE * clb; @@ -6499,16 +6506,9 @@ void ImProcFunctions::transit_shapedetect2(int call, int senstype, const LabImag transformed->a[y + ystart][x + xstart] = CLIPC(difa); transformed->b[y + ystart][x + xstart] = CLIPC(difb); } else if (previewexp || previewvib || previewcol || previewSH || previewtm || previewlc) {//show deltaE - if (fabs(difb) < 500.f) {//if too low to be view use L - if (difb < 0.f) { - difb -= 0.5f * diflc; - } else { - difb += 0.5f * diflc; - } - } - + difb = reducdE * 20000.f * lp.colorde; transformed->a[y + ystart][x + xstart] = 0.f; - transformed->b[y + ystart][x + xstart] = (previewint * difb); + transformed->b[y + ystart][x + xstart] = difb; } } } diff --git a/rtengine/procevents.h b/rtengine/procevents.h index 8d62b6e0f..3344c19d8 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -919,6 +919,7 @@ enum ProcEventCode { Evlocallabwavgradl = 890, Evlocallabstrlog = 891, Evlocallabanglog = 892, + EvLocallabSpotcolorde = 893, NUMOFEVENTS }; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 4033f4a51..f694b70c8 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2439,6 +2439,7 @@ LocallabParams::LocallabSpot::LocallabSpot() : iter(2.0), balan(1.0), balanh(1.0), + colorde(-5.0), transitweak(1.0), transitgrad(0.0), avoid(false), @@ -2851,6 +2852,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const && iter == other.iter && balan == other.balan && balanh == other.balanh + && colorde == other.colorde && transitweak == other.transitweak && transitgrad == other.transitgrad && avoid == other.avoid @@ -4258,6 +4260,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->locallab.spots.at(i).iter, "Locallab", "Iter_" + std::to_string(i), spot.iter, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).balan, "Locallab", "Balan_" + std::to_string(i), spot.balan, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).balanh, "Locallab", "Balanh_" + std::to_string(i), spot.balanh, keyFile); + saveToKeyfile(!pedited || pedited->locallab.spots.at(i).colorde, "Locallab", "Colorde_" + std::to_string(i), spot.colorde, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).transitweak, "Locallab", "Transitweak_" + std::to_string(i), spot.transitweak, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).transitgrad, "Locallab", "Transitgrad_" + std::to_string(i), spot.transitgrad, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).avoid, "Locallab", "Avoid_" + std::to_string(i), spot.avoid, keyFile); @@ -5779,6 +5782,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Locallab", "Iter_" + std::to_string(i), pedited, spot.iter, spotEdited.iter); assignFromKeyfile(keyFile, "Locallab", "Balan_" + std::to_string(i), pedited, spot.balan, spotEdited.balan); assignFromKeyfile(keyFile, "Locallab", "Balanh_" + std::to_string(i), pedited, spot.balanh, spotEdited.balanh); + assignFromKeyfile(keyFile, "Locallab", "Colorde_" + std::to_string(i), pedited, spot.colorde, spotEdited.colorde); assignFromKeyfile(keyFile, "Locallab", "Transitweak_" + std::to_string(i), pedited, spot.transitweak, spotEdited.transitweak); assignFromKeyfile(keyFile, "Locallab", "Transitgrad_" + std::to_string(i), pedited, spot.transitgrad, spotEdited.transitgrad); assignFromKeyfile(keyFile, "Locallab", "Avoid_" + std::to_string(i), pedited, spot.avoid, spotEdited.avoid); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 909078d88..7fabe0ace 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -982,6 +982,7 @@ struct LocallabParams { double iter; double balan; double balanh; + double colorde; double transitweak; double transitgrad; bool avoid; diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index 3b4bca4e4..9bf0ebb3f 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -922,7 +922,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = { LUMINANCECURVE, //Evlocallabangwav LUMINANCECURVE, //Evlocallabwavgradl LUMINANCECURVE, //Evlocallabstrlog - LUMINANCECURVE //Evlocallabanglog + LUMINANCECURVE, //Evlocallabanglog + LUMINANCECURVE //EvLocallabSpotcolorde }; diff --git a/rtgui/controlspotpanel.cc b/rtgui/controlspotpanel.cc index d39a46440..f470a39dc 100644 --- a/rtgui/controlspotpanel.cc +++ b/rtgui/controlspotpanel.cc @@ -70,6 +70,7 @@ ControlSpotPanel::ControlSpotPanel(): iter_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_PROXI"), 0.2, 10.0, 0.1, 2.0))), balan_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BALAN"), 0.2, 2.5, 0.1, 1.0, Gtk::manage(new RTImage("rawtherapee-logo-16.png")), Gtk::manage(new RTImage("circle-white-small.png"))))), balanh_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BALANH"), 0.2, 2.5, 0.1, 1.0, Gtk::manage(new RTImage("rawtherapee-logo-16.png")),Gtk::manage(new RTImage("circle-red-green-small.png"))))), + colorde_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_COLORDE"), -11, 11, 2, -5, Gtk::manage(new RTImage("circle-blue-small.png")),Gtk::manage(new RTImage("circle-yellow-small.png"))))), transitweak_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_TRANSITWEAK"), 0.5, 15.0, 0.1, 1.0))), transitgrad_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_TRANSITGRAD"), -1.0, 1.0, 0.01, 0.0))), scopemask_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SCOPEMASK"), 0, 100, 1, 60))), @@ -379,11 +380,13 @@ ControlSpotPanel::ControlSpotPanel(): // if (complexsoft < 2) { artifBox->pack_start(*balan_); artifBox->pack_start(*balanh_); + artifBox->pack_start(*colorde_); // } iter_->setAdjusterListener(this); balan_->setAdjusterListener(this); balanh_->setAdjusterListener(this); + colorde_->setAdjusterListener(this); artifFrame->add(*artifBox); pack_start(*artifFrame); @@ -771,6 +774,7 @@ void ControlSpotPanel::load_ControlSpot_param() iter_->setValue((double)row[spots_.iter]); balan_->setValue((double)row[spots_.balan]); balanh_->setValue((double)row[spots_.balanh]); + colorde_->setValue((double)row[spots_.colorde]); transitweak_->setValue((double)row[spots_.transitweak]); transitgrad_->setValue((double)row[spots_.transitgrad]); scopemask_->setValue((double)row[spots_.scopemask]); @@ -1263,6 +1267,14 @@ void ControlSpotPanel::adjusterChanged(Adjuster* a, double newval) } } + if (a == colorde_) { + row[spots_.colorde] = colorde_->getValue(); + + if (listener) { + listener->panelChanged(EvLocallabSpotcolorde, colorde_->getTextValue()); + } + } + if (a == transitweak_) { row[spots_.transitweak] = transitweak_->getValue(); @@ -1540,6 +1552,7 @@ void ControlSpotPanel::disableParamlistener(bool cond) iter_->block(cond); balan_->block(cond); balanh_->block(cond); + colorde_->block(cond); transitweak_->block(cond); transitgrad_->block(cond); scopemask_->block(cond); @@ -1578,6 +1591,7 @@ void ControlSpotPanel::setParamEditable(bool cond) iter_->set_sensitive(cond); balan_->set_sensitive(cond); balanh_->set_sensitive(cond); + colorde_->set_sensitive(cond); transitweak_->set_sensitive(cond); transitgrad_->set_sensitive(cond); scopemask_->set_sensitive(cond); @@ -2224,6 +2238,7 @@ ControlSpotPanel::SpotRow* ControlSpotPanel::getSpot(const int id) r->iter = row[spots_.iter]; r->balan = row[spots_.balan]; r->balanh = row[spots_.balanh]; + r->colorde = row[spots_.colorde]; r->transitweak = row[spots_.transitweak]; r->transitgrad = row[spots_.transitgrad]; r->scopemask = row[spots_.scopemask]; @@ -2361,6 +2376,7 @@ void ControlSpotPanel::addControlSpot(SpotRow* newSpot) row[spots_.iter] = newSpot->iter; row[spots_.balan] = newSpot->balan; row[spots_.balanh] = newSpot->balanh; + row[spots_.colorde] = newSpot->colorde; row[spots_.transitweak] = newSpot->transitweak; row[spots_.transitgrad] = newSpot->transitgrad; row[spots_.scopemask] = newSpot->scopemask; @@ -2417,6 +2433,7 @@ int ControlSpotPanel::updateControlSpot(SpotRow* spot) row[spots_.iter] = spot->iter; row[spots_.balan] = spot->balan; row[spots_.balanh] = spot->balanh; + row[spots_.colorde] = spot->colorde; row[spots_.transitweak] = spot->transitweak; row[spots_.transitgrad] = spot->transitgrad; row[spots_.scopemask] = spot->scopemask; @@ -2519,6 +2536,7 @@ ControlSpotPanel::SpotEdited* ControlSpotPanel::getEditedStates() se->iter = iter_->getEditedState(); se->balan = balan_->getEditedState(); se->balanh = balanh_->getEditedState(); + se->colorde = colorde_->getEditedState(); se->transitweak = transitweak_->getEditedState(); se->transitgrad = transitgrad_->getEditedState(); se->scopemask = scopemask_->getEditedState(); @@ -2606,6 +2624,7 @@ void ControlSpotPanel::setEditedStates(SpotEdited* se) iter_->setEditedState(se->iter ? Edited : UnEdited); balan_->setEditedState(se->balan ? Edited : UnEdited); balanh_->setEditedState(se->balanh ? Edited : UnEdited); + colorde_->setEditedState(se->colorde ? Edited : UnEdited); transitweak_->setEditedState(se->transitweak ? Edited : UnEdited); transitgrad_->setEditedState(se->transitgrad ? Edited : UnEdited); scopemask_->setEditedState(se->scopemask ? Edited : UnEdited); @@ -2660,6 +2679,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP iter_->setDefault(defSpot->iter); balan_->setDefault(defSpot->balan); balanh_->setDefault(defSpot->balanh); + colorde_->setDefault(defSpot->colorde); transitweak_->setDefault(defSpot->transitweak); transitgrad_->setDefault(defSpot->transitgrad); scopemask_->setDefault(defSpot->scopemask); @@ -2683,6 +2703,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP iter_->setDefaultEditedState(Irrelevant); balan_->setDefaultEditedState(Irrelevant); balanh_->setDefaultEditedState(Irrelevant); + colorde_->setDefaultEditedState(Irrelevant); transitweak_->setDefaultEditedState(Irrelevant); transitgrad_->setDefaultEditedState(Irrelevant); scopemask_->setDefaultEditedState(Irrelevant); @@ -2710,6 +2731,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP iter_->setDefaultEditedState(defSpotState->iter ? Edited : UnEdited); balan_->setDefaultEditedState(defSpotState->balan ? Edited : UnEdited); balanh_->setDefaultEditedState(defSpotState->balanh ? Edited : UnEdited); + colorde_->setDefaultEditedState(defSpotState->colorde ? Edited : UnEdited); transitweak_->setDefaultEditedState(defSpotState->transitweak ? Edited : UnEdited); transitgrad_->setDefaultEditedState(defSpotState->transitgrad ? Edited : UnEdited); scopemask_->setDefaultEditedState(defSpotState->scopemask ? Edited : UnEdited); @@ -2738,6 +2760,7 @@ void ControlSpotPanel::setBatchMode(bool batchMode) iter_->showEditedCB(); balan_->showEditedCB(); balanh_->showEditedCB(); + colorde_->showEditedCB(); transitweak_->showEditedCB(); transitgrad_->showEditedCB(); scopemask_->showEditedCB(); @@ -2784,6 +2807,7 @@ ControlSpotPanel::ControlSpots::ControlSpots() add(iter); add(balan); add(balanh); + add(colorde); add(transitweak); add(transitgrad); add(scopemask); diff --git a/rtgui/controlspotpanel.h b/rtgui/controlspotpanel.h index ec3258a3a..895504357 100644 --- a/rtgui/controlspotpanel.h +++ b/rtgui/controlspotpanel.h @@ -65,6 +65,7 @@ public: double iter; double balan; double balanh; + double colorde; double transitweak; double transitgrad; int scopemask; @@ -107,6 +108,7 @@ public: bool iter; bool balan; bool balanh; + bool colorde; bool transitweak; bool transitgrad; bool scopemask; @@ -338,6 +340,7 @@ private: Gtk::TreeModelColumn iter; Gtk::TreeModelColumn balan; Gtk::TreeModelColumn balanh; + Gtk::TreeModelColumn colorde; Gtk::TreeModelColumn transitweak; Gtk::TreeModelColumn transitgrad; Gtk::TreeModelColumn scopemask; @@ -414,6 +417,7 @@ private: Adjuster* const iter_; Adjuster* const balan_; Adjuster* const balanh_; + Adjuster* const colorde_; Adjuster* const transitweak_; Adjuster* const transitgrad_; Adjuster* const scopemask_; diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc index 1d87aba4d..6b4f79c6e 100644 --- a/rtgui/locallab.cc +++ b/rtgui/locallab.cc @@ -4382,6 +4382,7 @@ void Locallab::read(const rtengine::procparams::ProcParams* pp, const ParamsEdit r->iter = pp->locallab.spots.at(i).iter; r->balan = pp->locallab.spots.at(i).balan; r->balanh = pp->locallab.spots.at(i).balanh; + r->colorde = pp->locallab.spots.at(i).colorde; r->transitweak = pp->locallab.spots.at(i).transitweak; r->transitgrad = pp->locallab.spots.at(i).transitgrad; if (complexsoft == 2) { @@ -4534,6 +4535,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited r->iter = newSpot->iter; r->balan = newSpot->balan; r->balanh = newSpot->balanh; + r->colorde = newSpot->colorde; r->transitweak = newSpot->transitweak; r->transitgrad = newSpot->transitgrad; if (complexsoft == 2) { @@ -4774,6 +4776,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited r->iter = newSpot->iter; r->balan = newSpot->balan; r->balanh = newSpot->balanh; + r->colorde = newSpot->colorde; r->transitweak = newSpot->transitweak; r->transitgrad = newSpot->transitgrad; if (complexsoft == 2) { @@ -4913,6 +4916,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited pp->locallab.spots.at(pp->locallab.selspot).iter = r->iter; pp->locallab.spots.at(pp->locallab.selspot).balan = r->balan; pp->locallab.spots.at(pp->locallab.selspot).balanh = r->balanh; + pp->locallab.spots.at(pp->locallab.selspot).colorde = r->colorde; pp->locallab.spots.at(pp->locallab.selspot).transitweak = r->transitweak; pp->locallab.spots.at(pp->locallab.selspot).transitgrad = r->transitgrad; if (complexsoft == 2) { @@ -5514,6 +5518,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited pe->locallab.spots.at(pp->locallab.selspot).lumask = pe->locallab.spots.at(pp->locallab.selspot).lumask || se->lumask; pe->locallab.spots.at(pp->locallab.selspot).balan = pe->locallab.spots.at(pp->locallab.selspot).balan || se->balan; pe->locallab.spots.at(pp->locallab.selspot).balanh = pe->locallab.spots.at(pp->locallab.selspot).balanh || se->balanh; + pe->locallab.spots.at(pp->locallab.selspot).colorde = pe->locallab.spots.at(pp->locallab.selspot).colorde || se->colorde; pe->locallab.spots.at(pp->locallab.selspot).avoid = pe->locallab.spots.at(pp->locallab.selspot).avoid || se->avoid; pe->locallab.spots.at(pp->locallab.selspot).recurs = pe->locallab.spots.at(pp->locallab.selspot).recurs || se->recurs; pe->locallab.spots.at(pp->locallab.selspot).laplac = pe->locallab.spots.at(pp->locallab.selspot).laplac || se->laplac; @@ -5932,6 +5937,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited pedited->locallab.spots.at(pp->locallab.selspot).iter = pedited->locallab.spots.at(pp->locallab.selspot).iter || se->iter; pedited->locallab.spots.at(pp->locallab.selspot).balan = pedited->locallab.spots.at(pp->locallab.selspot).balan || se->balan; pedited->locallab.spots.at(pp->locallab.selspot).balanh = pedited->locallab.spots.at(pp->locallab.selspot).balanh || se->balanh; + pedited->locallab.spots.at(pp->locallab.selspot).colorde = pedited->locallab.spots.at(pp->locallab.selspot).colorde || se->colorde; pedited->locallab.spots.at(pp->locallab.selspot).transitweak = pedited->locallab.spots.at(pp->locallab.selspot).transitweak || se->transitweak; pedited->locallab.spots.at(pp->locallab.selspot).transitgrad = pedited->locallab.spots.at(pp->locallab.selspot).transitgrad || se->transitgrad; pedited->locallab.spots.at(pp->locallab.selspot).scopemask = pedited->locallab.spots.at(pp->locallab.selspot).scopemask || se->scopemask; @@ -12578,6 +12584,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con se->iter = spotState->iter; se->balan = spotState->balan; se->balanh = spotState->balanh; + se->colorde = spotState->colorde; se->transitweak = spotState->transitweak; se->transitgrad = spotState->transitgrad; se->scopemask = spotState->scopemask; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index bab6b35cc..3c0f7ac89 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -976,6 +976,7 @@ void ParamsEdited::initFrom(const std::vector& locallab.spots.at(j).iter = locallab.spots.at(j).iter && pSpot.iter == otherSpot.iter; locallab.spots.at(j).balan = locallab.spots.at(j).balan && pSpot.balan == otherSpot.balan; locallab.spots.at(j).balanh = locallab.spots.at(j).balanh && pSpot.balanh == otherSpot.balanh; + locallab.spots.at(j).colorde = locallab.spots.at(j).colorde && pSpot.colorde == otherSpot.colorde; locallab.spots.at(j).transitweak = locallab.spots.at(j).transitweak && pSpot.transitweak == otherSpot.transitweak; locallab.spots.at(j).transitgrad = locallab.spots.at(j).transitgrad && pSpot.transitgrad == otherSpot.transitgrad; locallab.spots.at(j).avoid = locallab.spots.at(j).avoid && pSpot.avoid == otherSpot.avoid; @@ -2925,6 +2926,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.locallab.spots.at(i).balanh = mods.locallab.spots.at(i).balanh; } + if (locallab.spots.at(i).colorde) { + toEdit.locallab.spots.at(i).colorde = mods.locallab.spots.at(i).colorde; + } + if (locallab.spots.at(i).transitweak) { toEdit.locallab.spots.at(i).transitweak = mods.locallab.spots.at(i).transitweak; } @@ -5390,6 +5395,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) : iter(v), balan(v), balanh(v), + colorde(v), transitweak(v), transitgrad(v), avoid(v), @@ -5798,6 +5804,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v) iter = v; balan = v; balanh = v; + colorde = v; transitweak = v; transitgrad = v; avoid = v; diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 91ab10a3a..3b2f5a049 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -409,6 +409,7 @@ public: bool iter; bool balan; bool balanh; + bool colorde; bool transitweak; bool transitgrad; bool avoid;