From c96bbfb3785a12f414975761722f7bfa53dc6ba6 Mon Sep 17 00:00:00 2001 From: Emil Martinec Date: Mon, 13 Sep 2010 14:41:14 -0500 Subject: [PATCH] A patch for the patch. As far as I can tell, the NR tools now update properly. --- rtengine/procevents.h | 8 ++++++-- rtengine/refreshmap.cc | 6 +++++- rtengine/refreshmap.h | 2 ++ rtgui/dirpyrdenoise.cc | 14 +++++++------- rtgui/impulsedenoise.cc | 4 ++-- rtgui/partialpastedlg.cc | 14 ++++++++++++++ rtgui/partialpastedlg.h | 7 +++++-- rtgui/toolpanelcoord.cc | 6 +++--- 8 files changed, 44 insertions(+), 17 deletions(-) diff --git a/rtengine/procevents.h b/rtengine/procevents.h index 185835498..7f4723d6d 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -21,7 +21,7 @@ #include -#define NUMOFEVENTS 86 +#define NUMOFEVENTS 90 namespace rtengine { @@ -111,7 +111,11 @@ enum ProcEvent { EvSHHighQuality=82, EvPerspCorr=83, EvEqualizer=84, - EvEqlEnabled=85 + EvEqlEnabled=85, + EvIDNEnabled=86, + EvDPDNEnabled=87, + EvDPDNLuma=88, + EvDPDNChroma=89 }; } #endif diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index a27ae2bb7..98f597376 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -104,6 +104,10 @@ ALL, // EvProfileChangeNotification RETINEX, // EvShrHighQuality TRANSFORM, // EvPerspCorr EQUALIZER, // EvEqualizer -EQUALIZER // EvEqlEnabled +EQUALIZER, // EvEqlEnabled +IMPULSEDENOISE, // EvIDNEnabled, +DIRPYRDENOISE, // EvDPDNEnabled, +DIRPYRDENOISE, // EvDPDNLuma, +DIRPYRDENOISE // EvDPDNChroma, }; diff --git a/rtengine/refreshmap.h b/rtengine/refreshmap.h index 962bbcf59..90073c563 100644 --- a/rtengine/refreshmap.h +++ b/rtengine/refreshmap.h @@ -29,10 +29,12 @@ #define RGBCURVE 15 #define LUMINANCECURVE 6 #define SHARPENING 2 +#define IMPULSEDENOISE 2 #define LUMADENOISE 2 #define WHITEBALANCE 255 #define COLORBOOST 1 #define COLORDENOISE 1 +#define DIRPYRDENOISE 3 #define CROP 16384 #define EXIF 32768 #define IPTC 32768 diff --git a/rtgui/dirpyrdenoise.cc b/rtgui/dirpyrdenoise.cc index 8f02fb8f4..3d95134f8 100644 --- a/rtgui/dirpyrdenoise.cc +++ b/rtgui/dirpyrdenoise.cc @@ -72,8 +72,8 @@ void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) { void DirPyrDenoise::write (ProcParams* pp, ParamsEdited* pedited) { pp->dirpyrDenoise.luma = luma->getValue (); - pp->dirpyrDenoise.chroma = (int)chroma->getValue (); - pp->dirpyrDenoise.enabled = enabled->get_active(); + pp->dirpyrDenoise.chroma = chroma->getValue (); + pp->dirpyrDenoise.enabled = enabled->get_active(); if (pedited) { pedited->dirpyrDenoise.luma = luma->getEditedState (); @@ -88,7 +88,7 @@ void DirPyrDenoise::setDefaults (const ProcParams* defParams, const ParamsEdited chroma->setDefault (defParams->dirpyrDenoise.chroma); if (pedited) { - luma->setDefaultEditedState (pedited->dirpyrDenoise.luma ? Edited : UnEdited); + luma->setDefaultEditedState (pedited->dirpyrDenoise.luma ? Edited : UnEdited); chroma->setDefaultEditedState (pedited->dirpyrDenoise.chroma ? Edited : UnEdited); } else { @@ -102,9 +102,9 @@ void DirPyrDenoise::adjusterChanged (Adjuster* a, double newval) { if (listener && enabled->get_active()) { if (a==luma) - listener->panelChanged (EvLDNRadius, Glib::ustring::format (std::setw(2), std::fixed, std::setprecision(1), a->getValue())); + listener->panelChanged (EvDPDNLuma, Glib::ustring::format (std::setw(2), std::fixed, std::setprecision(1), a->getValue())); else if (a==chroma) - listener->panelChanged (EvLDNEdgeTolerance, Glib::ustring::format ((int)a->getValue())); + listener->panelChanged (EvDPDNChroma, Glib::ustring::format ((int)a->getValue())); } } @@ -125,9 +125,9 @@ void DirPyrDenoise::enabledChanged () { if (listener) { if (enabled->get_active ()) - listener->panelChanged (EvLDNEnabled, M("GENERAL_ENABLED")); + listener->panelChanged (EvDPDNEnabled, M("GENERAL_ENABLED")); else - listener->panelChanged (EvLDNEnabled, M("GENERAL_DISABLED")); + listener->panelChanged (EvDPDNEnabled, M("GENERAL_DISABLED")); } } diff --git a/rtgui/impulsedenoise.cc b/rtgui/impulsedenoise.cc index 803e48614..40c6bcc4f 100644 --- a/rtgui/impulsedenoise.cc +++ b/rtgui/impulsedenoise.cc @@ -107,9 +107,9 @@ void ImpulseDenoise::enabledChanged () { if (listener) { if (enabled->get_active ()) - listener->panelChanged (EvCDNEnabled, M("GENERAL_ENABLED")); + listener->panelChanged (EvIDNEnabled, M("GENERAL_ENABLED")); else - listener->panelChanged (EvCDNEnabled, M("GENERAL_DISABLED")); + listener->panelChanged (EvIDNEnabled, M("GENERAL_DISABLED")); } } diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 63af45fd9..4c104dd85 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -38,6 +38,7 @@ PartialPasteDlg::PartialPasteDlg () { // options in luminance: sharpen = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SHARPENING"))); + impden = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_IMPULSEDENOISE"))); lumaden = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_LUMADENOISE"))); lumacurve = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_LUMACURVE"))); sh = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SHADOWSHIGHLIGHTS"))); @@ -47,6 +48,7 @@ PartialPasteDlg::PartialPasteDlg () { colorshift = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_COLORSHIFT"))); colorboost = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_COLORBOOST"))); colorden = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_COLORDENOISE"))); + dirpyrden = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_DIRPYRDENOISE"))); // options in lens: distortion = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_DISTORTION"))); @@ -81,6 +83,7 @@ PartialPasteDlg::PartialPasteDlg () { vboxes[1]->pack_start (*luminance, Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*hseps[1], Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*sharpen, Gtk::PACK_SHRINK, 2); + vboxes[1]->pack_start (*impden, Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*lumaden, Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*lumacurve, Gtk::PACK_SHRINK, 2); vboxes[1]->pack_start (*sh, Gtk::PACK_SHRINK, 2); @@ -91,6 +94,7 @@ PartialPasteDlg::PartialPasteDlg () { vboxes[2]->pack_start (*colorshift, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*colorboost, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*colorden, Gtk::PACK_SHRINK, 2); + vboxes[2]->pack_start (*dirpyrden, Gtk::PACK_SHRINK, 2); vboxes[3]->pack_start (*lens, Gtk::PACK_SHRINK, 2); @@ -142,6 +146,7 @@ PartialPasteDlg::PartialPasteDlg () { hlrecConn = hlrec->signal_toggled().connect (sigc::bind (sigc::mem_fun(*basic, &Gtk::CheckButton::set_inconsistent), true)); sharpenConn = sharpen->signal_toggled().connect (sigc::bind (sigc::mem_fun(*luminance, &Gtk::CheckButton::set_inconsistent), true)); + impdenConn = impden->signal_toggled().connect (sigc::bind (sigc::mem_fun(*luminance, &Gtk::CheckButton::set_inconsistent), true)); lumadenConn = lumaden->signal_toggled().connect (sigc::bind (sigc::mem_fun(*luminance, &Gtk::CheckButton::set_inconsistent), true)); lumacurveConn = lumacurve->signal_toggled().connect (sigc::bind (sigc::mem_fun(*luminance, &Gtk::CheckButton::set_inconsistent), true)); shConn = sh->signal_toggled().connect (sigc::bind (sigc::mem_fun(*luminance, &Gtk::CheckButton::set_inconsistent), true)); @@ -150,6 +155,7 @@ PartialPasteDlg::PartialPasteDlg () { colorshiftConn = colorshift->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); colorboostConn = colorboost->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); colordenConn = colorden->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); + dirpyrdenConn = dirpyrden->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); distortionConn = distortion->signal_toggled().connect (sigc::bind (sigc::mem_fun(*lens, &Gtk::CheckButton::set_inconsistent), true)); cacorrConn = cacorr->signal_toggled().connect (sigc::bind (sigc::mem_fun(*lens, &Gtk::CheckButton::set_inconsistent), true)); @@ -191,6 +197,7 @@ void PartialPasteDlg::basicToggled () { void PartialPasteDlg::luminanceToggled () { sharpenConn.block (true); + impdenConn.block (true); lumadenConn.block (true); lumacurveConn.block (true); shConn.block (true); @@ -198,11 +205,13 @@ void PartialPasteDlg::luminanceToggled () { luminance->set_inconsistent (false); sharpen->set_active (luminance->get_active ()); + impden->set_active (luminance->get_active ()); lumaden->set_active (luminance->get_active ()); lumacurve->set_active (luminance->get_active ()); sh->set_active (luminance->get_active ()); sharpenConn.block (false); + impdenConn.block (false); lumadenConn.block (false); lumacurveConn.block (false); shConn.block (false); @@ -214,6 +223,7 @@ void PartialPasteDlg::colorToggled () { colorshiftConn.block (true); colorboostConn.block (true); colordenConn.block (true); + dirpyrdenConn.block (true); color->set_inconsistent (false); @@ -221,11 +231,13 @@ void PartialPasteDlg::colorToggled () { colorshift->set_active (color->get_active ()); colorboost->set_active (color->get_active ()); colorden->set_active (color->get_active ()); + dirpyrden->set_active (color->get_active ()); colormixerConn.block (false); colorshiftConn.block (false); colorboostConn.block (false); colordenConn.block (false); + dirpyrdenConn.block (false); } void PartialPasteDlg::lensToggled () { @@ -290,6 +302,7 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dst, const r if (hlrec->get_active ()) dst->hlrecovery = src->hlrecovery; if (sharpen->get_active ()) dst->sharpening = src->sharpening; + if (impden->get_active ()) dst->impulseDenoise = src->impulseDenoise; if (lumaden->get_active ()) dst->lumaDenoise = src->lumaDenoise; if (lumacurve->get_active ()) dst->lumaCurve = src->lumaCurve; if (sh->get_active ()) dst->sh = src->sh; @@ -298,6 +311,7 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dst, const r if (colorshift->get_active ()) dst->colorShift = src->colorShift; if (colorboost->get_active ()) dst->colorBoost = src->colorBoost; if (colorden->get_active ()) dst->colorDenoise = src->colorDenoise; + if (dirpyrden->get_active ()) dst->dirpyrDenoise = src->dirpyrDenoise; if (distortion->get_active ()) dst->distortion = src->distortion; if (cacorr->get_active ()) dst->cacorrection = src->cacorrection; diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index 03ff1b90c..bede56698 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -40,6 +40,7 @@ class PartialPasteDlg : public Gtk::Dialog { // options in luminance: Gtk::CheckButton* sharpen; + Gtk::CheckButton* impden; Gtk::CheckButton* lumaden; Gtk::CheckButton* lumacurve; Gtk::CheckButton* sh; @@ -49,6 +50,8 @@ class PartialPasteDlg : public Gtk::Dialog { Gtk::CheckButton* colorshift; Gtk::CheckButton* colorboost; Gtk::CheckButton* colorden; + Gtk::CheckButton* dirpyrden; + // options in lens: Gtk::CheckButton* distortion; @@ -68,8 +71,8 @@ class PartialPasteDlg : public Gtk::Dialog { sigc::connection basicConn, luminanceConn, colorConn, lensConn, compositionConn, metaicmConn; sigc::connection wbConn, exposureConn, hlrecConn; - sigc::connection sharpenConn, lumadenConn, lumacurveConn, shConn; - sigc::connection colormixerConn, colorshiftConn, colorboostConn, colordenConn; + sigc::connection sharpenConn, impdenConn, lumadenConn, lumacurveConn, shConn; + sigc::connection colormixerConn, colorshiftConn, colorboostConn, colordenConn, dirpyrdenConn; sigc::connection distortionConn, cacorrConn, vignettingConn; sigc::connection coarserotConn, finerotConn, cropConn, resizeConn; sigc::connection exifchConn, iptcConn, icmConn; diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 51a0024a2..99e69a870 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -66,15 +66,15 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) { addPanel (colorPanel, colorboost, M("TP_COLORBOOST_LABEL")); toolPanels.push_back (colorboost); addPanel (colorPanel, colorshift, M("TP_COLORSHIFT_LABEL")); toolPanels.push_back (colorshift); addPanel (exposurePanel, lcurve, M("TP_LUMACURVE_LABEL")); toolPanels.push_back (lcurve); - addPanel (detailsPanel, impulsedenoise, M("TP_IMPULSEDENOISE_LABEL")); toolPanels.push_back (impulsedenoise); + addPanel (detailsPanel, impulsedenoise, M("TP_IMPULSEDENOISE_LABEL")); toolPanels.push_back (impulsedenoise); addPanel (detailsPanel, lumadenoise, M("TP_LUMADENOISE_LABEL")); toolPanels.push_back (lumadenoise); addPanel (detailsPanel, colordenoise, M("TP_COLORDENOISE_LABEL")); toolPanels.push_back (colordenoise); - addPanel (detailsPanel, dirpyrdenoise, M("TP_DIRPYRDENOISE_LABEL")); toolPanels.push_back (dirpyrdenoise); + addPanel (detailsPanel, dirpyrdenoise, M("TP_DIRPYRDENOISE_LABEL")); toolPanels.push_back (dirpyrdenoise); addPanel (detailsPanel, equalizer, M("TP_EQUALIZER_LABEL")); toolPanels.push_back (equalizer); addPanel (transformPanel, crop, M("TP_CROP_LABEL")); toolPanels.push_back (crop); addPanel (transformPanel, resize, M("TP_RESIZE_LABEL")); toolPanels.push_back (resize); addPanel (transformPanel, lensgeom, M("TP_LENSGEOM_LABEL")); toolPanels.push_back (lensgeom); - addPanel (lensgeom->getPackBox(), rotate, M("TP_ROTATE_LABEL")); toolPanels.push_back (rotate); + addPanel (lensgeom->getPackBox(), rotate, M("TP_ROTATE_LABEL")); toolPanels.push_back (rotate); addPanel (lensgeom->getPackBox(), perspective, M("TP_PERSPECTIVE_LABEL")); toolPanels.push_back (perspective); addPanel (lensgeom->getPackBox(), distortion, M("TP_DISTORTION_LABEL")); toolPanels.push_back (distortion); addPanel (lensgeom->getPackBox(), cacorrection, M("TP_CACORRECTION_LABEL")); toolPanels.push_back (cacorrection);