From f9e7072194a765b36064c0655647f6696fb13f90 Mon Sep 17 00:00:00 2001 From: torger Date: Wed, 25 Jun 2014 00:22:58 +0200 Subject: [PATCH] Rerun preprocess when changing to or from mono demosaicer --- rtengine/procevents.h | 2 +- rtengine/refreshmap.cc | 2 +- rtgui/rawprocess.cc | 11 +++++++++-- rtgui/rawprocess.h | 1 + 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/rtengine/procevents.h b/rtengine/procevents.h index 0c2050576..a67680382 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -188,7 +188,7 @@ enum ProcEvent { EvRGBgCurve=163, EvRGBbCurve=164, EvNeutralExp=165, -// EvLBWtoning=166, -- can be reused -- + EvDemosaicMethodPreProc=166, EvLCCCurve=167, EvLCHCurve=168, EvVibranceSkinTonesCurve=169, diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index 90e37ceab..73f0007da 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -186,7 +186,7 @@ RGBCURVE, // EvRGBrCurve RGBCURVE, // EvRGBgCurve RGBCURVE, // EvRGBbCurve RGBCURVE, // EvNeutralExp -NONE, // --unused--, +DEMOSAIC|M_PREPROC, // EvDemosaicMethodPreProc LUMINANCECURVE, // EvLCCurve LUMINANCECURVE, // EvLCHCurve RGBCURVE, // EvVibranceSkinTonesCurve diff --git a/rtgui/rawprocess.cc b/rtgui/rawprocess.cc index 4a3c0dca1..0522f8e24 100644 --- a/rtgui/rawprocess.cc +++ b/rtgui/rawprocess.cc @@ -91,6 +91,7 @@ void RawProcess::read(const rtengine::procparams::ProcParams* pp, const ParamsEd for( size_t i=0; i< procparams::RAWParams::numMethods;i++) if( pp->raw.dmethod == procparams::RAWParams::methodstring[i]){ dmethod->set_active(i); + oldSelection = i; break; } @@ -221,11 +222,17 @@ void RawProcess::methodChanged () } Glib::ustring methodName=""; - if( curSelection>=0 && curSelection < procparams::RAWParams::numMethods) + bool ppreq = false; + if( curSelection>=0 && curSelection < procparams::RAWParams::numMethods) { methodName = procparams::RAWParams::methodstring[curSelection]; + if (curSelection == procparams::RAWParams::mono || oldSelection == procparams::RAWParams::mono) { + ppreq = true; + } + } + oldSelection = curSelection; if (listener) - listener->panelChanged (EvDemosaicMethod, methodName); + listener->panelChanged (ppreq ? EvDemosaicMethodPreProc : EvDemosaicMethod, methodName); } void RawProcess::dcbEnhanceChanged () diff --git a/rtgui/rawprocess.h b/rtgui/rawprocess.h index 5fbee271d..f88c7bdc0 100644 --- a/rtgui/rawprocess.h +++ b/rtgui/rawprocess.h @@ -41,6 +41,7 @@ class RawProcess : public ToolParamBlock, public AdjusterListener, public Foldab Adjuster* lmmseIterations; bool lastDCBen; + int oldSelection; //bool lastALLen; sigc::connection methodconn,dcbEnhconn; //,allEnhconn; public: