diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc index f72817bd6..39cf3bdaa 100644 --- a/rtgui/locallab.cc +++ b/rtgui/locallab.cc @@ -160,35 +160,90 @@ Locallab::Locallab(): maskCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2CurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))), mask2CurveEditorGwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVMASK"))), + + Lmaskshape(static_cast(mask2CurveEditorG->addCurve(CT_Diagonal, "L(L)"))), + llshape(static_cast(llCurveEditorG->addCurve(CT_Diagonal, "L(L)"))), + ccshape(static_cast(llCurveEditorG->addCurve(CT_Diagonal, "C(C)"))), + rgbshape(static_cast(rgbCurveEditorG->addCurve(CT_Diagonal,"",toneMethod))), + LHshape(static_cast(HCurveEditorG->addCurve(CT_Flat, "L(H)", nullptr, false, true))), + HHshape(static_cast(HCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))), + CCmaskshape(static_cast(maskCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), + LLmaskshape(static_cast(maskCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + HHmaskshape(static_cast(maskCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), + LLmaskcolshapewav(static_cast(mask2CurveEditorGwav->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + // Exposure curveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_CURVEEDITOR_TONES_LABEL"))), maskexpCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2expCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))), + + Lmaskexpshape(static_cast(mask2expCurveEditorG->addCurve(CT_Diagonal, "L(L)"))), + shapeexpos(static_cast(curveEditorG->addCurve(CT_Diagonal, ""))), + CCmaskexpshape(static_cast(maskexpCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), + LLmaskexpshape(static_cast(maskexpCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + HHmaskexpshape(static_cast(maskexpCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), + //Shadows Highlight maskSHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2SHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))), + + LmaskSHshape(static_cast(mask2SHCurveEditorG->addCurve(CT_Diagonal, "L(L)"))), + CCmaskSHshape(static_cast(maskSHCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), + LLmaskSHshape(static_cast(maskSHCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + HHmaskSHshape(static_cast(maskSHCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), + // Vibrance curveEditorGG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL"))), + + skinTonesCurve(static_cast(curveEditorGG->addCurve(CT_Diagonal, M("TP_VIBRANCE_CURVEEDITOR_SKINTONES")))), + //Blur maskblCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2blCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2blCurveEditorGwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVMASK"))), + Lmaskblshape(static_cast(mask2blCurveEditorG->addCurve(CT_Diagonal, "L(L)"))), + CCmaskblshape(static_cast(maskblCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), + LLmaskblshape(static_cast(maskblCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + HHmaskblshape(static_cast(maskblCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), + LLmaskblshapewav(static_cast(mask2blCurveEditorGwav->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + //TM masktmCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2tmCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))), - // Retinex + + Lmasktmshape(static_cast(mask2tmCurveEditorG->addCurve(CT_Diagonal, "L(L)"))), + CCmasktmshape(static_cast(masktmCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), + LLmasktmshape(static_cast(masktmCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + HHmasktmshape(static_cast(masktmCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), + +// Retinex LocalcurveEditortransT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONMAP"))), LocalcurveEditorgainT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONGAIN"))), maskretiCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2retiCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))), - //Local contrast + + Lmaskretishape(static_cast(mask2retiCurveEditorG->addCurve(CT_Diagonal, "L(L)"))), + cTtransshape(static_cast(LocalcurveEditortransT->addCurve(CT_Flat, "", nullptr, false, false))), + cTgainshape(static_cast(LocalcurveEditorgainT->addCurve(CT_Flat, "", nullptr, false, false))), + CCmaskretishape(static_cast(maskretiCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), + LLmaskretishape(static_cast(maskretiCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + HHmaskretishape(static_cast(maskretiCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), + +//Local contrast LocalcurveEditorwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAV"))), + wavshape(static_cast(LocalcurveEditorwav->addCurve(CT_Flat, "", nullptr, false, false))), + //CBDL maskcbCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2cbCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))), + Lmaskcbshape(static_cast(mask2cbCurveEditorG->addCurve(CT_Diagonal, "L(L)"))), + CCmaskcbshape(static_cast(maskcbCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), + LLmaskcbshape(static_cast(maskcbCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + HHmaskcbshape(static_cast(maskcbCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), + // Adjuster widgets // Color & Light lightness(Gtk::manage(new Adjuster(M("TP_LOCALLAB_LIGHTNESS"), -100, 500, 1, 0))), @@ -467,23 +522,29 @@ Locallab::Locallab(): // retiBox(Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_CLARIFRA")))), retiBox(Gtk::manage(new ToolParamBlock())), maskretiBox(Gtk::manage(new ToolParamBlock())), + labgrid(Gtk::manage(new LabGrid(EvLocallabLabGridValue, M("TP_LOCALLAB_LABGRID_VALUES")))), + mMLabels(Gtk::manage(new Gtk::Label("---"))), + transLabels(Gtk::manage(new Gtk::Label("---"))), + transLabels2(Gtk::manage(new Gtk::Label("---"))), + // Others + ctboxsoftmethod(Gtk::manage(new Gtk::HBox())), + ctboxexpmethod (Gtk::manage(new Gtk::HBox())), + nextmin(0.), + nextmax(0.), + nextminiT(0.), + nextmaxiT(0.), + nextmeanT(0.), + nextminT(0.), + nextmaxT(0.), + nextsigma(0.), defparams(nullptr), defpedited(nullptr), pe(nullptr) { ToolVBox* const panel = Gtk::manage(new ToolVBox()); - bool showtooltip = options.showtooltip; + const bool showtooltip = options.showtooltip; CurveListener::setMulti(true); - float R, G, B; - nextmin = 0.; - nextmax = 0.; - nextminiT = 0.; - nextmaxiT = 0.; - nextmeanT = 0.; - nextsigma = 0.; - nextminT = 0.; - nextmaxT = 0.; rtengine::procparams::LocallabParams::LocallabSpot defSpot; @@ -565,29 +626,28 @@ Locallab::Locallab(): toneMethodConn = toneMethod->signal_changed().connect(sigc::mem_fun(*this, &Locallab::toneMethodChanged)); llCurveEditorG->setCurveListener(this); - llshape = static_cast(llCurveEditorG->addCurve(CT_Diagonal, "L(L)")); llshape->setResetCurve(DiagonalCurveType(defSpot.llcurve.at(0)), defSpot.llcurve); if (showtooltip) { llshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); } - std::vector mllshape; - mllshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mllshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector zero_one_shape = { + {0., 0., 0., 0.}, + {1., 1., 1., 1.} + }; + + const std::vector& mllshape = zero_one_shape; llshape->setBottomBarBgGradient(mllshape); llshape->setLeftBarBgGradient(mllshape); - ccshape = static_cast(llCurveEditorG->addCurve(CT_Diagonal, "C(C)")); ccshape->setResetCurve(DiagonalCurveType(defSpot.cccurve.at(0)), defSpot.cccurve); if (showtooltip) { ccshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); } - std::vector mccshape; - mccshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mccshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mccshape = zero_one_shape; ccshape->setBottomBarBgGradient(mccshape); ccshape->setLeftBarBgGradient(mccshape); @@ -595,7 +655,6 @@ Locallab::Locallab(): llCurveEditorG->curveListComplete(); HCurveEditorG->setCurveListener(this); - LHshape = static_cast(HCurveEditorG->addCurve(CT_Flat, "L(H)", nullptr, false, true)); LHshape->setIdentityValue(0.); LHshape->setResetCurve(FlatCurveType(defSpot.LHcurve.at(0)), defSpot.LHcurve); @@ -604,17 +663,26 @@ Locallab::Locallab(): } LHshape->setCurveColorProvider(this, 1); - std::vector mLHshape; - for (int i = 0; i < 7; i++) { - float x = float (i) * (1.0f / 6.0); - Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); - mLHshape.push_back(GradientMilestone(double (x), double (R), double (G), double (B))); - } + const std::vector six_shape = + []() -> std::vector + { + std::vector res; + float R, G, B; + + for (int i = 0; i < 7; ++i) { + const float x = static_cast(i) * (1.f / 6.f); + Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); + res.emplace_back(x, R, G, B); + } + + return res; + }(); + + const std::vector& mLHshape = six_shape; LHshape->setBottomBarBgGradient(mLHshape); - HHshape = static_cast(HCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true)); HHshape->setIdentityValue(0.); HHshape->setResetCurve(FlatCurveType(defSpot.HHcurve.at(0)), defSpot.HHcurve); @@ -623,31 +691,21 @@ Locallab::Locallab(): } HHshape->setCurveColorProvider(this, 1); - std::vector mHHshape; - - for (int i = 0; i < 7; i++) { - float x = float (i) * (1.0f / 6.0); - - Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); - mHHshape.push_back(GradientMilestone(double (x), double (R), double (G), double (B))); - } + const std::vector& mHHshape = six_shape; HHshape->setBottomBarBgGradient(mHHshape); HCurveEditorG->curveListComplete(); rgbCurveEditorG->setCurveListener(this); - rgbshape = static_cast(rgbCurveEditorG->addCurve(CT_Diagonal,"",toneMethod)); rgbshape->setResetCurve(DiagonalCurveType(defSpot.rgbcurve.at(0)), defSpot.rgbcurve); if (showtooltip) { rgbshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); } - std::vector mrgbshape; - mrgbshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mrgbshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mrgbshape = zero_one_shape; rgbshape->setBottomBarBgGradient(mrgbshape); rgbshape->setLeftBarBgGradient(mrgbshape); rgbCurveEditorG->curveListComplete(); @@ -703,7 +761,6 @@ Locallab::Locallab(): maskCurveEditorG->setCurveListener(this); - CCmaskshape = static_cast(maskCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false)); CCmaskshape->setIdentityValue(0.); CCmaskshape->setResetCurve(FlatCurveType(defSpot.CCmaskcurve.at(0)), defSpot.CCmaskcurve); @@ -713,7 +770,6 @@ Locallab::Locallab(): CCmaskshape->setBottomBarColorProvider(this, 7); - LLmaskshape = static_cast(maskCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmaskshape->setIdentityValue(0.); LLmaskshape->setResetCurve(FlatCurveType(defSpot.LLmaskcurve.at(0)), defSpot.LLmaskcurve); @@ -727,7 +783,6 @@ Locallab::Locallab(): LLmaskshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP")); } - HHmaskshape = static_cast(maskCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true)); HHmaskshape->setIdentityValue(0.); HHmaskshape->setResetCurve(FlatCurveType(defSpot.HHmaskcurve.at(0)), defSpot.HHmaskcurve); @@ -741,22 +796,18 @@ Locallab::Locallab(): maskCurveEditorG->curveListComplete(); mask2CurveEditorG->setCurveListener(this); - Lmaskshape = static_cast(mask2CurveEditorG->addCurve(CT_Diagonal, "L(L)")); Lmaskshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskcurve.at(0)), defSpot.Lmaskcurve); if (showtooltip) { Lmaskshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } - std::vector mLmaskshape; - mLmaskshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mLmaskshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mLmaskshape = zero_one_shape; Lmaskshape->setBottomBarBgGradient(mLmaskshape); Lmaskshape->setLeftBarBgGradient(mLmaskshape); mask2CurveEditorG->curveListComplete(); mask2CurveEditorGwav->setCurveListener(this); - LLmaskcolshapewav = static_cast(mask2CurveEditorGwav->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmaskcolshapewav->setIdentityValue(0.); LLmaskcolshapewav->setResetCurve(FlatCurveType(defSpot.LLmaskcolcurvewav.at(0)), defSpot.LLmaskcolcurvewav); @@ -771,8 +822,6 @@ Locallab::Locallab(): csThresholdcol->setAdjusterListener(this); - labgrid = Gtk::manage(new LabGrid(EvLocallabLabGridValue, M("TP_LOCALLAB_LABGRID_VALUES"))); - ToolParamBlock* const colorBox = Gtk::manage(new ToolParamBlock()); Gtk::Frame* const superFrame = Gtk::manage(new Gtk::Frame()); superFrame->set_label_align(0.025, 0.5); @@ -858,7 +907,6 @@ Locallab::Locallab(): expMethod->set_tooltip_text(M("TP_LOCALLAB_EXPMETHOD_TOOLTIP")); } - ctboxexpmethod = Gtk::manage(new Gtk::HBox()); Gtk::Label* const labelexpmethod = Gtk::manage(new Gtk::Label(M("TP_LOCALLAB_NOISEMETH") + ":")); ctboxexpmethod->pack_start(*labelexpmethod, Gtk::PACK_SHRINK, 4); @@ -940,16 +988,13 @@ Locallab::Locallab(): curveEditorG->setCurveListener(this); - shapeexpos = static_cast(curveEditorG->addCurve(CT_Diagonal, "")); shapeexpos->setResetCurve(DiagonalCurveType(defSpot.excurve.at(0)), defSpot.excurve); if (showtooltip) { shapeexpos->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_TONES_TOOLTIP")); } - std::vector mshapeexpos; - mshapeexpos.push_back(GradientMilestone(0., 0., 0., 0.)); - mshapeexpos.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mshapeexpos = zero_one_shape; shapeexpos->setBottomBarBgGradient(mshapeexpos); shapeexpos->setLeftBarBgGradient(mshapeexpos); @@ -986,7 +1031,6 @@ Locallab::Locallab(): maskexpCurveEditorG->setCurveListener(this); - CCmaskexpshape = static_cast(maskexpCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false)); CCmaskexpshape->setIdentityValue(0.); CCmaskexpshape->setResetCurve(FlatCurveType(defSpot.CCmaskexpcurve.at(0)), defSpot.CCmaskexpcurve); @@ -996,7 +1040,6 @@ Locallab::Locallab(): CCmaskexpshape->setBottomBarColorProvider(this, 7); - LLmaskexpshape = static_cast(maskexpCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmaskexpshape->setIdentityValue(0.); LLmaskexpshape->setResetCurve(FlatCurveType(defSpot.LLmaskexpcurve.at(0)), defSpot.LLmaskexpcurve); @@ -1006,7 +1049,6 @@ Locallab::Locallab(): LLmaskexpshape->setBottomBarBgGradient(mllshape); - HHmaskexpshape = static_cast(maskexpCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true)); HHmaskexpshape->setIdentityValue(0.); HHmaskexpshape->setResetCurve(FlatCurveType(defSpot.HHmaskexpcurve.at(0)), defSpot.HHmaskexpcurve); @@ -1020,16 +1062,13 @@ Locallab::Locallab(): maskexpCurveEditorG->curveListComplete(); mask2expCurveEditorG->setCurveListener(this); - Lmaskexpshape = static_cast(mask2expCurveEditorG->addCurve(CT_Diagonal, "L(L)")); Lmaskexpshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskexpcurve.at(0)), defSpot.Lmaskexpcurve); if (showtooltip) { Lmaskexpshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } - std::vector mLmaskexpshape; - mLmaskexpshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mLmaskexpshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mLmaskexpshape = zero_one_shape; Lmaskexpshape->setBottomBarBgGradient(mLmaskexpshape); Lmaskexpshape->setLeftBarBgGradient(mLmaskexpshape); mask2expCurveEditorG->curveListComplete(); @@ -1135,9 +1174,8 @@ Locallab::Locallab(): expmasksh->set_tooltip_markup(M("TP_LOCALLAB_MASK_TOOLTIP")); } - for (int i = 0; i < 5; i++) { - Glib::ustring ss; - ss = Glib::ustring::format(i); + for (int i = 0; i < 5; ++i) { + Glib::ustring ss = Glib::ustring::format(i); if (i == 0) { ss += Glib::ustring::compose(" (%1)", M("TP_LOCALLAB_LUMADARKEST")); @@ -1207,7 +1245,6 @@ Locallab::Locallab(): maskSHCurveEditorG->setCurveListener(this); - CCmaskSHshape = static_cast(maskSHCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false)); CCmaskSHshape->setIdentityValue(0.); CCmaskSHshape->setResetCurve(FlatCurveType(defSpot.CCmaskSHcurve.at(0)), defSpot.CCmaskSHcurve); @@ -1217,7 +1254,6 @@ Locallab::Locallab(): CCmaskSHshape->setBottomBarColorProvider(this, 7); - LLmaskSHshape = static_cast(maskSHCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmaskSHshape->setIdentityValue(0.); LLmaskSHshape->setResetCurve(FlatCurveType(defSpot.LLmaskSHcurve.at(0)), defSpot.LLmaskSHcurve); @@ -1227,7 +1263,6 @@ Locallab::Locallab(): LLmaskSHshape->setBottomBarBgGradient(mllshape); - HHmaskSHshape = static_cast(maskSHCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true)); HHmaskSHshape->setIdentityValue(0.); HHmaskSHshape->setResetCurve(FlatCurveType(defSpot.HHmaskSHcurve.at(0)), defSpot.HHmaskSHcurve); @@ -1241,16 +1276,13 @@ Locallab::Locallab(): maskSHCurveEditorG->curveListComplete(); mask2SHCurveEditorG->setCurveListener(this); - LmaskSHshape = static_cast(mask2SHCurveEditorG->addCurve(CT_Diagonal, "L(L)")); LmaskSHshape->setResetCurve(DiagonalCurveType(defSpot.LmaskSHcurve.at(0)), defSpot.LmaskSHcurve); if (showtooltip) { LmaskSHshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } - std::vector mLmaskSHshape; - mLmaskSHshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mLmaskSHshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mLmaskSHshape = zero_one_shape; LmaskSHshape->setBottomBarBgGradient(mLmaskSHshape); LmaskSHshape->setLeftBarBgGradient(mLmaskSHshape); mask2SHCurveEditorG->curveListComplete(); @@ -1258,7 +1290,7 @@ Locallab::Locallab(): ToolParamBlock* const shadhighBox = Gtk::manage(new ToolParamBlock()); shadhighBox->pack_start(*shMethod); - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 5; ++i) { shadhighBox->pack_start(*multipliersh[i]); } @@ -1337,18 +1369,24 @@ Locallab::Locallab(): curveEditorGG->setCurveListener(this); - skinTonesCurve = static_cast(curveEditorGG->addCurve(CT_Diagonal, M("TP_VIBRANCE_CURVEEDITOR_SKINTONES"))); - if (showtooltip) { skinTonesCurve->setTooltip(M("TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP")); } - std::vector mskinTonesCurve; + const std::vector mskinTonesCurve = + []() -> std::vector + { + std::vector res; + + float R, G, B; + Color::hsv2rgb01(0.92f, 0.45f, 0.6f, R, G, B); + res.emplace_back(0.0, R, G, B); + Color::hsv2rgb01(0.14056f, 0.45f, 0.6f, R, G, B); + res.emplace_back(1.0, R, G, B); + + return res; + }(); // -0.1 rad < Hue < 1.6 rad - Color::hsv2rgb01(0.92f, 0.45f, 0.6f, R, G, B); - mskinTonesCurve.push_back(GradientMilestone(0.0, double (R), double (G), double (B))); - Color::hsv2rgb01(0.14056f, 0.45f, 0.6f, R, G, B); - mskinTonesCurve.push_back(GradientMilestone(1.0, double (R), double (G), double (B))); skinTonesCurve->setBottomBarBgGradient(mskinTonesCurve); skinTonesCurve->setLeftBarBgGradient(mskinTonesCurve); skinTonesCurve->setRangeLabels( @@ -1387,7 +1425,6 @@ Locallab::Locallab(): softMethodConn = softMethod->signal_changed().connect(sigc::mem_fun(*this, &Locallab::softMethodChanged)); - ctboxsoftmethod = Gtk::manage(new Gtk::HBox()); Gtk::Label* const labelsoftmethod = Gtk::manage(new Gtk::Label(M("TP_LOCALLAB_SHOWDCT") + ":")); ctboxsoftmethod->pack_start(*labelsoftmethod, Gtk::PACK_SHRINK, 4); @@ -1431,7 +1468,7 @@ Locallab::Locallab(): TMLabel->set_markup(Glib::ustring("") + escapeHtmlChars(M("TP_LOCALLAB_TM")) + Glib::ustring("")); TMLabel->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); TMTitleHBox->pack_start(*TMLabel, Gtk::PACK_EXPAND_WIDGET, 0); - RTImage *TMImage = Gtk::manage(new RTImage("one-to-one-small.png")); + RTImage* const TMImage = Gtk::manage(new RTImage("one-to-one-small.png")); if (showtooltip) { TMImage->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); @@ -1482,11 +1519,10 @@ Locallab::Locallab(): rewei->set_tooltip_text(M("TP_LOCALLAB_TONEMAPESTOP_TOOLTIP")); } - equiltmConn = equiltm->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::equiltmChanged)); + equiltmConn = equiltm->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::equiltmChanged)); masktmCurveEditorG->setCurveListener(this); - CCmasktmshape = static_cast(masktmCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false)); CCmasktmshape->setIdentityValue(0.); CCmasktmshape->setResetCurve(FlatCurveType(defSpot.CCmasktmcurve.at(0)), defSpot.CCmasktmcurve); @@ -1496,7 +1532,6 @@ Locallab::Locallab(): CCmasktmshape->setBottomBarColorProvider(this, 7); - LLmasktmshape = static_cast(masktmCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmasktmshape->setIdentityValue(0.); LLmasktmshape->setResetCurve(FlatCurveType(defSpot.LLmasktmcurve.at(0)), defSpot.LLmasktmcurve); @@ -1506,7 +1541,6 @@ Locallab::Locallab(): LLmasktmshape->setBottomBarBgGradient(mllshape); - HHmasktmshape = static_cast(masktmCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true)); HHmasktmshape->setIdentityValue(0.); HHmasktmshape->setResetCurve(FlatCurveType(defSpot.HHmasktmcurve.at(0)), defSpot.HHmasktmcurve); @@ -1520,16 +1554,13 @@ Locallab::Locallab(): masktmCurveEditorG->curveListComplete(); mask2tmCurveEditorG->setCurveListener(this); - Lmasktmshape = static_cast(mask2tmCurveEditorG->addCurve(CT_Diagonal, "L(L)")); Lmasktmshape->setResetCurve(DiagonalCurveType(defSpot.Lmasktmcurve.at(0)), defSpot.Lmasktmcurve); if (showtooltip) { Lmasktmshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } - std::vector mLmasktmshape; - mLmasktmshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mLmasktmshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mLmasktmshape = zero_one_shape; Lmasktmshape->setBottomBarBgGradient(mLmasktmshape); Lmasktmshape->setLeftBarBgGradient(mLmasktmshape); mask2tmCurveEditorG->curveListComplete(); @@ -1605,7 +1636,7 @@ Locallab::Locallab(): retiLabel->set_markup(Glib::ustring("") + escapeHtmlChars(M("TP_LOCALLAB_RETI")) + Glib::ustring("")); retiLabel->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); retiTitleHBox->pack_start(*retiLabel, Gtk::PACK_EXPAND_WIDGET, 0); - RTImage *retiImage = Gtk::manage(new RTImage("one-to-one-small.png")); + RTImage* const retiImage = Gtk::manage(new RTImage("one-to-one-small.png")); if (showtooltip) { retiImage->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); @@ -1680,25 +1711,21 @@ Locallab::Locallab(): softradiusret->set_tooltip_text(M("TP_LOCALLAB_SOFTRETI_TOOLTIP")); } - mMLabels = Gtk::manage(new Gtk::Label("---")); setExpandAlignProperties(mMLabels, true, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_START); if (showtooltip) { mMLabels->set_tooltip_markup(M("TP_LOCALLAB_MLABEL_TOOLTIP")); } - transLabels = Gtk::manage(new Gtk::Label("---")); setExpandAlignProperties(transLabels, true, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_START); if (showtooltip) { transLabels->set_tooltip_markup(M("TP_LOCALLAB_TLABEL_TOOLTIP")); } - transLabels2 = Gtk::manage(new Gtk::Label("---")); setExpandAlignProperties(transLabels2, true, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_START); LocalcurveEditortransT->setCurveListener(this); - cTtransshape = static_cast(LocalcurveEditortransT->addCurve(CT_Flat, "", nullptr, false, false)); cTtransshape->setIdentityValue(0.); cTtransshape->setResetCurve(FlatCurveType(defSpot.localTtranscurve.at(0)), defSpot.localTtranscurve); @@ -1710,7 +1737,6 @@ Locallab::Locallab(): LocalcurveEditorgainT->setCurveListener(this); - cTgainshape = static_cast(LocalcurveEditorgainT->addCurve(CT_Flat, "", nullptr, false, false)); cTgainshape->setIdentityValue(0.); cTgainshape->setResetCurve(FlatCurveType(defSpot.localTgaincurve.at(0)), defSpot.localTgaincurve); @@ -1727,7 +1753,6 @@ Locallab::Locallab(): maskretiCurveEditorG->setCurveListener(this); - CCmaskretishape = static_cast(maskretiCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false)); CCmaskretishape->setIdentityValue(0.); CCmaskretishape->setResetCurve(FlatCurveType(defSpot.CCmaskreticurve.at(0)), defSpot.CCmaskreticurve); @@ -1737,7 +1762,6 @@ Locallab::Locallab(): CCmaskretishape->setBottomBarColorProvider(this, 7); - LLmaskretishape = static_cast(maskretiCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmaskretishape->setIdentityValue(0.); LLmaskretishape->setResetCurve(FlatCurveType(defSpot.LLmaskreticurve.at(0)), defSpot.LLmaskreticurve); @@ -1747,7 +1771,6 @@ Locallab::Locallab(): LLmaskretishape->setBottomBarBgGradient(mllshape); - HHmaskretishape = static_cast(maskretiCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true)); HHmaskretishape->setIdentityValue(0.); HHmaskretishape->setResetCurve(FlatCurveType(defSpot.HHmaskreticurve.at(0)), defSpot.HHmaskreticurve); @@ -1761,16 +1784,13 @@ Locallab::Locallab(): maskretiCurveEditorG->curveListComplete(); mask2retiCurveEditorG->setCurveListener(this); - Lmaskretishape = static_cast(mask2retiCurveEditorG->addCurve(CT_Diagonal, "L(L)")); Lmaskretishape->setResetCurve(DiagonalCurveType(defSpot.Lmaskreticurve.at(0)), defSpot.Lmaskreticurve); if (showtooltip) { Lmaskretishape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } - std::vector mLmaskretishape; - mLmaskretishape.push_back(GradientMilestone(0., 0., 0., 0.)); - mLmaskretishape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mLmaskretishape = zero_one_shape; Lmaskretishape->setBottomBarBgGradient(mLmaskretishape); Lmaskretishape->setLeftBarBgGradient(mLmaskretishape); mask2retiCurveEditorG->curveListComplete(); @@ -1885,7 +1905,7 @@ Locallab::Locallab(): sharpLabel->set_markup(Glib::ustring("") + escapeHtmlChars(M("TP_LOCALLAB_SHARP")) + Glib::ustring("")); sharpLabel->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); sharpTitleHBox->pack_start(*sharpLabel, Gtk::PACK_EXPAND_WIDGET, 0); - RTImage *sharpImage = Gtk::manage(new RTImage("one-to-one-small.png")); + RTImage* const sharpImage = Gtk::manage(new RTImage("one-to-one-small.png")); if (showtooltip) { sharpImage->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); @@ -1942,7 +1962,6 @@ Locallab::Locallab(): LocalcurveEditorwav->setCurveListener(this); - wavshape = static_cast(LocalcurveEditorwav->addCurve(CT_Flat, "", nullptr, false, false)); wavshape->setIdentityValue(0.); wavshape->setResetCurve(FlatCurveType(defSpot.locwavcurve.at(0)), defSpot.locwavcurve); @@ -2020,7 +2039,7 @@ Locallab::Locallab(): cbdlLabel->set_markup(Glib::ustring("") + escapeHtmlChars(M("TP_LOCALLAB_CBDL")) + Glib::ustring("")); cbdlLabel->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); cbdlTitleHBox->pack_start(*cbdlLabel, Gtk::PACK_EXPAND_WIDGET, 0); - RTImage *cbdlImage = Gtk::manage(new RTImage("one-to-one-small.png")); + RTImage* const cbdlImage = Gtk::manage(new RTImage("one-to-one-small.png")); if (showtooltip) { cbdlImage->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); @@ -2044,8 +2063,7 @@ Locallab::Locallab(): } for (int i = 0; i < 6; i++) { - Glib::ustring ss; - ss = Glib::ustring::format(i); + Glib::ustring ss = Glib::ustring::format(i); if (i == 0) { ss += Glib::ustring::compose(" (%1)", M("TP_DIRPYREQUALIZER_LUMAFINEST")); @@ -2100,7 +2118,6 @@ Locallab::Locallab(): maskcbCurveEditorG->setCurveListener(this); - CCmaskcbshape = static_cast(maskcbCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false)); CCmaskcbshape->setIdentityValue(0.); CCmaskcbshape->setResetCurve(FlatCurveType(defSpot.CCmaskcbcurve.at(0)), defSpot.CCmaskcbcurve); @@ -2110,7 +2127,6 @@ Locallab::Locallab(): CCmaskcbshape->setBottomBarColorProvider(this, 7); - LLmaskcbshape = static_cast(maskcbCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmaskcbshape->setIdentityValue(0.); LLmaskcbshape->setResetCurve(FlatCurveType(defSpot.LLmaskcbcurve.at(0)), defSpot.LLmaskcbcurve); @@ -2120,7 +2136,6 @@ Locallab::Locallab(): LLmaskcbshape->setBottomBarBgGradient(mllshape); - HHmaskcbshape = static_cast(maskcbCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true)); HHmaskcbshape->setIdentityValue(0.); HHmaskcbshape->setResetCurve(FlatCurveType(defSpot.HHmaskcbcurve.at(0)), defSpot.HHmaskcbcurve); @@ -2134,16 +2149,13 @@ Locallab::Locallab(): maskcbCurveEditorG->curveListComplete(); mask2cbCurveEditorG->setCurveListener(this); - Lmaskcbshape = static_cast(mask2cbCurveEditorG->addCurve(CT_Diagonal, "L(L)")); Lmaskcbshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskcbcurve.at(0)), defSpot.Lmaskcbcurve); if (showtooltip) { Lmaskcbshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } - std::vector mLmaskcbshape; - mLmaskcbshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mLmaskcbshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mLmaskcbshape = zero_one_shape; Lmaskcbshape->setBottomBarBgGradient(mLmaskcbshape); Lmaskcbshape->setLeftBarBgGradient(mLmaskcbshape); mask2cbCurveEditorG->curveListComplete(); @@ -2157,7 +2169,7 @@ Locallab::Locallab(): ToolParamBlock* const cbdlBox = Gtk::manage(new ToolParamBlock()); - Gtk::HBox* buttonBox = Gtk::manage(new Gtk::HBox(true, 10)); + Gtk::HBox* const buttonBox = Gtk::manage(new Gtk::HBox(true, 10)); buttonBox->pack_start(*lumacontrastMinusButton); lumacontrastMinusPressedConn = lumacontrastMinusButton->signal_pressed().connect(sigc::mem_fun(*this, &Locallab::lumacontrastMinusPressed)); buttonBox->pack_start(*lumaneutralButton); @@ -2183,7 +2195,7 @@ Locallab::Locallab(): maskcbBox->pack_start(*mask2cbCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor expmaskcb->add(*maskcbBox, false); - Gtk::HSeparator *separator = Gtk::manage(new Gtk::HSeparator()); + Gtk::HSeparator* const separator = Gtk::manage(new Gtk::HSeparator()); cbdlBox->pack_start(*separator, Gtk::PACK_SHRINK, 2); cbdlBox->pack_start(*chromacbdl); cbdlBox->pack_start(*threshold); @@ -2208,7 +2220,7 @@ Locallab::Locallab(): BLLabel->set_markup(Glib::ustring("") + escapeHtmlChars(M("TP_LOCALLAB_BLUFR")) + Glib::ustring("")); BLLabel->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); BLTitleHBox->pack_start(*BLLabel, Gtk::PACK_EXPAND_WIDGET, 0); - RTImage *BLImage = Gtk::manage(new RTImage("one-to-one-small.png")); + RTImage* const BLImage = Gtk::manage(new RTImage("one-to-one-small.png")); if (showtooltip) { BLImage->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); @@ -2261,7 +2273,6 @@ Locallab::Locallab(): maskblCurveEditorG->setCurveListener(this); - CCmaskblshape = static_cast(maskblCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false)); CCmaskblshape->setIdentityValue(0.); CCmaskblshape->setResetCurve(FlatCurveType(defSpot.CCmaskblcurve.at(0)), defSpot.CCmaskblcurve); @@ -2271,7 +2282,6 @@ Locallab::Locallab(): CCmaskblshape->setBottomBarColorProvider(this, 7); - LLmaskblshape = static_cast(maskblCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmaskblshape->setIdentityValue(0.); LLmaskblshape->setResetCurve(FlatCurveType(defSpot.LLmaskblcurve.at(0)), defSpot.LLmaskblcurve); @@ -2281,7 +2291,6 @@ Locallab::Locallab(): LLmaskblshape->setBottomBarBgGradient(mllshape); - HHmaskblshape = static_cast(maskblCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true)); HHmaskblshape->setIdentityValue(0.); HHmaskblshape->setResetCurve(FlatCurveType(defSpot.HHmaskblcurve.at(0)), defSpot.HHmaskblcurve); @@ -2295,23 +2304,19 @@ Locallab::Locallab(): maskblCurveEditorG->curveListComplete(); mask2blCurveEditorG->setCurveListener(this); - Lmaskblshape = static_cast(mask2blCurveEditorG->addCurve(CT_Diagonal, "L(L)")); Lmaskblshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskblcurve.at(0)), defSpot.Lmaskblcurve); if (showtooltip) { Lmaskblshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } - std::vector mLmaskblshape; - mLmaskblshape.push_back(GradientMilestone(0., 0., 0., 0.)); - mLmaskblshape.push_back(GradientMilestone(1., 1., 1., 1.)); + const std::vector& mLmaskblshape = zero_one_shape; Lmaskblshape->setBottomBarBgGradient(mLmaskblshape); Lmaskblshape->setLeftBarBgGradient(mLmaskblshape); mask2blCurveEditorG->curveListComplete(); csThresholdblur->setAdjusterListener(this); mask2blCurveEditorGwav->setCurveListener(this); - LLmaskblshapewav = static_cast(mask2blCurveEditorGwav->addCurve(CT_Flat, "L(L)", nullptr, false, false)); LLmaskblshapewav->setIdentityValue(0.); LLmaskblshapewav->setResetCurve(FlatCurveType(defSpot.LLmaskblcurvewav.at(0)), defSpot.LLmaskblcurvewav); @@ -2439,7 +2444,7 @@ Locallab::Locallab(): denoiLabel->set_markup(Glib::ustring("") + escapeHtmlChars(M("TP_LOCALLAB_DENOIS")) + Glib::ustring("")); denoiLabel->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); denoiTitleHBox->pack_start(*denoiLabel, Gtk::PACK_EXPAND_WIDGET, 0); - RTImage *denoiImage = Gtk::manage(new RTImage("one-to-one-small.png")); + RTImage* const denoiImage = Gtk::manage(new RTImage("one-to-one-small.png")); if (showtooltip) { denoiImage->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); diff --git a/rtgui/locallab.h b/rtgui/locallab.h index 571479e64..32364819d 100644 --- a/rtgui/locallab.h +++ b/rtgui/locallab.h @@ -77,73 +77,73 @@ private: CurveEditorGroup* const maskCurveEditorG; CurveEditorGroup* const mask2CurveEditorG; CurveEditorGroup* const mask2CurveEditorGwav; - DiagonalCurveEditor* Lmaskshape; - DiagonalCurveEditor* llshape; - DiagonalCurveEditor* ccshape; - DiagonalCurveEditor* rgbshape; - FlatCurveEditor* LHshape; - FlatCurveEditor* HHshape; - FlatCurveEditor* CCmaskshape; - FlatCurveEditor* LLmaskshape; - FlatCurveEditor* HHmaskshape; - FlatCurveEditor* LLmaskcolshapewav; + DiagonalCurveEditor* const Lmaskshape; + DiagonalCurveEditor* const llshape; + DiagonalCurveEditor* const ccshape; + DiagonalCurveEditor* const rgbshape; + FlatCurveEditor* const LHshape; + FlatCurveEditor* const HHshape; + FlatCurveEditor* const CCmaskshape; + FlatCurveEditor* const LLmaskshape; + FlatCurveEditor* const HHmaskshape; + FlatCurveEditor* const LLmaskcolshapewav; // Exposure CurveEditorGroup* const curveEditorG; CurveEditorGroup* const maskexpCurveEditorG; CurveEditorGroup* const mask2expCurveEditorG; - DiagonalCurveEditor* Lmaskexpshape; - DiagonalCurveEditor* shapeexpos; - FlatCurveEditor* CCmaskexpshape; - FlatCurveEditor* LLmaskexpshape; - FlatCurveEditor* HHmaskexpshape; + DiagonalCurveEditor* const Lmaskexpshape; + DiagonalCurveEditor* const shapeexpos; + FlatCurveEditor* const CCmaskexpshape; + FlatCurveEditor* const LLmaskexpshape; + FlatCurveEditor* const HHmaskexpshape; //Shadows Highlight CurveEditorGroup* const maskSHCurveEditorG; CurveEditorGroup* const mask2SHCurveEditorG; - DiagonalCurveEditor* LmaskSHshape; - FlatCurveEditor* CCmaskSHshape; - FlatCurveEditor* LLmaskSHshape; - FlatCurveEditor* HHmaskSHshape; + DiagonalCurveEditor* const LmaskSHshape; + FlatCurveEditor* const CCmaskSHshape; + FlatCurveEditor* const LLmaskSHshape; + FlatCurveEditor* const HHmaskSHshape; // Vibrance CurveEditorGroup* const curveEditorGG; - DiagonalCurveEditor* skinTonesCurve; + DiagonalCurveEditor* const skinTonesCurve; //Blur and noise CurveEditorGroup* const maskblCurveEditorG; CurveEditorGroup* const mask2blCurveEditorG; CurveEditorGroup* const mask2blCurveEditorGwav; - DiagonalCurveEditor* Lmaskblshape; - FlatCurveEditor* CCmaskblshape; - FlatCurveEditor* LLmaskblshape; - FlatCurveEditor* HHmaskblshape; - FlatCurveEditor* LLmaskblshapewav; + DiagonalCurveEditor* const Lmaskblshape; + FlatCurveEditor* const CCmaskblshape; + FlatCurveEditor* const LLmaskblshape; + FlatCurveEditor* const HHmaskblshape; + FlatCurveEditor* const LLmaskblshapewav; // TM CurveEditorGroup* const masktmCurveEditorG; CurveEditorGroup* const mask2tmCurveEditorG; - DiagonalCurveEditor* Lmasktmshape; - FlatCurveEditor* CCmasktmshape; - FlatCurveEditor* LLmasktmshape; - FlatCurveEditor* HHmasktmshape; + DiagonalCurveEditor* const Lmasktmshape; + FlatCurveEditor* const CCmasktmshape; + FlatCurveEditor* const LLmasktmshape; + FlatCurveEditor* const HHmasktmshape; // Retinex CurveEditorGroup* const LocalcurveEditortransT; CurveEditorGroup* const LocalcurveEditorgainT; CurveEditorGroup* const maskretiCurveEditorG; CurveEditorGroup* const mask2retiCurveEditorG; - DiagonalCurveEditor* Lmaskretishape; - FlatCurveEditor* cTtransshape; - FlatCurveEditor* cTgainshape; - FlatCurveEditor* CCmaskretishape; - FlatCurveEditor* LLmaskretishape; - FlatCurveEditor* HHmaskretishape; + DiagonalCurveEditor* const Lmaskretishape; + FlatCurveEditor* const cTtransshape; + FlatCurveEditor* const cTgainshape; + FlatCurveEditor* const CCmaskretishape; + FlatCurveEditor* const LLmaskretishape; + FlatCurveEditor* const HHmaskretishape; //local contrast CurveEditorGroup* const LocalcurveEditorwav; - FlatCurveEditor* wavshape; + FlatCurveEditor* const wavshape; //Cbdl CurveEditorGroup* const maskcbCurveEditorG; CurveEditorGroup* const mask2cbCurveEditorG; - DiagonalCurveEditor* Lmaskcbshape; - FlatCurveEditor* CCmaskcbshape; - FlatCurveEditor* LLmaskcbshape; - FlatCurveEditor* HHmaskcbshape; + DiagonalCurveEditor* const Lmaskcbshape; + FlatCurveEditor* const CCmaskcbshape; + FlatCurveEditor* const LLmaskcbshape; + FlatCurveEditor* const HHmaskcbshape; // Adjuster widgets // Color & Light @@ -461,28 +461,28 @@ private: Gtk::Button* const lumaneutralButton; Gtk::Button* const lumacontrastPlusButton; sigc::connection lumacontrastMinusPressedConn, lumaneutralPressedConn, lumacontrastPlusPressedConn; - Gtk::Frame* gridFrame; - Gtk::Frame* mergecolFrame; - Gtk::Frame* merge1colFrame; - Gtk::Frame* pdeFrame; - Gtk::Frame* fatFrame; - Gtk::Frame* fatSHFrame; - Gtk::Frame* gamFrame; - Gtk::Frame* dehaFrame; - Gtk::Frame* retiFrame; - Gtk::Frame* retitoolFrame; - Gtk::Frame* residFrame; - Gtk::Frame* clariFrame; - Gtk::Frame* grainFrame; - ToolParamBlock * retiBox; - ToolParamBlock * maskretiBox; - LabGrid *labgrid; - Gtk::Label* mMLabels; - Gtk::Label* transLabels; - Gtk::Label* transLabels2; + Gtk::Frame* const gridFrame; + Gtk::Frame* const mergecolFrame; + Gtk::Frame* const merge1colFrame; + Gtk::Frame* const pdeFrame; + Gtk::Frame* const fatFrame; + Gtk::Frame* const fatSHFrame; + Gtk::Frame* const gamFrame; + Gtk::Frame* const dehaFrame; + Gtk::Frame* const retiFrame; + Gtk::Frame* const retitoolFrame; + Gtk::Frame* const residFrame; + Gtk::Frame* const clariFrame; + Gtk::Frame* const grainFrame; + ToolParamBlock* const retiBox; + ToolParamBlock* const maskretiBox; + LabGrid* const labgrid; + Gtk::Label* const mMLabels; + Gtk::Label* const transLabels; + Gtk::Label* const transLabels2; // Others - Gtk::HBox* ctboxsoftmethod; - Gtk::HBox* ctboxexpmethod; + Gtk::HBox* const ctboxsoftmethod; + Gtk::HBox* const ctboxexpmethod; double nextmin; double nextmax; double nextminiT;