Constify Locallab c'tor (#5512)

This commit is contained in:
Flössie 2019-11-05 14:46:10 +01:00
parent 34851ead73
commit 24287fbe70
2 changed files with 193 additions and 188 deletions

View File

@ -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<DiagonalCurveEditor*>(mask2CurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
llshape(static_cast<DiagonalCurveEditor*>(llCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
ccshape(static_cast<DiagonalCurveEditor*>(llCurveEditorG->addCurve(CT_Diagonal, "C(C)"))),
rgbshape(static_cast<DiagonalCurveEditor*>(rgbCurveEditorG->addCurve(CT_Diagonal,"",toneMethod))),
LHshape(static_cast<FlatCurveEditor*>(HCurveEditorG->addCurve(CT_Flat, "L(H)", nullptr, false, true))),
HHshape(static_cast<FlatCurveEditor*>(HCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))),
CCmaskshape(static_cast<FlatCurveEditor*>(maskCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
LLmaskshape(static_cast<FlatCurveEditor*>(maskCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHmaskshape(static_cast<FlatCurveEditor *>(maskCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))),
LLmaskcolshapewav(static_cast<FlatCurveEditor*>(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<DiagonalCurveEditor*>(mask2expCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
shapeexpos(static_cast<DiagonalCurveEditor*>(curveEditorG->addCurve(CT_Diagonal, ""))),
CCmaskexpshape(static_cast<FlatCurveEditor*>(maskexpCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
LLmaskexpshape(static_cast<FlatCurveEditor*>(maskexpCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHmaskexpshape(static_cast<FlatCurveEditor *>(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<DiagonalCurveEditor*>(mask2SHCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
CCmaskSHshape(static_cast<FlatCurveEditor*>(maskSHCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
LLmaskSHshape(static_cast<FlatCurveEditor*>(maskSHCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHmaskSHshape(static_cast<FlatCurveEditor *>(maskSHCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))),
// Vibrance
curveEditorGG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL"))),
skinTonesCurve(static_cast<DiagonalCurveEditor*>(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<DiagonalCurveEditor*>(mask2blCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
CCmaskblshape(static_cast<FlatCurveEditor*>(maskblCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
LLmaskblshape(static_cast<FlatCurveEditor*>(maskblCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHmaskblshape(static_cast<FlatCurveEditor *>(maskblCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))),
LLmaskblshapewav(static_cast<FlatCurveEditor*>(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<DiagonalCurveEditor*>(mask2tmCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
CCmasktmshape(static_cast<FlatCurveEditor*>(masktmCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
LLmasktmshape(static_cast<FlatCurveEditor*>(masktmCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHmasktmshape(static_cast<FlatCurveEditor *>(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<DiagonalCurveEditor*>(mask2retiCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
cTtransshape(static_cast<FlatCurveEditor*>(LocalcurveEditortransT->addCurve(CT_Flat, "", nullptr, false, false))),
cTgainshape(static_cast<FlatCurveEditor*>(LocalcurveEditorgainT->addCurve(CT_Flat, "", nullptr, false, false))),
CCmaskretishape(static_cast<FlatCurveEditor*>(maskretiCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
LLmaskretishape(static_cast<FlatCurveEditor*>(maskretiCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHmaskretishape(static_cast<FlatCurveEditor *>(maskretiCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))),
//Local contrast
LocalcurveEditorwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAV"))),
wavshape(static_cast<FlatCurveEditor*>(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<DiagonalCurveEditor*>(mask2cbCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
CCmaskcbshape(static_cast<FlatCurveEditor*>(maskcbCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
LLmaskcbshape(static_cast<FlatCurveEditor*>(maskcbCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHmaskcbshape(static_cast<FlatCurveEditor *>(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<DiagonalCurveEditor*>(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<GradientMilestone> mllshape;
mllshape.push_back(GradientMilestone(0., 0., 0., 0.));
mllshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone> zero_one_shape = {
{0., 0., 0., 0.},
{1., 1., 1., 1.}
};
const std::vector<GradientMilestone>& mllshape = zero_one_shape;
llshape->setBottomBarBgGradient(mllshape);
llshape->setLeftBarBgGradient(mllshape);
ccshape = static_cast<DiagonalCurveEditor*>(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<GradientMilestone> mccshape;
mccshape.push_back(GradientMilestone(0., 0., 0., 0.));
mccshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& mccshape = zero_one_shape;
ccshape->setBottomBarBgGradient(mccshape);
ccshape->setLeftBarBgGradient(mccshape);
@ -595,7 +655,6 @@ Locallab::Locallab():
llCurveEditorG->curveListComplete();
HCurveEditorG->setCurveListener(this);
LHshape = static_cast<FlatCurveEditor*>(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<GradientMilestone> 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<GradientMilestone> six_shape =
[]() -> std::vector<GradientMilestone>
{
std::vector<GradientMilestone> res;
float R, G, B;
for (int i = 0; i < 7; ++i) {
const float x = static_cast<float>(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<GradientMilestone>& mLHshape = six_shape;
LHshape->setBottomBarBgGradient(mLHshape);
HHshape = static_cast<FlatCurveEditor*>(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<GradientMilestone> 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<GradientMilestone>& mHHshape = six_shape;
HHshape->setBottomBarBgGradient(mHHshape);
HCurveEditorG->curveListComplete();
rgbCurveEditorG->setCurveListener(this);
rgbshape = static_cast<DiagonalCurveEditor*>(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<GradientMilestone> mrgbshape;
mrgbshape.push_back(GradientMilestone(0., 0., 0., 0.));
mrgbshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& mrgbshape = zero_one_shape;
rgbshape->setBottomBarBgGradient(mrgbshape);
rgbshape->setLeftBarBgGradient(mrgbshape);
rgbCurveEditorG->curveListComplete();
@ -703,7 +761,6 @@ Locallab::Locallab():
maskCurveEditorG->setCurveListener(this);
CCmaskshape = static_cast<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor *>(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<DiagonalCurveEditor*>(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<GradientMilestone> mLmaskshape;
mLmaskshape.push_back(GradientMilestone(0., 0., 0., 0.));
mLmaskshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& mLmaskshape = zero_one_shape;
Lmaskshape->setBottomBarBgGradient(mLmaskshape);
Lmaskshape->setLeftBarBgGradient(mLmaskshape);
mask2CurveEditorG->curveListComplete();
mask2CurveEditorGwav->setCurveListener(this);
LLmaskcolshapewav = static_cast<FlatCurveEditor*>(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<DiagonalCurveEditor*>(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<GradientMilestone> mshapeexpos;
mshapeexpos.push_back(GradientMilestone(0., 0., 0., 0.));
mshapeexpos.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& mshapeexpos = zero_one_shape;
shapeexpos->setBottomBarBgGradient(mshapeexpos);
shapeexpos->setLeftBarBgGradient(mshapeexpos);
@ -986,7 +1031,6 @@ Locallab::Locallab():
maskexpCurveEditorG->setCurveListener(this);
CCmaskexpshape = static_cast<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor *>(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<DiagonalCurveEditor*>(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<GradientMilestone> mLmaskexpshape;
mLmaskexpshape.push_back(GradientMilestone(0., 0., 0., 0.));
mLmaskexpshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& 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<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor *>(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<DiagonalCurveEditor*>(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<GradientMilestone> mLmaskSHshape;
mLmaskSHshape.push_back(GradientMilestone(0., 0., 0., 0.));
mLmaskSHshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& 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<DiagonalCurveEditor*>(curveEditorGG->addCurve(CT_Diagonal, M("TP_VIBRANCE_CURVEEDITOR_SKINTONES")));
if (showtooltip) {
skinTonesCurve->setTooltip(M("TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP"));
}
std::vector<GradientMilestone> mskinTonesCurve;
const std::vector<GradientMilestone> mskinTonesCurve =
[]() -> std::vector<GradientMilestone>
{
std::vector<GradientMilestone> 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("<b>") + escapeHtmlChars(M("TP_LOCALLAB_TM")) + Glib::ustring("</b>"));
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<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor *>(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<DiagonalCurveEditor*>(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<GradientMilestone> mLmasktmshape;
mLmasktmshape.push_back(GradientMilestone(0., 0., 0., 0.));
mLmasktmshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& mLmasktmshape = zero_one_shape;
Lmasktmshape->setBottomBarBgGradient(mLmasktmshape);
Lmasktmshape->setLeftBarBgGradient(mLmasktmshape);
mask2tmCurveEditorG->curveListComplete();
@ -1605,7 +1636,7 @@ Locallab::Locallab():
retiLabel->set_markup(Glib::ustring("<b>") + escapeHtmlChars(M("TP_LOCALLAB_RETI")) + Glib::ustring("</b>"));
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<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor *>(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<DiagonalCurveEditor*>(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<GradientMilestone> mLmaskretishape;
mLmaskretishape.push_back(GradientMilestone(0., 0., 0., 0.));
mLmaskretishape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& mLmaskretishape = zero_one_shape;
Lmaskretishape->setBottomBarBgGradient(mLmaskretishape);
Lmaskretishape->setLeftBarBgGradient(mLmaskretishape);
mask2retiCurveEditorG->curveListComplete();
@ -1885,7 +1905,7 @@ Locallab::Locallab():
sharpLabel->set_markup(Glib::ustring("<b>") + escapeHtmlChars(M("TP_LOCALLAB_SHARP")) + Glib::ustring("</b>"));
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<FlatCurveEditor*>(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("<b>") + escapeHtmlChars(M("TP_LOCALLAB_CBDL")) + Glib::ustring("</b>"));
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<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor *>(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<DiagonalCurveEditor*>(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<GradientMilestone> mLmaskcbshape;
mLmaskcbshape.push_back(GradientMilestone(0., 0., 0., 0.));
mLmaskcbshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& 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("<b>") + escapeHtmlChars(M("TP_LOCALLAB_BLUFR")) + Glib::ustring("</b>"));
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<FlatCurveEditor*>(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<FlatCurveEditor*>(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<FlatCurveEditor *>(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<DiagonalCurveEditor*>(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<GradientMilestone> mLmaskblshape;
mLmaskblshape.push_back(GradientMilestone(0., 0., 0., 0.));
mLmaskblshape.push_back(GradientMilestone(1., 1., 1., 1.));
const std::vector<GradientMilestone>& mLmaskblshape = zero_one_shape;
Lmaskblshape->setBottomBarBgGradient(mLmaskblshape);
Lmaskblshape->setLeftBarBgGradient(mLmaskblshape);
mask2blCurveEditorG->curveListComplete();
csThresholdblur->setAdjusterListener(this);
mask2blCurveEditorGwav->setCurveListener(this);
LLmaskblshapewav = static_cast<FlatCurveEditor*>(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("<b>") + escapeHtmlChars(M("TP_LOCALLAB_DENOIS")) + Glib::ustring("</b>"));
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"));

View File

@ -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;