Save GUI for mask retinex - disabled
This commit is contained in:
parent
a45ae2d970
commit
31f9b44d06
@ -1563,6 +1563,150 @@ void LocretigainCurverab::Set(const std::vector<double> &curvePoints)
|
||||
}
|
||||
}
|
||||
|
||||
LocHHmaskretiCurve::LocHHmaskretiCurve() : sum(0.f) {};
|
||||
|
||||
void LocHHmaskretiCurve::Reset()
|
||||
{
|
||||
lutLocHHmaskretiCurve.reset();
|
||||
sum = 0.f;
|
||||
}
|
||||
|
||||
|
||||
void LocHHmaskretiCurve::Set(const Curve &pCurve)
|
||||
{
|
||||
if (pCurve.isIdentity()) {
|
||||
Reset(); // raise this value if the quality suffers from this number of samples
|
||||
return;
|
||||
}
|
||||
|
||||
lutLocHHmaskretiCurve(501); // raise this value if the quality suffers from this number of samples
|
||||
sum = 0.f;
|
||||
|
||||
for (int i = 0; i < 501; i++) {
|
||||
lutLocHHmaskretiCurve[i] = pCurve.getVal(double (i) / 500.);
|
||||
|
||||
if (lutLocHHmaskretiCurve[i] < 0.02f) {
|
||||
lutLocHHmaskretiCurve[i] = 0.02f;
|
||||
}
|
||||
|
||||
sum += lutLocHHmaskretiCurve[i];
|
||||
}
|
||||
|
||||
//lutLocHHCurve.dump("wav");
|
||||
}
|
||||
|
||||
void LocHHmaskretiCurve::Set(const std::vector<double> &curvePoints, bool & lhmasretiutili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
lhmasretiutili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
}
|
||||
}
|
||||
|
||||
LocLLmaskretiCurve::LocLLmaskretiCurve() : sum(0.f) {};
|
||||
|
||||
void LocLLmaskretiCurve::Reset()
|
||||
{
|
||||
lutLocLLmaskretiCurve.reset();
|
||||
sum = 0.f;
|
||||
}
|
||||
|
||||
void LocLLmaskretiCurve::Set(const Curve &pCurve)
|
||||
{
|
||||
if (pCurve.isIdentity()) {
|
||||
Reset(); // raise this value if the quality suffers from this number of samples
|
||||
return;
|
||||
}
|
||||
|
||||
lutLocLLmaskretiCurve(501); // raise this value if the quality suffers from this number of samples
|
||||
sum = 0.f;
|
||||
|
||||
for (int i = 0; i < 501; i++) {
|
||||
lutLocLLmaskretiCurve[i] = pCurve.getVal(double (i) / 500.);
|
||||
|
||||
if (lutLocLLmaskretiCurve[i] < 0.02f) {
|
||||
lutLocLLmaskretiCurve[i] = 0.02f; //avoid 0.f for wavelet : under 0.01f quasi no action for each value
|
||||
}
|
||||
|
||||
sum += lutLocLLmaskretiCurve[i];
|
||||
}
|
||||
|
||||
//lutLocHHCurve.dump("wav");
|
||||
}
|
||||
|
||||
|
||||
|
||||
void LocLLmaskretiCurve::Set(const std::vector<double> &curvePoints, bool & llmasretiutili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
llmasretiutili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
}
|
||||
}
|
||||
|
||||
LocCCmaskretiCurve::LocCCmaskretiCurve() : sum(0.f) {};
|
||||
|
||||
void LocCCmaskretiCurve::Reset()
|
||||
{
|
||||
lutLocCCmaskretiCurve.reset();
|
||||
sum = 0.f;
|
||||
}
|
||||
|
||||
void LocCCmaskretiCurve::Set(const Curve &pCurve)
|
||||
{
|
||||
if (pCurve.isIdentity()) {
|
||||
Reset(); // raise this value if the quality suffers from this number of samples
|
||||
return;
|
||||
}
|
||||
|
||||
lutLocCCmaskretiCurve(501); // raise this value if the quality suffers from this number of samples
|
||||
sum = 0.f;
|
||||
|
||||
for (int i = 0; i < 501; i++) {
|
||||
lutLocCCmaskretiCurve[i] = pCurve.getVal(double (i) / 500.);
|
||||
|
||||
if (lutLocCCmaskretiCurve[i] < 0.02f) {
|
||||
lutLocCCmaskretiCurve[i] = 0.02f; //avoid 0.f for wavelet : under 0.01f quasi no action for each value
|
||||
}
|
||||
|
||||
sum += lutLocCCmaskretiCurve[i];
|
||||
}
|
||||
|
||||
//lutLocHHCurve.dump("wav");
|
||||
}
|
||||
|
||||
|
||||
|
||||
void LocCCmaskretiCurve::Set(const std::vector<double> &curvePoints, bool & lcmasretiutili)
|
||||
{
|
||||
// if (HHutili && !curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) {
|
||||
FlatCurve ttcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2);
|
||||
ttcurve.setIdentityValue(0.);
|
||||
lcmasretiutili = true;
|
||||
Set(ttcurve);
|
||||
} else {
|
||||
Reset();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
LocHHmaskcbCurve::LocHHmaskcbCurve() : sum(0.f) {};
|
||||
|
||||
void LocHHmaskcbCurve::Reset()
|
||||
|
@ -647,6 +647,95 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class LocHHmaskretiCurve
|
||||
{
|
||||
private:
|
||||
LUTf lutLocHHmaskretiCurve; // 0xffff range
|
||||
void Set(const Curve &pCurve);
|
||||
|
||||
public:
|
||||
float sum;
|
||||
|
||||
virtual ~LocHHmaskretiCurve() {};
|
||||
LocHHmaskretiCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints, bool & lhmasretiutili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
}
|
||||
|
||||
float operator[](float index) const
|
||||
{
|
||||
return lutLocHHmaskretiCurve[index];
|
||||
}
|
||||
operator bool (void) const
|
||||
{
|
||||
return lutLocHHmaskretiCurve;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class LocCCmaskretiCurve
|
||||
{
|
||||
private:
|
||||
LUTf lutLocCCmaskretiCurve; // 0xffff range
|
||||
void Set(const Curve &pCurve);
|
||||
|
||||
public:
|
||||
float sum;
|
||||
|
||||
virtual ~LocCCmaskretiCurve() {};
|
||||
LocCCmaskretiCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints, bool & lcmasretiutili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
}
|
||||
|
||||
float operator[](float index) const
|
||||
{
|
||||
return lutLocCCmaskretiCurve[index];
|
||||
}
|
||||
operator bool (void) const
|
||||
{
|
||||
return lutLocCCmaskretiCurve;
|
||||
}
|
||||
};
|
||||
|
||||
class LocLLmaskretiCurve
|
||||
{
|
||||
private:
|
||||
LUTf lutLocLLmaskretiCurve; // 0xffff range
|
||||
void Set(const Curve &pCurve);
|
||||
|
||||
public:
|
||||
float sum;
|
||||
|
||||
virtual ~LocLLmaskretiCurve() {};
|
||||
LocLLmaskretiCurve();
|
||||
void Reset();
|
||||
void Set(const std::vector<double> &curvePoints, bool & llmasretiutili);
|
||||
float getSum() const
|
||||
{
|
||||
return sum;
|
||||
}
|
||||
|
||||
float operator[](float index) const
|
||||
{
|
||||
return lutLocLLmaskretiCurve[index];
|
||||
}
|
||||
operator bool (void) const
|
||||
{
|
||||
return lutLocLLmaskretiCurve;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class LocHHmaskcbCurve
|
||||
{
|
||||
private:
|
||||
|
@ -204,6 +204,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
||||
locallExpMask(0),
|
||||
locallSHMask(0),
|
||||
locallcbMask(0),
|
||||
locallretiMask(0),
|
||||
avg(0),
|
||||
retistrsav(nullptr)
|
||||
|
||||
|
@ -279,6 +279,7 @@ protected:
|
||||
int locallExpMask;
|
||||
int locallSHMask;
|
||||
int locallcbMask;
|
||||
int locallretiMask;
|
||||
float avg;
|
||||
|
||||
public:
|
||||
@ -348,12 +349,13 @@ public:
|
||||
updaterThreadStart.unlock();
|
||||
}
|
||||
|
||||
void setLocallabMaskVisibility (int locallColorMask, int locallExpMask, int locallSHMask, int locallcbMask) override
|
||||
void setLocallabMaskVisibility (int locallColorMask, int locallExpMask, int locallSHMask, int locallcbMask, int locallretiMask) override
|
||||
{
|
||||
this->locallColorMask = locallColorMask;
|
||||
this->locallExpMask = locallExpMask;
|
||||
this->locallSHMask = locallSHMask;
|
||||
this->locallcbMask = locallcbMask;
|
||||
this->locallretiMask = locallretiMask;
|
||||
}
|
||||
|
||||
void setProgressListener (ProgressListener* pl) override
|
||||
|
@ -705,6 +705,16 @@ enum ProcEventCode {
|
||||
EvLocallabSpotTransitgrad = 675,
|
||||
Evlocallabamount = 676,
|
||||
Evlocallabsatur = 677,
|
||||
EvlocallabCCmaskretishape = 678,
|
||||
EvlocallabLLmaskretishape = 679,
|
||||
EvlocallabHHmaskretishape = 680,
|
||||
EvLocallabEnaretiMask = 681,
|
||||
Evlocallabblendmaskreti = 682,
|
||||
Evlocallabradmaskreti = 683,
|
||||
Evlocallabchromaskreti = 684,
|
||||
Evlocallabgammaskreti = 685,
|
||||
Evlocallabslomaskreti = 686,
|
||||
EvlocallabshowmaskretiMethod = 687,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
|
||||
|
@ -2478,6 +2478,15 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
localTgaincurve{(double)FCT_MinMaxCPoints, 0.0, 0.12, 0.35, 0.35, 0.70, 0.50, 0.35, 0.35, 1.00, 0.12, 0.35, 0.35},
|
||||
inversret(false),
|
||||
softradiusret(0.0),
|
||||
CCmaskreticurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35 },
|
||||
LLmaskreticurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
HHmaskreticurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
enaretiMask(false),
|
||||
blendmaskreti(0),
|
||||
radmaskreti(10.0),
|
||||
chromaskreti(0.0),
|
||||
gammaskreti(1.0),
|
||||
slomaskreti(0.0),
|
||||
// Sharpening
|
||||
expsharp(false),
|
||||
sharcontrast(20),
|
||||
@ -2677,6 +2686,15 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& localTgaincurve == other.localTgaincurve
|
||||
&& inversret == other.inversret
|
||||
&& softradiusret == other.softradiusret
|
||||
&& CCmaskreticurve == other.CCmaskreticurve
|
||||
&& LLmaskreticurve == other.LLmaskreticurve
|
||||
&& HHmaskreticurve == other.HHmaskreticurve
|
||||
&& enaretiMask == other.enaretiMask
|
||||
&& blendmaskreti == other.blendmaskreti
|
||||
&& radmaskreti == other.radmaskreti
|
||||
&& chromaskreti == other.chromaskreti
|
||||
&& gammaskreti == other.gammaskreti
|
||||
&& slomaskreti == other.slomaskreti
|
||||
// Sharpening
|
||||
&& expsharp == other.expsharp
|
||||
&& sharcontrast == other.sharcontrast
|
||||
@ -3820,6 +3838,9 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensitm, "Locallab", "Sensitm_" + std::to_string(i), spot.sensitm, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).softradiustm, "Locallab", "Softradiustm_" + std::to_string(i), spot.softradiustm, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).amount, "Locallab", "Amount_" + std::to_string(i), spot.amount, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).CCmaskreticurve, "Locallab", "CCmaskretiCurve_" + std::to_string(i), spot.CCmaskreticurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmaskreticurve, "Locallab", "LLmaskretiCurve_" + std::to_string(i), spot.LLmaskreticurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHmaskreticurve, "Locallab", "HHmaskretiCurve_" + std::to_string(i), spot.HHmaskreticurve, keyFile);
|
||||
// Retinex
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expreti, "Locallab", "Expreti_" + std::to_string(i), spot.expreti, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).retinexMethod, "Locallab", "retinexMethod_" + std::to_string(i), spot.retinexMethod, keyFile);
|
||||
@ -3832,6 +3853,12 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).localTgaincurve, "Locallab", "TgainCurve_" + std::to_string(i), spot.localTgaincurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).inversret, "Locallab", "Inversret_" + std::to_string(i), spot.inversret, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).softradiusret, "Locallab", "Softradiusret_" + std::to_string(i), spot.softradiusret, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).enaretiMask, "Locallab", "EnaretiMask_" + std::to_string(i), spot.enaretiMask, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blendmaskreti, "Locallab", "Blendmaskreti_" + std::to_string(i), spot.blendmaskreti, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).radmaskreti, "Locallab", "Radmaskreti_" + std::to_string(i), spot.radmaskreti, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chromaskreti, "Locallab", "Chromaskreti_" + std::to_string(i), spot.chromaskreti, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).gammaskreti, "Locallab", "Gammaskreti_" + std::to_string(i), spot.gammaskreti, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).slomaskreti, "Locallab", "Slomaskreti_" + std::to_string(i), spot.slomaskreti, keyFile);
|
||||
// Sharpening
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expsharp, "Locallab", "Expsharp_" + std::to_string(i), spot.expsharp, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sharcontrast, "Locallab", "Sharcontrast_" + std::to_string(i), spot.sharcontrast, keyFile);
|
||||
@ -5128,6 +5155,15 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "TgainCurve_" + std::to_string(i), pedited, spot.localTgaincurve, spotEdited.localTgaincurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Inversret_" + std::to_string(i), pedited, spot.inversret, spotEdited.inversret);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Softradiusret_" + std::to_string(i), pedited, spot.softradiusret, spotEdited.softradiusret);
|
||||
assignFromKeyfile(keyFile, "Locallab", "CCmaskretiCurve_" + std::to_string(i), pedited, spot.CCmaskreticurve, spotEdited.CCmaskreticurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LLmaskretiCurve_" + std::to_string(i), pedited, spot.LLmaskreticurve, spotEdited.LLmaskreticurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "HHmaskretiCurve_" + std::to_string(i), pedited, spot.HHmaskreticurve, spotEdited.HHmaskreticurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "EnaretiMask_" + std::to_string(i), pedited, spot.enaretiMask, spotEdited.enaretiMask);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blendmaskreti_" + std::to_string(i), pedited, spot.blendmaskreti, spotEdited.blendmaskreti);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Radmaskreti_" + std::to_string(i), pedited, spot.radmaskreti, spotEdited.radmaskreti);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Chromaskreti_" + std::to_string(i), pedited, spot.chromaskreti, spotEdited.chromaskreti);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Gammaskreti_" + std::to_string(i), pedited, spot.gammaskreti, spotEdited.gammaskreti);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Slomaskreti_" + std::to_string(i), pedited, spot.slomaskreti, spotEdited.slomaskreti);
|
||||
// Sharpening
|
||||
assignFromKeyfile(keyFile, "Locallab", "Expsharp_" + std::to_string(i), pedited, spot.expsharp, spotEdited.expsharp);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Sharcontrast_" + std::to_string(i), pedited, spot.sharcontrast, spotEdited.sharcontrast);
|
||||
@ -5159,11 +5195,11 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Contresid_" + std::to_string(i), pedited, spot.contresid, spotEdited.contresid);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blurcbdl_" + std::to_string(i), pedited, spot.blurcbdl, spotEdited.blurcbdl);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Softradiuscb_" + std::to_string(i), pedited, spot.softradiuscb, spotEdited.softradiuscb);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blendmaskcb_" + std::to_string(i), pedited, spot.blendmaskcb, spotEdited.blendmaskcb);
|
||||
assignFromKeyfile(keyFile, "Locallab", "EnacbMask_" + std::to_string(i), pedited, spot.enacbMask, spotEdited.enacbMask);
|
||||
assignFromKeyfile(keyFile, "Locallab", "CCmaskcbCurve_" + std::to_string(i), pedited, spot.CCmaskcbcurve, spotEdited.CCmaskcbcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LLmaskcbCurve_" + std::to_string(i), pedited, spot.LLmaskcbcurve, spotEdited.LLmaskcbcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "HHmaskcbCurve_" + std::to_string(i), pedited, spot.HHmaskcbcurve, spotEdited.HHmaskcbcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blendmaskcb_" + std::to_string(i), pedited, spot.blendmaskcb, spotEdited.blendmaskcb);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Radmaskcb_" + std::to_string(i), pedited, spot.radmaskcb, spotEdited.radmaskcb);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Chromaskcb_" + std::to_string(i), pedited, spot.chromaskcb, spotEdited.chromaskcb);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Gammaskcb_" + std::to_string(i), pedited, spot.gammaskcb, spotEdited.gammaskcb);
|
||||
|
@ -1079,6 +1079,15 @@ struct LocallabParams {
|
||||
std::vector<double> localTgaincurve;
|
||||
bool inversret;
|
||||
double softradiusret;
|
||||
std::vector<double> CCmaskreticurve;
|
||||
std::vector<double> LLmaskreticurve;
|
||||
std::vector<double> HHmaskreticurve;
|
||||
bool enaretiMask;
|
||||
int blendmaskreti;
|
||||
double radmaskreti;
|
||||
double chromaskreti;
|
||||
double gammaskreti;
|
||||
double slomaskreti;
|
||||
// Sharpening
|
||||
bool expsharp;
|
||||
int sharcontrast;
|
||||
|
@ -704,7 +704,17 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
LUMINANCECURVE, //Evlocallabsoftradiustm
|
||||
LUMINANCECURVE, // EvLocallabSpotTransitgrad
|
||||
LUMINANCECURVE, // Evlocallabamount
|
||||
LUMINANCECURVE // Evlocallabsatur
|
||||
LUMINANCECURVE, // Evlocallabsatur
|
||||
LUMINANCECURVE, //EvlocallabCCmaskretishape
|
||||
LUMINANCECURVE, //EvlocallabLLmaskretishape
|
||||
LUMINANCECURVE, //EvlocallabHHmaskretishape
|
||||
LUMINANCECURVE, //EvLocallabEnaretiMask
|
||||
LUMINANCECURVE, //Evlocallabblendmaskreti
|
||||
LUMINANCECURVE, // Evlocallabradmaskreti
|
||||
LUMINANCECURVE, //Evlocallabchromaskreti
|
||||
LUMINANCECURVE, //Evlocallabgammaskreti
|
||||
LUMINANCECURVE, //Evlocallabslomaskreti
|
||||
LUMINANCECURVE //EvlocallabshowmaskretiMethod
|
||||
};
|
||||
|
||||
|
||||
|
@ -499,7 +499,7 @@ public:
|
||||
|
||||
virtual void updateUnLock() = 0;
|
||||
|
||||
virtual void setLocallabMaskVisibility(int locallColorMask, int locallExpMask, int locallSHMask, int locallcbMask) = 0;
|
||||
virtual void setLocallabMaskVisibility(int locallColorMask, int locallExpMask, int locallSHMask, int locallcbMask, int locallretiMask) = 0;
|
||||
|
||||
/** Creates and returns a Crop instance that acts as a window on the image
|
||||
* @param editDataProvider pointer to the EditDataProvider that communicates with the EditSubscriber
|
||||
|
@ -62,6 +62,7 @@ Locallab::Locallab():
|
||||
expmaskexp(new MyExpander(false, M("TP_LOCALLAB_SHOW"))),
|
||||
expmasksh(new MyExpander(false, M("TP_LOCALLAB_SHOW"))),
|
||||
expmaskcb(new MyExpander(false, M("TP_LOCALLAB_SHOW"))),
|
||||
expmaskreti(new MyExpander(false, M("TP_LOCALLAB_SHOW"))),
|
||||
|
||||
// CurveEditorGroup widgets
|
||||
// Color & Light
|
||||
@ -77,6 +78,7 @@ Locallab::Locallab():
|
||||
curveEditorGG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL"))),
|
||||
// Retinex
|
||||
LocalcurveEditorgainT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONGAIN"))),
|
||||
maskretiCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||
//CBDL
|
||||
maskcbCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||
|
||||
@ -154,6 +156,11 @@ Locallab::Locallab():
|
||||
dehaz(Gtk::manage(new Adjuster(M("TP_LOCALLAB_DEHAZ"), 0, 100, 1, 0))),
|
||||
sensih(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIH"), 0, 100, 1, 30))),
|
||||
softradiusret(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GUIDFILTER"), 0.0, 100.0, 0.1, 0.))),
|
||||
blendmaskreti(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLENDMASKCOL"), -100, 100, 1, 0))),
|
||||
radmaskreti(Gtk::manage(new Adjuster(M("TP_LOCALLAB_RADMASKCOL"), 0.0, 100.0, 0.1, 10.))),
|
||||
chromaskreti(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHROMASKCOL"), -100.0, 100.0, 0.1, 0.))),
|
||||
gammaskreti(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GAMMASKCOL"), 0.25, 4.0, 0.01, 1.))),
|
||||
slomaskreti(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SLOMASKCOL"), 0.0, 15.0, 0.1, 0.))),
|
||||
// Sharpening
|
||||
sharcontrast(Gtk::manage(new Adjuster(M("TP_SHARPENING_CONTRAST"), 0, 200, 1, 20))),
|
||||
sharradius(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SHARRADIUS"), 0.4, 2.5, 0.01, 0.75))),
|
||||
@ -214,6 +221,7 @@ Locallab::Locallab():
|
||||
activlum(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_ACTIV")))),
|
||||
// Retinex
|
||||
inversret(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_INVERS")))),
|
||||
enaretiMask(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_ENABLE_MASK")))),
|
||||
// Sharpening
|
||||
inverssha(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_INVERS")))),
|
||||
//CBDL
|
||||
@ -232,6 +240,7 @@ Locallab::Locallab():
|
||||
blurMethod(Gtk::manage(new MyComboBoxText())),
|
||||
// Retinex
|
||||
retinexMethod(Gtk::manage(new MyComboBoxText())),
|
||||
showmaskretiMethod(Gtk::manage(new MyComboBoxText())),
|
||||
//CBDL
|
||||
showmaskcbMethod(Gtk::manage(new MyComboBoxText())),
|
||||
|
||||
@ -816,6 +825,10 @@ Locallab::Locallab():
|
||||
expreti->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), expreti));
|
||||
enableretiConn = expreti->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Locallab::enableToggled), expreti));
|
||||
|
||||
setExpandAlignProperties (expmaskreti, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
expmaskreti->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), expmaskreti));
|
||||
expmaskreti->setLevel (2);
|
||||
|
||||
retinexMethod->append(M("TP_RETINEX_LOW"));
|
||||
retinexMethod->append(M("TP_RETINEX_UNIFORM"));
|
||||
retinexMethod->append(M("TP_RETINEX_HIGH"));
|
||||
@ -851,6 +864,60 @@ Locallab::Locallab():
|
||||
|
||||
inversretConn = inversret->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::inversretChanged));
|
||||
|
||||
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);
|
||||
if(showtooltip) CCmaskretishape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
|
||||
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);
|
||||
if(showtooltip) LLmaskretishape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
|
||||
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);
|
||||
if(showtooltip) HHmaskretishape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
|
||||
HHmaskretishape->setCurveColorProvider(this, 6);
|
||||
HHmaskretishape->setBottomBarColorProvider(this, 6);
|
||||
|
||||
maskretiCurveEditorG->curveListComplete();
|
||||
enaretiMaskConn = enaretiMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enaretiMaskChanged));
|
||||
|
||||
showmaskretiMethod->append(M("TP_LOCALLAB_SHOWMNONE"));
|
||||
showmaskretiMethod->append(M("TP_LOCALLAB_SHOWMODIF"));
|
||||
showmaskretiMethod->append(M("TP_LOCALLAB_SHOWMODIFMASK"));
|
||||
showmaskretiMethod->append(M("TP_LOCALLAB_SHOWMASK"));
|
||||
showmaskretiMethod->append(M("TP_LOCALLAB_PREVIEWSEL"));
|
||||
|
||||
|
||||
showmaskretiMethod->set_active(0);
|
||||
if(showtooltip) showmaskretiMethod->set_tooltip_markup(M("TP_LOCALLAB_SHOWMASKCOL_TOOLTIP"));
|
||||
showmaskretiMethodConn = showmaskretiMethod->signal_changed().connect(sigc::mem_fun(*this, &Locallab::showmaskretiMethodChanged));
|
||||
|
||||
|
||||
|
||||
blendmaskreti->setAdjusterListener(this);
|
||||
radmaskreti->setAdjusterListener(this);
|
||||
chromaskreti->setAdjusterListener(this);
|
||||
gammaskreti->setAdjusterListener(this);
|
||||
slomaskreti->setAdjusterListener(this);
|
||||
|
||||
ToolParamBlock* const maskretiBox = Gtk::manage(new ToolParamBlock());
|
||||
maskretiBox->pack_start(*showmaskretiMethod, Gtk::PACK_SHRINK, 4);
|
||||
maskretiBox->pack_start(*enaretiMask, Gtk::PACK_SHRINK, 0);
|
||||
maskretiBox->pack_start(*maskretiCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
maskretiBox->pack_start(*blendmaskreti, Gtk::PACK_SHRINK, 0);
|
||||
maskretiBox->pack_start(*radmaskreti, Gtk::PACK_SHRINK, 0);
|
||||
maskretiBox->pack_start(*chromaskreti, Gtk::PACK_SHRINK, 0);
|
||||
maskretiBox->pack_start(*gammaskreti, Gtk::PACK_SHRINK, 0);
|
||||
maskretiBox->pack_start(*slomaskreti, Gtk::PACK_SHRINK, 0);
|
||||
expmaskreti->add(*maskretiBox);
|
||||
|
||||
ToolParamBlock* const retiBox = Gtk::manage(new ToolParamBlock());
|
||||
retiBox->pack_start(*retinexMethod);
|
||||
retiBox->pack_start(*str);
|
||||
@ -861,6 +928,7 @@ Locallab::Locallab():
|
||||
retiBox->pack_start(*softradiusret);
|
||||
retiBox->pack_start(*sensih);
|
||||
retiBox->pack_start(*LocalcurveEditorgainT, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
// retiBox->pack_start(*expmaskreti);
|
||||
retiBox->pack_start(*inversret);
|
||||
expreti->add(*retiBox);
|
||||
expreti->setLevel(2);
|
||||
@ -1163,6 +1231,7 @@ void Locallab::foldAllButMe(GdkEventButton* event, MyExpander *expander)
|
||||
expmaskexp->set_expanded(expmaskexp == expander);
|
||||
expmasksh->set_expanded(expmasksh == expander);
|
||||
expmaskcb->set_expanded(expmaskcb == expander);
|
||||
expmaskreti->set_expanded(expmaskreti == expander);
|
||||
|
||||
}
|
||||
}
|
||||
@ -1253,6 +1322,7 @@ void Locallab::writeOptions(std::vector<int> &tpOpen)
|
||||
tpOpen.push_back(expmaskexp->get_expanded());
|
||||
tpOpen.push_back(expmasksh->get_expanded());
|
||||
tpOpen.push_back(expmaskcb->get_expanded());
|
||||
tpOpen.push_back(expmaskreti->get_expanded());
|
||||
|
||||
}
|
||||
|
||||
@ -1302,6 +1372,11 @@ void Locallab::refChanged(double huer, double lumar, double chromar)
|
||||
LLmaskcbshape->updateLocallabBackground(normLumar);
|
||||
HHmaskcbshape->updateLocallabBackground(normHuer);
|
||||
|
||||
// Update Retinex mask background
|
||||
CCmaskretishape->updateLocallabBackground(normChromar);
|
||||
LLmaskretishape->updateLocallabBackground(normLumar);
|
||||
HHmaskretishape->updateLocallabBackground(normHuer);
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
@ -1310,7 +1385,7 @@ void Locallab::refChanged(double huer, double lumar, double chromar)
|
||||
|
||||
void Locallab::updateToolState(std::vector<int> &tpOpen)
|
||||
{
|
||||
if (tpOpen.size() >= 18) {
|
||||
if (tpOpen.size() >= 19) {
|
||||
expsettings->setExpanded(tpOpen.at(0));
|
||||
expcolor->set_expanded(tpOpen.at(1));
|
||||
expexpose->set_expanded(tpOpen.at(2));
|
||||
@ -1328,6 +1403,7 @@ void Locallab::updateToolState(std::vector<int> &tpOpen)
|
||||
expmaskexp->set_expanded(tpOpen.at(14));
|
||||
expmasksh->set_expanded(tpOpen.at(15));
|
||||
expmaskcb->set_expanded(tpOpen.at(16));
|
||||
expmaskreti->set_expanded(tpOpen.at(17));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2043,6 +2119,16 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->locallab.spots.at(pp->locallab.selspot).localTgaincurve = cTgainshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).inversret = inversret->get_active();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).softradiusret = softradiusret->getValue();
|
||||
|
||||
pp->locallab.spots.at(pp->locallab.selspot).LLmaskreticurve = LLmaskretishape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).CCmaskreticurve = CCmaskretishape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).HHmaskreticurve = HHmaskretishape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).enaretiMask = enaretiMask->get_active();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).blendmaskreti = blendmaskreti->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).radmaskreti = radmaskreti->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).chromaskreti = chromaskreti->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).gammaskreti = gammaskreti->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).slomaskreti = slomaskreti->getValue();
|
||||
// Sharpening
|
||||
pp->locallab.spots.at(pp->locallab.selspot).expsharp = expsharp->getEnabled();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).sharcontrast = sharcontrast->getIntValue();
|
||||
@ -2244,6 +2330,15 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pe->locallab.spots.at(pp->locallab.selspot).localTgaincurve = pe->locallab.spots.at(pp->locallab.selspot).localTgaincurve || !cTgainshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).inversret = pe->locallab.spots.at(pp->locallab.selspot).inversret || !inversret->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).softradiusret = pe->locallab.spots.at(pp->locallab.selspot).softradiusret || softradiusret->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).CCmaskreticurve = pe->locallab.spots.at(pp->locallab.selspot).CCmaskreticurve || !CCmaskretishape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).LLmaskreticurve = pe->locallab.spots.at(pp->locallab.selspot).LLmaskreticurve || !LLmaskretishape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).HHmaskreticurve = pe->locallab.spots.at(pp->locallab.selspot).HHmaskreticurve || !HHmaskretishape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).enaretiMask = pe->locallab.spots.at(pp->locallab.selspot).enaretiMask || !enaretiMask->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).blendmaskreti = pe->locallab.spots.at(pp->locallab.selspot).blendmaskreti || blendmaskreti->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).radmaskreti = pe->locallab.spots.at(pp->locallab.selspot).radmaskreti || radmaskreti->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).chromaskreti = pe->locallab.spots.at(pp->locallab.selspot).chromaskreti || chromaskreti->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).gammaskreti = pe->locallab.spots.at(pp->locallab.selspot).gammaskreti || gammaskreti->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).slomaskreti = pe->locallab.spots.at(pp->locallab.selspot).slomaskreti || slomaskreti->getEditedState();
|
||||
// Sharpening
|
||||
pe->locallab.spots.at(pp->locallab.selspot).expsharp = pe->locallab.spots.at(pp->locallab.selspot).expsharp || !expsharp->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).sharcontrast = pe->locallab.spots.at(pp->locallab.selspot).sharcontrast || sharcontrast->getEditedState();
|
||||
@ -2435,6 +2530,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).sensitm = pedited->locallab.spots.at(pp->locallab.selspot).sensitm || sensitm->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).softradiustm = pedited->locallab.spots.at(pp->locallab.selspot).softradiustm || softradiustm->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).amount = pedited->locallab.spots.at(pp->locallab.selspot).amount || amount->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).enaretiMask = pedited->locallab.spots.at(pp->locallab.selspot).enaretiMask || !enaretiMask->get_inconsistent();
|
||||
// Retinex
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).expreti = pedited->locallab.spots.at(pp->locallab.selspot).expreti || !expreti->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).retinexMethod = pedited->locallab.spots.at(pp->locallab.selspot).retinexMethod || retinexMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
@ -2447,6 +2543,15 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).localTgaincurve = pedited->locallab.spots.at(pp->locallab.selspot).localTgaincurve || !cTgainshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).inversret = pedited->locallab.spots.at(pp->locallab.selspot).inversret || !inversret->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).softradiusret = pedited->locallab.spots.at(pp->locallab.selspot).softradiusret || softradiusret->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).CCmaskreticurve = pedited->locallab.spots.at(pp->locallab.selspot).CCmaskreticurve || !CCmaskretishape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).LLmaskreticurve = pedited->locallab.spots.at(pp->locallab.selspot).LLmaskreticurve || !LLmaskretishape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).HHmaskreticurve = pedited->locallab.spots.at(pp->locallab.selspot).HHmaskreticurve || !HHmaskretishape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).enaretiMask = pedited->locallab.spots.at(pp->locallab.selspot).enaretiMask || !enaretiMask->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).blendmaskreti = pedited->locallab.spots.at(pp->locallab.selspot).blendmaskreti || blendmaskreti->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).radmaskreti = pedited->locallab.spots.at(pp->locallab.selspot).radmaskreti || radmaskreti->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).chromaskreti = pedited->locallab.spots.at(pp->locallab.selspot).chromaskreti || chromaskreti->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).gammaskreti = pedited->locallab.spots.at(pp->locallab.selspot).gammaskreti || gammaskreti->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).slomaskreti = pedited->locallab.spots.at(pp->locallab.selspot).slomaskreti || slomaskreti->getEditedState();
|
||||
// Sharpening
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).expsharp = pedited->locallab.spots.at(pp->locallab.selspot).expsharp || !expsharp->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).sharcontrast = pedited->locallab.spots.at(pp->locallab.selspot).sharcontrast || sharcontrast->getEditedState();
|
||||
@ -2738,6 +2843,25 @@ void Locallab::curveChanged(CurveEditor* ce)
|
||||
listener->panelChanged(EvlocallabCTgainCurve, M("HISTORY_CUSTOMCURVE"));
|
||||
}
|
||||
}
|
||||
|
||||
if (ce == CCmaskretishape) {
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabCCmaskretishape, M("HISTORY_CUSTOMCURVE"));
|
||||
}
|
||||
}
|
||||
|
||||
if (ce == LLmaskretishape) {
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabLLmaskretishape, M("HISTORY_CUSTOMCURVE"));
|
||||
}
|
||||
}
|
||||
|
||||
if (ce == HHmaskretishape) {
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabHHmaskretishape, M("HISTORY_CUSTOMCURVE"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -2795,6 +2919,7 @@ void Locallab::showmaskcolMethodChanged()
|
||||
showmaskexpMethod->set_active(0);
|
||||
showmaskSHMethod->set_active(0);
|
||||
showmaskcbMethod->set_active(0);
|
||||
showmaskretiMethod->set_active(0);
|
||||
enableListener();
|
||||
|
||||
if (listener) {
|
||||
@ -2811,6 +2936,7 @@ void Locallab::showmaskexpMethodChanged()
|
||||
showmaskcolMethod->set_active(0);
|
||||
showmaskcbMethod->set_active(0);
|
||||
showmaskSHMethod->set_active(0);
|
||||
showmaskretiMethod->set_active(0);
|
||||
enableListener();
|
||||
|
||||
if (listener) {
|
||||
@ -2827,6 +2953,7 @@ void Locallab::showmaskSHMethodChanged()
|
||||
showmaskcolMethod->set_active(0);
|
||||
showmaskexpMethod->set_active(0);
|
||||
showmaskcbMethod->set_active(0);
|
||||
showmaskretiMethod->set_active(0);
|
||||
enableListener();
|
||||
|
||||
if (listener) {
|
||||
@ -2843,6 +2970,7 @@ void Locallab::showmaskcbMethodChanged()
|
||||
showmaskcolMethod->set_active(0);
|
||||
showmaskSHMethod->set_active(0);
|
||||
showmaskexpMethod->set_active(0);
|
||||
showmaskretiMethod->set_active(0);
|
||||
enableListener();
|
||||
|
||||
if (listener) {
|
||||
@ -2850,6 +2978,23 @@ void Locallab::showmaskcbMethodChanged()
|
||||
}
|
||||
}
|
||||
|
||||
void Locallab::showmaskretiMethodChanged()
|
||||
{
|
||||
// printf("showmaskSHMethodChanged\n");
|
||||
|
||||
// When one mask state is changed, other masks are deactivated
|
||||
disableListener();
|
||||
showmaskcolMethod->set_active(0);
|
||||
showmaskSHMethod->set_active(0);
|
||||
showmaskexpMethod->set_active(0);
|
||||
showmaskcbMethod->set_active(0);
|
||||
enableListener();
|
||||
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabshowmaskretiMethod, "");
|
||||
}
|
||||
}
|
||||
|
||||
void Locallab::resetMaskVisibility()
|
||||
{
|
||||
// printf("resetMaskVisibility\n");
|
||||
@ -2859,6 +3004,7 @@ void Locallab::resetMaskVisibility()
|
||||
showmaskexpMethod->set_active(0);
|
||||
showmaskSHMethod->set_active(0);
|
||||
showmaskcbMethod->set_active(0);
|
||||
showmaskretiMethod->set_active(0);
|
||||
enableListener();
|
||||
}
|
||||
|
||||
@ -2869,6 +3015,7 @@ Locallab::llMaskVisibility* Locallab::getMaskVisibility()
|
||||
maskStruct->expMask = showmaskexpMethod->get_active_row_number();
|
||||
maskStruct->SHMask = showmaskSHMethod->get_active_row_number();
|
||||
maskStruct->cbMask = showmaskcbMethod->get_active_row_number();
|
||||
maskStruct->retiMask = showmaskretiMethod->get_active_row_number();
|
||||
// printf("SHmask=%i \n", maskStruct->SHMask);
|
||||
// printf("cbmask=%i \n", maskStruct->cbMask);
|
||||
|
||||
@ -2947,6 +3094,31 @@ void Locallab::enaSHMaskChanged()
|
||||
}
|
||||
}
|
||||
|
||||
void Locallab::enaretiMaskChanged()
|
||||
{
|
||||
// printf("enacbMaskChanged\n");
|
||||
|
||||
if (multiImage) {
|
||||
if (enaretiMask->get_inconsistent()) {
|
||||
enaretiMask->set_inconsistent(false);
|
||||
enaretiMaskConn.block(true);
|
||||
enaretiMask->set_active(false);
|
||||
enaretiMaskConn.block(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (getEnabled() && expreti->getEnabled()) {
|
||||
if (listener) {
|
||||
if (enaretiMask->get_active()) {
|
||||
listener->panelChanged(EvLocallabEnaretiMask, M("GENERAL_ENABLED"));
|
||||
} else {
|
||||
listener->panelChanged(EvLocallabEnaretiMask, M("GENERAL_DISABLED"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Locallab::enacbMaskChanged()
|
||||
{
|
||||
// printf("enacbMaskChanged\n");
|
||||
@ -3408,6 +3580,11 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
dehaz->setDefault((double)defSpot->dehaz);
|
||||
sensih->setDefault((double)defSpot->sensih);
|
||||
softradiusret->setDefault(defSpot->softradiusret);
|
||||
blendmaskreti->setDefault((double)defSpot->blendmaskreti);
|
||||
radmaskreti->setDefault(defSpot->radmaskreti);
|
||||
chromaskreti->setDefault(defSpot->chromaskreti);
|
||||
gammaskreti->setDefault(defSpot->gammaskreti);
|
||||
slomaskreti->setDefault(defSpot->slomaskreti);
|
||||
// Sharpening
|
||||
sharcontrast->setDefault((double)defSpot->sharcontrast);
|
||||
sharradius->setDefault(defSpot->sharradius);
|
||||
@ -3531,6 +3708,11 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
dehaz->setDefaultEditedState(Irrelevant);
|
||||
sensih->setDefaultEditedState(Irrelevant);
|
||||
softradiusret->setDefaultEditedState(Irrelevant);
|
||||
blendmaskreti->setDefaultEditedState(Irrelevant);
|
||||
radmaskreti->setDefaultEditedState(Irrelevant);
|
||||
chromaskreti->setDefaultEditedState(Irrelevant);
|
||||
gammaskreti->setDefaultEditedState(Irrelevant);
|
||||
slomaskreti->setDefaultEditedState(Irrelevant);
|
||||
// Sharpening
|
||||
sharcontrast->setDefaultEditedState(Irrelevant);
|
||||
sharradius->setDefaultEditedState(Irrelevant);
|
||||
@ -3658,6 +3840,11 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe
|
||||
dehaz->setDefaultEditedState(defSpotState->dehaz ? Edited : UnEdited);
|
||||
sensih->setDefaultEditedState(defSpotState->sensih ? Edited : UnEdited);
|
||||
softradiusret->setDefaultEditedState(defSpotState->softradiusret ? Edited : UnEdited);
|
||||
blendmaskreti->setDefaultEditedState(defSpotState->blendmaskreti ? Edited : UnEdited);
|
||||
radmaskreti->setDefaultEditedState(defSpotState->radmaskreti ? Edited : UnEdited);
|
||||
chromaskreti->setDefaultEditedState(defSpotState->chromaskreti ? Edited : UnEdited);
|
||||
gammaskreti->setDefaultEditedState(defSpotState->gammaskreti ? Edited : UnEdited);
|
||||
slomaskreti->setDefaultEditedState(defSpotState->slomaskreti ? Edited : UnEdited);
|
||||
// Sharpening
|
||||
sharcontrast->setDefaultEditedState(defSpotState->sharcontrast ? Edited : UnEdited);
|
||||
sharradius->setDefaultEditedState(defSpotState->sharradius ? Edited : UnEdited);
|
||||
@ -4177,6 +4364,36 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
|
||||
}
|
||||
}
|
||||
|
||||
if (a == blendmaskreti) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabblendmaskreti, blendmaskreti->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == radmaskreti) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabradmaskreti, radmaskreti->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == chromaskreti) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabchromaskreti, chromaskreti->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == gammaskreti) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabgammaskreti, gammaskreti->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == slomaskreti) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabslomaskreti, slomaskreti->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Sharpening
|
||||
@ -4529,6 +4746,11 @@ void Locallab::setBatchMode(bool batchMode)
|
||||
dehaz->showEditedCB();
|
||||
sensih->showEditedCB();
|
||||
softradiusret->showEditedCB();
|
||||
blendmaskreti->showEditedCB();
|
||||
radmaskreti->showEditedCB();
|
||||
chromaskreti->showEditedCB();
|
||||
gammaskreti->showEditedCB();
|
||||
slomaskreti->showEditedCB();
|
||||
// Sharpening
|
||||
sharradius->showEditedCB();
|
||||
sharamount->showEditedCB();
|
||||
@ -4586,6 +4808,7 @@ void Locallab::setBatchMode(bool batchMode)
|
||||
showmaskexpMethod->hide();
|
||||
showmaskSHMethod->hide();
|
||||
showmaskcbMethod->hide();
|
||||
showmaskretiMethod->hide();
|
||||
}
|
||||
|
||||
std::vector<double> Locallab::getCurvePoints(ThresholdSelector* tAdjuster) const
|
||||
@ -4756,6 +4979,8 @@ void Locallab::enableListener()
|
||||
enableretiConn.block(false);
|
||||
retinexMethodConn.block(false);
|
||||
inversretConn.block(false);
|
||||
enaretiMaskConn.block(false);
|
||||
showmaskretiMethodConn.block(false);
|
||||
// Sharpening
|
||||
enablesharpConn.block(false);
|
||||
inversshaConn.block(false);
|
||||
@ -4809,6 +5034,8 @@ void Locallab::disableListener()
|
||||
enableretiConn.block(true);
|
||||
retinexMethodConn.block(true);
|
||||
inversretConn.block(true);
|
||||
enaretiMaskConn.block(true);
|
||||
showmaskretiMethodConn.block(true);
|
||||
// Sharpening
|
||||
enablesharpConn.block(true);
|
||||
inversshaConn.block(true);
|
||||
@ -4975,6 +5202,15 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
cTgainshape->setCurve(pp->locallab.spots.at(index).localTgaincurve);
|
||||
inversret->set_active(pp->locallab.spots.at(index).inversret);
|
||||
softradiusret->setValue(pp->locallab.spots.at(index).softradiusret);
|
||||
CCmaskretishape->setCurve(pp->locallab.spots.at(index).CCmaskreticurve);
|
||||
LLmaskretishape->setCurve(pp->locallab.spots.at(index).LLmaskreticurve);
|
||||
HHmaskretishape->setCurve(pp->locallab.spots.at(index).HHmaskreticurve);
|
||||
enaretiMask->set_active(pp->locallab.spots.at(index).enaretiMask);
|
||||
blendmaskreti->setValue(pp->locallab.spots.at(index).blendmaskreti);
|
||||
radmaskreti->setValue(pp->locallab.spots.at(index).radmaskreti);
|
||||
chromaskreti->setValue(pp->locallab.spots.at(index).chromaskreti);
|
||||
gammaskreti->setValue(pp->locallab.spots.at(index).gammaskreti);
|
||||
slomaskreti->setValue(pp->locallab.spots.at(index).slomaskreti);
|
||||
|
||||
// Sharpening
|
||||
expsharp->setEnabled(pp->locallab.spots.at(index).expsharp);
|
||||
@ -5210,6 +5446,15 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
cTgainshape->setUnChanged(!spotState->localTgaincurve);
|
||||
inversret->set_inconsistent(multiImage && !spotState->inversret);
|
||||
softradiusret->setEditedState(spotState->softradiusret ? Edited : UnEdited);
|
||||
CCmaskretishape->setUnChanged(!spotState->CCmaskreticurve);
|
||||
LLmaskretishape->setUnChanged(!spotState->LLmaskreticurve);
|
||||
HHmaskretishape->setUnChanged(!spotState->HHmaskreticurve);
|
||||
enaretiMask->set_inconsistent(multiImage && !spotState->enaretiMask);
|
||||
blendmaskreti->setEditedState(spotState->blendmaskreti ? Edited : UnEdited);
|
||||
radmaskreti->setEditedState(spotState->radmaskreti ? Edited : UnEdited);
|
||||
chromaskreti->setEditedState(spotState->chromaskreti ? Edited : UnEdited);
|
||||
gammaskreti->setEditedState(spotState->gammaskreti ? Edited : UnEdited);
|
||||
slomaskreti->setEditedState(spotState->slomaskreti ? Edited : UnEdited);
|
||||
|
||||
// Sharpening
|
||||
expsharp->set_inconsistent(!spotState->expsharp);
|
||||
@ -5395,10 +5640,11 @@ void Locallab::updateSpecificGUIState()
|
||||
if (multiImage && inversret->get_inconsistent()) {
|
||||
sensih->show();
|
||||
softradiusret->show();
|
||||
showmaskretiMethod->show(); // Being able to change Color & Light mask visibility is useless in batch mode
|
||||
} else if (inversret->get_active()) {
|
||||
sensih->show();
|
||||
softradiusret->show();
|
||||
} else {
|
||||
showmaskretiMethod->hide();
|
||||
sensih->show();
|
||||
softradiusret->show();
|
||||
}
|
||||
|
@ -64,6 +64,7 @@ private:
|
||||
MyExpander* const expmaskexp;
|
||||
MyExpander* const expmasksh;
|
||||
MyExpander* const expmaskcb;
|
||||
MyExpander* const expmaskreti;
|
||||
sigc::connection enablecolorConn, enableexposeConn, enableshadhighConn, enablevibranceConn, enablesoftConn, enableblurConn, enabletonemapConn, enableretiConn, enablesharpConn, enablecontrastConn, enablecbdlConn, enabledenoiConn;
|
||||
|
||||
// Curve widgets
|
||||
@ -95,7 +96,11 @@ private:
|
||||
DiagonalCurveEditor* skinTonesCurve;
|
||||
// Retinex
|
||||
CurveEditorGroup* const LocalcurveEditorgainT;
|
||||
CurveEditorGroup* const maskretiCurveEditorG;
|
||||
FlatCurveEditor* cTgainshape;
|
||||
FlatCurveEditor* CCmaskretishape;
|
||||
FlatCurveEditor* LLmaskretishape;
|
||||
FlatCurveEditor* HHmaskretishape;
|
||||
//Cbdl
|
||||
CurveEditorGroup* const maskcbCurveEditorG;
|
||||
FlatCurveEditor* CCmaskcbshape;
|
||||
@ -176,6 +181,13 @@ private:
|
||||
Adjuster* const dehaz;
|
||||
Adjuster* const sensih;
|
||||
Adjuster* const softradiusret;
|
||||
|
||||
Adjuster* const blendmaskreti;
|
||||
Adjuster* const radmaskreti;
|
||||
Adjuster* const chromaskreti;
|
||||
Adjuster* const gammaskreti;
|
||||
Adjuster* const slomaskreti;
|
||||
|
||||
// Sharpening
|
||||
Adjuster* const sharcontrast;
|
||||
Adjuster* const sharradius;
|
||||
@ -246,6 +258,8 @@ private:
|
||||
// Retinex
|
||||
Gtk::CheckButton* const inversret;
|
||||
sigc::connection inversretConn;
|
||||
Gtk::CheckButton* const enaretiMask;
|
||||
sigc::connection enaretiMaskConn;
|
||||
// Sharpening
|
||||
Gtk::CheckButton* const inverssha;
|
||||
sigc::connection inversshaConn;
|
||||
@ -273,6 +287,8 @@ private:
|
||||
// Retinex
|
||||
MyComboBoxText* const retinexMethod;
|
||||
sigc::connection retinexMethodConn;
|
||||
MyComboBoxText* const showmaskretiMethod;
|
||||
sigc::connection showmaskretiMethodConn;
|
||||
//CBDL
|
||||
MyComboBoxText* const showmaskcbMethod;
|
||||
sigc::connection showmaskcbMethodConn;
|
||||
@ -329,6 +345,7 @@ private:
|
||||
void activlumChanged();
|
||||
// Retinex
|
||||
void inversretChanged();
|
||||
void enaretiMaskChanged();
|
||||
// Sharpening
|
||||
void inversshaChanged();
|
||||
//CBDL
|
||||
@ -346,6 +363,7 @@ private:
|
||||
void blurMethodChanged();
|
||||
// Retinex
|
||||
void retinexMethodChanged();
|
||||
void showmaskretiMethodChanged();
|
||||
//CBDL
|
||||
void showmaskcbMethodChanged();
|
||||
// Other widgets event functions
|
||||
@ -383,6 +401,7 @@ public:
|
||||
int expMask;
|
||||
int SHMask;
|
||||
int cbMask;
|
||||
int retiMask;
|
||||
};
|
||||
|
||||
void resetMaskVisibility();
|
||||
|
@ -1068,6 +1068,15 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).localTgaincurve = locallab.spots.at(j).localTgaincurve && pSpot.localTgaincurve == otherSpot.localTgaincurve;
|
||||
locallab.spots.at(j).inversret = locallab.spots.at(j).inversret && pSpot.inversret == otherSpot.inversret;
|
||||
locallab.spots.at(j).softradiusret = locallab.spots.at(j).softradiusret && pSpot.softradiusret == otherSpot.softradiusret;
|
||||
locallab.spots.at(j).CCmaskreticurve = locallab.spots.at(j).CCmaskreticurve && pSpot.CCmaskreticurve == otherSpot.CCmaskreticurve;
|
||||
locallab.spots.at(j).LLmaskreticurve = locallab.spots.at(j).LLmaskreticurve && pSpot.LLmaskreticurve == otherSpot.LLmaskreticurve;
|
||||
locallab.spots.at(j).HHmaskreticurve = locallab.spots.at(j).HHmaskreticurve && pSpot.HHmaskreticurve == otherSpot.HHmaskreticurve;
|
||||
locallab.spots.at(j).enaretiMask = locallab.spots.at(j).enaretiMask && pSpot.enaretiMask == otherSpot.enaretiMask;
|
||||
locallab.spots.at(j).blendmaskreti = locallab.spots.at(j).blendmaskreti && pSpot.blendmaskreti == otherSpot.blendmaskreti;
|
||||
locallab.spots.at(j).radmaskreti = locallab.spots.at(j).radmaskreti && pSpot.radmaskreti == otherSpot.radmaskreti;
|
||||
locallab.spots.at(j).chromaskreti = locallab.spots.at(j).chromaskreti && pSpot.chromaskreti == otherSpot.chromaskreti;
|
||||
locallab.spots.at(j).gammaskreti = locallab.spots.at(j).gammaskreti && pSpot.gammaskreti == otherSpot.gammaskreti;
|
||||
locallab.spots.at(j).slomaskreti = locallab.spots.at(j).slomaskreti && pSpot.slomaskreti == otherSpot.slomaskreti;
|
||||
// Sharpening
|
||||
locallab.spots.at(j).expsharp = locallab.spots.at(j).expsharp && pSpot.expsharp == otherSpot.expsharp;
|
||||
locallab.spots.at(j).sharcontrast = locallab.spots.at(j).sharcontrast && pSpot.sharcontrast == otherSpot.sharcontrast;
|
||||
@ -3084,6 +3093,42 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).inversret = mods.locallab.spots.at(i).inversret;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).CCmaskreticurve) {
|
||||
toEdit.locallab.spots.at(i).CCmaskreticurve = mods.locallab.spots.at(i).CCmaskreticurve;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).LLmaskreticurve) {
|
||||
toEdit.locallab.spots.at(i).LLmaskreticurve = mods.locallab.spots.at(i).LLmaskreticurve;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).HHmaskreticurve) {
|
||||
toEdit.locallab.spots.at(i).HHmaskreticurve = mods.locallab.spots.at(i).HHmaskreticurve;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).enaretiMask) {
|
||||
toEdit.locallab.spots.at(i).enaretiMask = mods.locallab.spots.at(i).enaretiMask;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).blendmaskreti) {
|
||||
toEdit.locallab.spots.at(i).blendmaskreti = mods.locallab.spots.at(i).blendmaskreti;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).radmaskreti) {
|
||||
toEdit.locallab.spots.at(i).radmaskreti = mods.locallab.spots.at(i).radmaskreti;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).chromaskreti) {
|
||||
toEdit.locallab.spots.at(i).chromaskreti = mods.locallab.spots.at(i).chromaskreti;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).gammaskreti) {
|
||||
toEdit.locallab.spots.at(i).gammaskreti = mods.locallab.spots.at(i).gammaskreti;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).slomaskreti) {
|
||||
toEdit.locallab.spots.at(i).slomaskreti = mods.locallab.spots.at(i).slomaskreti;
|
||||
}
|
||||
|
||||
// Sharpening
|
||||
if (locallab.spots.at(i).expsharp) {
|
||||
toEdit.locallab.spots.at(i).expsharp = mods.locallab.spots.at(i).expsharp;
|
||||
@ -4356,6 +4401,15 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
localTgaincurve(v),
|
||||
inversret(v),
|
||||
softradiusret(v),
|
||||
CCmaskreticurve(v),
|
||||
LLmaskreticurve(v),
|
||||
HHmaskreticurve(v),
|
||||
enaretiMask(v),
|
||||
blendmaskreti(v),
|
||||
radmaskreti(v),
|
||||
chromaskreti(v),
|
||||
gammaskreti(v),
|
||||
slomaskreti(v),
|
||||
// Sharpening
|
||||
expsharp(v),
|
||||
sharcontrast(v),
|
||||
@ -4552,6 +4606,15 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
localTgaincurve = v;
|
||||
inversret = v;
|
||||
softradiusret = v;
|
||||
CCmaskreticurve = v;
|
||||
LLmaskreticurve = v;
|
||||
HHmaskreticurve = v;
|
||||
enaretiMask = v;
|
||||
blendmaskreti = v;
|
||||
radmaskreti = v;
|
||||
chromaskreti = v;
|
||||
gammaskreti = v;
|
||||
slomaskreti = v;
|
||||
// Sharpening
|
||||
expsharp = v;
|
||||
sharcontrast = v;
|
||||
|
@ -495,6 +495,15 @@ public:
|
||||
bool localTgaincurve;
|
||||
bool inversret;
|
||||
bool softradiusret;
|
||||
bool CCmaskreticurve;
|
||||
bool LLmaskreticurve;
|
||||
bool HHmaskreticurve;
|
||||
bool enaretiMask;
|
||||
bool blendmaskreti;
|
||||
bool radmaskreti;
|
||||
bool chromaskreti;
|
||||
bool gammaskreti;
|
||||
bool slomaskreti;
|
||||
// Sharpening
|
||||
bool expsharp;
|
||||
bool sharcontrast;
|
||||
|
@ -466,9 +466,9 @@ void ToolPanelCoordinator::panelChanged(const rtengine::ProcEvent& event, const
|
||||
}
|
||||
|
||||
// Manage Locallab mask visibility
|
||||
if (event == rtengine::EvlocallabshowmaskcolMethod || event == rtengine::EvlocallabshowmaskexpMethod || event == rtengine::EvlocallabshowmaskSHMethod || event == rtengine::EvlocallabshowmaskcbMethod) {
|
||||
if (event == rtengine::EvlocallabshowmaskcolMethod || event == rtengine::EvlocallabshowmaskexpMethod || event == rtengine::EvlocallabshowmaskSHMethod || event == rtengine::EvlocallabshowmaskcbMethod || event == rtengine::EvlocallabshowmaskretiMethod ) {
|
||||
Locallab::llMaskVisibility* maskStruc = locallab->getMaskVisibility();
|
||||
ipc->setLocallabMaskVisibility(maskStruc->colorMask, maskStruc->expMask, maskStruc->SHMask, maskStruc->cbMask);
|
||||
ipc->setLocallabMaskVisibility(maskStruc->colorMask, maskStruc->expMask, maskStruc->SHMask, maskStruc->cbMask, maskStruc->retiMask);
|
||||
}
|
||||
|
||||
ipc->endUpdateParams(changeFlags); // starts the IPC processing
|
||||
@ -576,7 +576,7 @@ void ToolPanelCoordinator::profileChange(
|
||||
// Reset Locallab mask visibility when a picture is loaded
|
||||
if (event == rtengine::EvPhotoLoaded) {
|
||||
locallab->resetMaskVisibility();
|
||||
ipc->setLocallabMaskVisibility(0, 0, 0, 0);
|
||||
ipc->setLocallabMaskVisibility(0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
// start the IPC processing
|
||||
|
Loading…
x
Reference in New Issue
Block a user