Bugfix in SpotRemoval tool GUI (Batch Editor) + Partial Paste handling

This commit is contained in:
Hombre57 2019-12-17 21:46:18 +01:00
parent 9bb19eb1a3
commit 8b60ea4794
5 changed files with 26 additions and 7 deletions

View File

@ -1022,6 +1022,7 @@ PARTIALPASTE_SHARPENEDGE;Bords
PARTIALPASTE_SHARPENING;Netteté PARTIALPASTE_SHARPENING;Netteté
PARTIALPASTE_SHARPENMICRO;Microcontraste PARTIALPASTE_SHARPENMICRO;Microcontraste
PARTIALPASTE_SOFTLIGHT;Lumière douce PARTIALPASTE_SOFTLIGHT;Lumière douce
PARTIALPASTE_SPOT;Retrait de taches
PARTIALPASTE_TM_FATTAL;Compression de plage dynamique PARTIALPASTE_TM_FATTAL;Compression de plage dynamique
PARTIALPASTE_VIBRANCE;Vibrance PARTIALPASTE_VIBRANCE;Vibrance
PARTIALPASTE_VIGNETTING;Correction du vignettage PARTIALPASTE_VIGNETTING;Correction du vignettage

View File

@ -1044,6 +1044,7 @@ PARTIALPASTE_SHARPENEDGE;Edges
PARTIALPASTE_SHARPENING;Sharpening (USM/RL) PARTIALPASTE_SHARPENING;Sharpening (USM/RL)
PARTIALPASTE_SHARPENMICRO;Microcontrast PARTIALPASTE_SHARPENMICRO;Microcontrast
PARTIALPASTE_SOFTLIGHT;Soft light PARTIALPASTE_SOFTLIGHT;Soft light
PARTIALPASTE_SPOT;Spot removal
PARTIALPASTE_TM_FATTAL;Dynamic range compression PARTIALPASTE_TM_FATTAL;Dynamic range compression
PARTIALPASTE_VIBRANCE;Vibrance PARTIALPASTE_VIBRANCE;Vibrance
PARTIALPASTE_VIGNETTING;Vignetting correction PARTIALPASTE_VIGNETTING;Vignetting correction

View File

@ -57,6 +57,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren
labcurve = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_LABCURVE"))); labcurve = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_LABCURVE")));
// Detail Settings: // Detail Settings:
spot = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SPOT")));
sharpen = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SHARPENING"))); sharpen = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SHARPENING")));
localcontrast = Gtk::manage(new Gtk::CheckButton(M("PARTIALPASTE_LOCALCONTRAST"))); localcontrast = Gtk::manage(new Gtk::CheckButton(M("PARTIALPASTE_LOCALCONTRAST")));
sharpenedge = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SHARPENEDGE"))); sharpenedge = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SHARPENEDGE")));
@ -164,6 +165,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren
//DETAIL //DETAIL
vboxes[1]->pack_start (*detail, Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*detail, Gtk::PACK_SHRINK, 2);
vboxes[1]->pack_start (*hseps[1], Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*hseps[1], Gtk::PACK_SHRINK, 2);
vboxes[1]->pack_start (*spot, Gtk::PACK_SHRINK, 2);
vboxes[1]->pack_start (*sharpen, Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*sharpen, Gtk::PACK_SHRINK, 2);
vboxes[1]->pack_start (*localcontrast, Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*localcontrast, Gtk::PACK_SHRINK, 2);
vboxes[1]->pack_start (*sharpenedge, Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*sharpenedge, Gtk::PACK_SHRINK, 2);
@ -326,6 +328,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren
labcurveConn = labcurve->signal_toggled().connect (sigc::bind (sigc::mem_fun(*basic, &Gtk::CheckButton::set_inconsistent), true)); labcurveConn = labcurve->signal_toggled().connect (sigc::bind (sigc::mem_fun(*basic, &Gtk::CheckButton::set_inconsistent), true));
// Detail Settings: // Detail Settings:
spotConn = spot->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
sharpenConn = sharpen->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true)); sharpenConn = sharpen->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
localcontrastConn = localcontrast->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true)); localcontrastConn = localcontrast->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
gradsharpenConn = sharpenedge->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true)); gradsharpenConn = sharpenedge->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
@ -539,6 +542,7 @@ void PartialPasteDlg::basicToggled ()
void PartialPasteDlg::detailToggled () void PartialPasteDlg::detailToggled ()
{ {
ConnectionBlocker spotBlocker(spotConn);
ConnectionBlocker sharpenBlocker(sharpenConn); ConnectionBlocker sharpenBlocker(sharpenConn);
ConnectionBlocker localcontrastBlocker(localcontrastConn); ConnectionBlocker localcontrastBlocker(localcontrastConn);
ConnectionBlocker gradsharpenBlocker(gradsharpenConn); ConnectionBlocker gradsharpenBlocker(gradsharpenConn);
@ -551,6 +555,7 @@ void PartialPasteDlg::detailToggled ()
detail->set_inconsistent (false); detail->set_inconsistent (false);
spot->set_active (detail->get_active ());
sharpen->set_active (detail->get_active ()); sharpen->set_active (detail->get_active ());
localcontrast->set_active(detail->get_active()); localcontrast->set_active(detail->get_active());
sharpenedge->set_active (detail->get_active ()); sharpenedge->set_active (detail->get_active ());
@ -717,6 +722,10 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param
filterPE.colorappearance = falsePE.colorappearance; filterPE.colorappearance = falsePE.colorappearance;
} }
if (!spot->get_active ()) {
filterPE.spot = falsePE.spot;
}
if (!sharpen->get_active ()) { if (!sharpen->get_active ()) {
filterPE.sharpening = falsePE.sharpening; filterPE.sharpening = falsePE.sharpening;
} }

View File

@ -67,6 +67,7 @@ public:
Gtk::CheckButton* colorappearance; Gtk::CheckButton* colorappearance;
// options in detail: // options in detail:
Gtk::CheckButton* spot;
Gtk::CheckButton* sharpen; Gtk::CheckButton* sharpen;
Gtk::CheckButton* sharpenedge; Gtk::CheckButton* sharpenedge;
Gtk::CheckButton* sharpenmicro; Gtk::CheckButton* sharpenmicro;
@ -146,7 +147,7 @@ public:
sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaConn, rawConn, advancedConn; sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaConn, rawConn, advancedConn;
sigc::connection wbConn, exposureConn, localcontrastConn, shConn, pcvignetteConn, gradientConn, labcurveConn, colorappearanceConn; sigc::connection wbConn, exposureConn, localcontrastConn, shConn, pcvignetteConn, gradientConn, labcurveConn, colorappearanceConn;
sigc::connection sharpenConn, gradsharpenConn, microcontrastConn, impdenConn, dirpyrdenConn, defringeConn, epdConn, fattalConn, dirpyreqConn, waveletConn, retinexConn, dehazeConn; sigc::connection spotConn, sharpenConn, gradsharpenConn, microcontrastConn, impdenConn, dirpyrdenConn, defringeConn, epdConn, fattalConn, dirpyreqConn, waveletConn, retinexConn, dehazeConn;
sigc::connection vibranceConn, chmixerConn, hsveqConn, rgbcurvesConn, chmixerbwConn, colortoningConn, filmSimulationConn, softlightConn; sigc::connection vibranceConn, chmixerConn, hsveqConn, rgbcurvesConn, chmixerbwConn, colortoningConn, filmSimulationConn, softlightConn;
sigc::connection distortionConn, cacorrConn, vignettingConn, lcpConn; sigc::connection distortionConn, cacorrConn, vignettingConn, lcpConn;
sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, prsharpeningConn, perspectiveConn, commonTransConn; sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, prsharpeningConn, perspectiveConn, commonTransConn;

View File

@ -131,11 +131,16 @@ void Spot::read (const ProcParams* pp, const ParamsEdited* pedited)
activeSpot = -1; activeSpot = -1;
lastObject = -1; lastObject = -1;
if (spots.size() != oldSize) { if (batchMode) {
createGeometry(); editedCheckBox->set_label(Glib::ustring::compose (M ("TP_SPOT_COUNTLABEL"), spots.size()));
} }
else {
if (spots.size() != oldSize) {
createGeometry();
}
updateGeometry(); updateGeometry();
}
enableListener (); enableListener ();
} }
@ -147,7 +152,7 @@ void Spot::write (ProcParams* pp, ParamsEdited* pedited)
if (pedited) { if (pedited) {
pedited->spot.enabled = !get_inconsistent(); pedited->spot.enabled = !get_inconsistent();
pedited->spot.entries = !editedCheckBox->get_active(); pedited->spot.entries = editedCheckBox->get_active();
} }
} }
@ -160,8 +165,10 @@ void Spot::resetPressed()
editedCheckBox->set_active (true); editedCheckBox->set_active (true);
editedConn.block (false); editedConn.block (false);
editedCheckBox->set_label(Glib::ustring::compose (M ("TP_SPOT_COUNTLABEL"), spots.size()));
if (listener) { if (listener) {
listener->panelChanged (EvSpotEntry, Glib::ustring::compose (M ("TP_SPOT_COUNTLABEL"), spots.size())); listener->panelChanged (EvSpotEntry, Glib::ustring::compose (M ("TP_SPOT_COUNTLABEL"), 0));
} }
} else { } else {
if (!spots.empty()) { if (!spots.empty()) {
@ -783,7 +790,7 @@ void Spot::tweakParams(procparams::ProcParams& pparams)
//params->raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST); //params->raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST);
// -> disabling all transform // -> disabling all transform
//params->coarse = CoarseTransformParams(); //pparams.coarse = CoarseTransformParams();
pparams.lensProf = LensProfParams(); pparams.lensProf = LensProfParams();
pparams.cacorrection = CACorrParams(); pparams.cacorrection = CACorrParams();
pparams.distortion = DistortionParams(); pparams.distortion = DistortionParams();