Add tooltip for small defaults - hide TM

This commit is contained in:
Desmis
2018-12-30 13:55:49 +01:00
parent 908d34d462
commit d54198cc56
9 changed files with 150 additions and 14 deletions

View File

@@ -1930,11 +1930,13 @@ TP_LOCALLAB_BLINV;Inverse
TP_LOCALLAB_BLSYM;Symmetric
TP_LOCALLAB_CENTER_X;Center X
TP_LOCALLAB_CENTER_Y;Center Y
TP_LOCALLAB_CBDL;Contrast by detail levels
TP_LOCALLAB_CBDL;Contrast by detail levels -Dist.defects:grease..
TP_LOCALLAB_EXPCBDL_TOOLTIP;In the case of contaminated sensor (type "grease"), and when the area is important or for a series of small defects.\n\na) put the selection spot on a pronounced default (adapting its size if necessary); b) choose a wide selection area to cover most of the area affected by the defects; c) Select a fairly large transition value; d) act on levels 3 and 4 or lower by reducing the contrast (values below 100) and by acting on the chroma slider if necessary.
TP_LOCALLAB_CHROMA;Chrominance
TP_LOCALLAB_CHRRT;Chroma
TP_LOCALLAB_CIRCRADIUS;Spot size
TP_LOCALLAB_COFR;Color & Light
TP_LOCALLAB_COFR;Color & Light -Small defects:red eyes,dust
TP_LOCALLAB_EXPCOLOR_TOOLTIP;In the case of small defects.\n\nRed-eyes : red-centered circular selector, spot delimiters close to the eye, weak scope, "lightness" -100, "chrominance" -100.\n\nSpotIR :Circular selector centered on the defect, spot delimiters close to the default - reduce "chrominance", possibly act on "scope" to reduce the extent of the action.\n\nDust - grease (small) :Circular selector centered on the defect (adapt the size of the spot), spot delimiters not too close to the defect to allow an inconspicuous transition. a) "Transition" weak; b) tick "Lightness contrast super"; c) act on "luminance" and possibly on "chrominance" to approach the rendering of the polluted zone to that of the healthy zone; d) act moderately on "scope" to modulate the desired action.
TP_LOCALLAB_CONTRAST;Contrast
TP_LOCALLAB_CURV;Lightness - Contrast - Chrominance "Super"
TP_LOCALLAB_CURVNONE;Disable curves

View File

@@ -630,6 +630,7 @@ enum ProcEventCode {
Evlocallabstreng = 600,
Evlocallabsensisf = 601,
Evlocallabsharblur = 602,
EvLocenalabregion = 603,
NUMOFEVENTS
};

View File

@@ -2393,6 +2393,8 @@ LocallabParams::LocallabParams() :
expsoft(),
streng(),
sensisf(),
//Lab region
explabregion(),
// Blur & Noise
expblur(),
radius(),
@@ -2523,6 +2525,8 @@ bool LocallabParams::operator ==(const LocallabParams& other) const
&& expsoft == other.expsoft
&& streng == other.streng
&& sensisf == other.sensisf
//Lab region
&& explabregion == other.explabregion
// Blur & Noise
&& expblur == other.expblur
&& radius == other.radius
@@ -3581,6 +3585,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
saveToKeyfile(!pedited || pedited->locallab.expsoft, "Locallab", "Expsoft_" + std::to_string(i), locallab.expsoft.at(i), keyFile);
saveToKeyfile(!pedited || pedited->locallab.streng, "Locallab", "Streng_" + std::to_string(i), locallab.streng.at(i), keyFile);
saveToKeyfile(!pedited || pedited->locallab.sensisf, "Locallab", "Sensisf_" + std::to_string(i), locallab.sensisf.at(i), keyFile);
//Lab region
saveToKeyfile(!pedited || pedited->locallab.explabregion, "Locallab", "Explabregion_" + std::to_string(i), locallab.explabregion.at(i), keyFile);
// Blur & Noise
saveToKeyfile(!pedited || pedited->locallab.expblur, "Locallab", "Expblur_" + std::to_string(i), locallab.expblur.at(i), keyFile);
saveToKeyfile(!pedited || pedited->locallab.radius, "Locallab", "Radius_" + std::to_string(i), locallab.radius.at(i), keyFile);
@@ -4774,6 +4780,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
locallab.expsoft.resize(locallab.nbspot);
locallab.streng.resize(locallab.nbspot);
locallab.sensisf.resize(locallab.nbspot);
//Lab region
locallab.explabregion.resize(locallab.nbspot);
// Blur & Noise
locallab.expblur.resize(locallab.nbspot);
locallab.radius.resize(locallab.nbspot);
@@ -4913,6 +4921,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
assignFromKeyfile(keyFile, "Locallab", "Expsoft_" + std::to_string(i), pedited, locallab.expsoft.at(i), pedited->locallab.expsoft);
assignFromKeyfile(keyFile, "Locallab", "Streng_" + std::to_string(i), pedited, locallab.streng.at(i), pedited->locallab.streng);
assignFromKeyfile(keyFile, "Locallab", "Sensisf_" + std::to_string(i), pedited, locallab.sensisf.at(i), pedited->locallab.sensisf);
//Lab region
assignFromKeyfile(keyFile, "Locallab", "Explabregion_" + std::to_string(i), pedited, locallab.explabregion.at(i), pedited->locallab.explabregion);
// Blur & Noise
assignFromKeyfile(keyFile, "Locallab", "Expblur_" + std::to_string(i), pedited, locallab.expblur.at(i), pedited->locallab.expblur);
assignFromKeyfile(keyFile, "Locallab", "Radius_" + std::to_string(i), pedited, locallab.radius.at(i), pedited->locallab.radius);

View File

@@ -981,6 +981,30 @@ struct LocallabParams {
std::vector<int> expsoft;
std::vector<int> streng;
std::vector<int> sensisf;
//Lab region
std::vector<int> explabregion;
/*
struct LabCorrectionRegion {
enum { CHAN_ALL = -1, CHAN_R, CHAN_G, CHAN_B };
double a;
double b;
double saturation;
double slope;
double offset;
double power;
std::vector<double> hueMask;
std::vector<double> chromaticityMask;
std::vector<double> lightnessMask;
double maskBlur;
int channel;
LabCorrectionRegion();
bool operator==(const LabCorrectionRegion &other) const;
bool operator!=(const LabCorrectionRegion &other) const;
};
std::vector<LabCorrectionRegion> Labcorr;
*/
// Blur & Noise
std::vector<int> expblur;
std::vector<int> radius;

View File

@@ -629,7 +629,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
LUMINANCECURVE, //EvLocenasoft
LUMINANCECURVE, //EvLocallabstreng
LUMINANCECURVE, //EvLocallabsensisf
LUMINANCECURVE //Evlocallabsharblur
LUMINANCECURVE, //Evlocallabsharblur
LUMINANCECURVE //EvLocenalabregion
};

View File

@@ -49,6 +49,7 @@ Locallab::Locallab():
expexpose(new MyExpander(true, M("TP_LOCALLAB_EXPOSE"))),
expvibrance(new MyExpander(true, M("TP_LOCALLAB_VIBRANCE"))),
expsoft(new MyExpander(true, M("TP_LOCALLAB_SOFT"))),
explabregion(new MyExpander(true, M("TP_LOCALLAB_LABREGION"))),
expblur(new MyExpander(true, M("TP_LOCALLAB_BLUFR"))),
exptonemap(new MyExpander(true, M("TP_LOCALLAB_TM"))),
expreti(new MyExpander(true, M("TP_LOCALLAB_RETI"))),
@@ -186,6 +187,7 @@ Locallab::Locallab():
// Color & Light
expcolor->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), expcolor));
enablecolorConn = expcolor->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Locallab::enableToggled), expcolor));
expcolor->set_tooltip_text(M("TP_LOCALLAB_EXPCOLOR_TOOLTIP"));
curvactivConn = curvactiv->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::curvactivChanged));
@@ -402,6 +404,22 @@ Locallab::Locallab():
panel->pack_start(*expsoft, false, false);
//Labregion
explabregion->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), explabregion));
enablelabregionConn = explabregion->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Locallab::enableToggled), explabregion));
ToolParamBlock* const labRegionBox = Gtk::manage(new ToolParamBlock());
explabregion->add(*labRegionBox);
explabregion->setLevel(2);
/*
labRegionSlope = Gtk::manage(new Adjuster(M("TP_COLORTONING_LABREGION_SLOPE"), 0.1, 4.0, 0.001, 1));
labRegionSlope->setLogScale(4, 0.1);
labRegionSlope->setAdjusterListener(this);
labRegionBox->pack_start(*labRegionSlope);
*/
// panel->pack_start(*explabregion, false, false);
// labRegionSlope->delay = options.adjusterMaxDelay;
// Blur & Noise
expblur->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), expblur));
enableblurConn = expblur->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Locallab::enableToggled), expblur));
@@ -460,7 +478,7 @@ Locallab::Locallab():
exptonemap->add(*tmBox);
exptonemap->setLevel(2);
panel->pack_start(*exptonemap, false, false);
// panel->pack_start(*exptonemap, false, false);
// Retinex
expreti->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), expreti));
@@ -569,6 +587,7 @@ Locallab::Locallab():
// Contrast by detail levels
expcbdl->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), expcbdl));
enablecbdlConn = expcbdl->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Locallab::enableToggled), expcbdl));
expcbdl->set_tooltip_text(M("TP_LOCALLAB_EXPCBDL_TOOLTIP"));
for (int i = 0; i < 5; i++) {
Glib::ustring ss;
@@ -685,6 +704,7 @@ void Locallab::foldAllButMe(GdkEventButton* event, MyExpander *expander)
expexpose->set_expanded(expexpose == expander);
expvibrance->set_expanded(expvibrance == expander);
expsoft->set_expanded(expsoft == expander);
explabregion->set_expanded(explabregion == expander);
expblur->set_expanded(expblur == expander);
exptonemap->set_expanded(exptonemap == expander);
expreti->set_expanded(expreti == expander);
@@ -712,6 +732,8 @@ void Locallab::enableToggled(MyExpander *expander)
event = EvLocenavibrance;
} else if (expander == expsoft) {
event = EvLocenasoft;
} else if (expander == explabregion) {
event = EvLocenalabregion;
} else if (expander == expblur) {
event = EvLocenablur;
} else if (expander == exptonemap) {
@@ -748,6 +770,7 @@ void Locallab::writeOptions(std::vector<int> &tpOpen)
tpOpen.push_back(expexpose->get_expanded());
tpOpen.push_back(expvibrance->get_expanded());
tpOpen.push_back(expsoft->get_expanded());
tpOpen.push_back(explabregion->get_expanded());
tpOpen.push_back(expblur->get_expanded());
tpOpen.push_back(exptonemap->get_expanded());
tpOpen.push_back(expreti->get_expanded());
@@ -760,19 +783,20 @@ void Locallab::writeOptions(std::vector<int> &tpOpen)
void Locallab::updateToolState(std::vector<int> &tpOpen)
{
if (tpOpen.size() >= 12) {
if (tpOpen.size() >= 13) {
expsettings->setExpanded(tpOpen.at(0));
expcolor->set_expanded(tpOpen.at(1));
expexpose->set_expanded(tpOpen.at(2));
expvibrance->set_expanded(tpOpen.at(3));
expsoft->set_expanded(tpOpen.at(4));
expblur->set_expanded(tpOpen.at(5));
exptonemap->set_expanded(tpOpen.at(6));
expreti->set_expanded(tpOpen.at(7));
expsharp->set_expanded(tpOpen.at(8));
expcontrast->set_expanded(tpOpen.at(9));
expcbdl->set_expanded(tpOpen.at(10));
expdenoi->set_expanded(tpOpen.at(11));
explabregion->set_expanded(tpOpen.at(5));
expblur->set_expanded(tpOpen.at(6));
exptonemap->set_expanded(tpOpen.at(7));
expreti->set_expanded(tpOpen.at(8));
expsharp->set_expanded(tpOpen.at(9));
expcontrast->set_expanded(tpOpen.at(10));
expcbdl->set_expanded(tpOpen.at(11));
expdenoi->set_expanded(tpOpen.at(12));
}
}
@@ -904,6 +928,9 @@ void Locallab::read(const ProcParams* pp, const ParamsEdited* pedited)
streng->setEditedState(pedited->locallab.streng ? Edited : UnEdited);
sensisf->setEditedState(pedited->locallab.sensisf ? Edited : UnEdited);
//Lab region
explabregion->set_inconsistent(!pedited->locallab.explabregion);
// Blur & Noise
expblur->set_inconsistent(!pedited->locallab.expblur);
radius->setEditedState(pedited->locallab.radius ? Edited : UnEdited);
@@ -1175,6 +1202,8 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pp->locallab.expsoft.push_back(0);
pp->locallab.streng.push_back(0);
pp->locallab.sensisf.push_back(19);
//Lab region
pp->locallab.explabregion.push_back(0);
// Blur & Noise
pp->locallab.expblur.push_back(0);
pp->locallab.radius.push_back(1);
@@ -1320,6 +1349,9 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pp->locallab.expsoft.erase(pp->locallab.expsoft.begin() + i);
pp->locallab.streng.erase(pp->locallab.streng.begin() + i);
pp->locallab.sensisf.erase(pp->locallab.sensisf.begin() + i);
//Lab region
pp->locallab.explabregion.erase(pp->locallab.explabregion.begin() + i);
// Blur & Noise
pp->locallab.expblur.erase(pp->locallab.expblur.begin() + i);
pp->locallab.radius.erase(pp->locallab.radius.begin() + i);
@@ -1526,6 +1558,8 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pp->locallab.expsoft.at(pp->locallab.selspot) = (int)expsoft->getEnabled();
pp->locallab.streng.at(pp->locallab.selspot) = streng->getIntValue();
pp->locallab.sensisf.at(pp->locallab.selspot) = sensisf->getIntValue();
//Lab region
pp->locallab.explabregion.at(pp->locallab.selspot) = (int)explabregion->getEnabled();
// Blur & Noise
pp->locallab.expblur.at(pp->locallab.selspot) = (int)expblur->getEnabled();
pp->locallab.radius.at(pp->locallab.selspot) = radius->getIntValue();
@@ -1679,6 +1713,8 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
pedited->locallab.expsoft = !expsoft->get_inconsistent();
pedited->locallab.streng = streng->getEditedState();
pedited->locallab.sensisf = sensisf->getEditedState();
//Lab region
pedited->locallab.explabregion = !explabregion->get_inconsistent();
// Blur & Noise
pedited->locallab.expblur = !expblur->get_inconsistent();
pedited->locallab.radius = radius->getEditedState();
@@ -2514,6 +2550,17 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
}
}
}
//Lab region
/*
if (getEnabled() && explabregion->getEnabled()) {
if (a == labRegionSlope) {
if (listener) {
listener->panelChanged(EvlocallablabRegionSlope, labRegionSlope->getTextValue());
}
}
}
*/
// Blur & Noise
if (getEnabled() && expblur->getEnabled()) {
if (a == radius) {
@@ -3229,6 +3276,9 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, int
expsoft->setEnabled((bool)pp->locallab.expsoft.at(index));
streng->setValue(pp->locallab.streng.at(index));
sensisf->setValue(pp->locallab.sensisf.at(index));
//Lab region
explabregion->setEnabled((bool)pp->locallab.explabregion.at(index));
// Blur & Noise
expblur->setEnabled((bool)pp->locallab.expblur.at(index));
radius->setValue(pp->locallab.radius.at(index));

View File

@@ -48,6 +48,7 @@ private:
MyExpander* const expexpose;
MyExpander* const expvibrance;
MyExpander* const expsoft;
MyExpander* const explabregion;
MyExpander* const expblur;
MyExpander* const exptonemap;
MyExpander* const expreti;
@@ -55,7 +56,7 @@ private:
MyExpander* const expcontrast;
MyExpander* const expcbdl;
MyExpander* const expdenoi;
sigc::connection enablecolorConn, enableexposeConn, enablevibranceConn, enablesoftConn, enableblurConn, enabletonemapConn, enableretiConn, enablesharpConn, enablecontrastConn, enablecbdlConn, enabledenoiConn;
sigc::connection enablecolorConn, enableexposeConn, enablevibranceConn, enablesoftConn, enablelabregionConn, enableblurConn, enabletonemapConn, enableretiConn, enablesharpConn, enablecontrastConn, enablecbdlConn, enabledenoiConn;
// Curve widgets
// Color & Light
@@ -226,7 +227,43 @@ private:
// Locallab GUI management function
void updateLocallabGUI(const rtengine::procparams::ProcParams* pp, int index);
void updateSpecificGUIState();
/*
void onLabRegionSelectionChanged();
void labRegionAddPressed();
void labRegionRemovePressed();
void labRegionUpPressed();
void labRegionDownPressed();
void labRegionCopyPressed();
void labRegionShowMaskChanged();
void labRegionChannelChanged();
void labRegionPopulateList();
void labRegionShow(int idx, bool list_only=false);
void labRegionGet(int idx);
Gtk::VBox *labRegionBox;
Gtk::ListViewText *labRegionList;
Gtk::Button *labRegionAdd;
Gtk::Button *labRegionRemove;
Gtk::Button *labRegionUp;
Gtk::Button *labRegionDown;
Gtk::Button *labRegionCopy;
LabGrid *labRegionAB;
Adjuster *labRegionSaturation;
*/
// Adjuster *labRegionSlope;
/*
Adjuster *labRegionOffset;
Adjuster *labRegionPower;
MyComboBoxText *labRegionChannel;
FlatCurveEditor *labRegionHueMask;
FlatCurveEditor *labRegionChromaticityMask;
FlatCurveEditor *labRegionLightnessMask;
Adjuster *labRegionMaskBlur;
Gtk::CheckButton *labRegionShowMask;
std::vector<rtengine::ColorToningParams::LabCorrectionRegion> labRegionData;
int labRegionSelected;
sigc::connection labRegionSelectionConn;
*/
public:
Locallab();
~Locallab();

View File

@@ -389,6 +389,8 @@ void ParamsEdited::set(bool v)
locallab.expsoft = v;
locallab.streng = v;
locallab.sensisf = v;
//Lab region
locallab.explabregion = v;
// Blur & Noise
locallab.expblur = v;
locallab.radius = v;
@@ -1086,6 +1088,8 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
locallab.expsoft = locallab.expsoft && p.locallab.expsoft == other.locallab.expsoft;
locallab.streng = locallab.streng && p.locallab.streng == other.locallab.streng;
locallab.sensisf = locallab.sensisf && p.locallab.sensisf == other.locallab.sensisf;
//Lab region
locallab.explabregion = locallab.explabregion && p.locallab.explabregion == other.locallab.explabregion;
// Blur & Noise
locallab.expblur = locallab.expblur && p.locallab.expblur == other.locallab.expblur;
locallab.radius = locallab.radius && p.locallab.radius == other.locallab.radius;
@@ -2754,6 +2758,11 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
toEdit.locallab.sensisf = mods.locallab.sensisf;
}
//Lab region
if (locallab.explabregion) {
toEdit.locallab.explabregion = mods.locallab.explabregion;
}
// Blur & Noise
if (locallab.expblur) {
toEdit.locallab.expblur = mods.locallab.expblur;

View File

@@ -519,6 +519,8 @@ public:
bool expsoft;
bool streng;
bool sensisf;
//Lab region
bool explabregion;
// Blur & Noise
bool expblur;
bool radius;