From fd7dcf4b847adf15790024aefe7bae16f3b0d34e Mon Sep 17 00:00:00 2001 From: Beep6581 Date: Sat, 2 Jan 2016 02:14:33 +0100 Subject: [PATCH] Implement post-resize sharpening in the partial paste dialog, fixes #3051 --- rtdata/languages/default | 1 + rtgui/partialpastedlg.cc | 10 ++++++++++ rtgui/partialpastedlg.h | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 2df0b7fb9..494a3a186 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -833,6 +833,7 @@ PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +PARTIALPASTE_PRSHARPENING;Post-resize sharpening PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction PARTIALPASTE_RAWCACORR_CABLUE;CA blue PARTIALPASTE_RAWCACORR_CARED;CA red diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index ec2320138..bbfdd0701 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -92,6 +92,7 @@ PartialPasteDlg::PartialPasteDlg (Glib::ustring title) finerot = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_ROTATION"))); crop = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_CROP"))); resize = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RESIZE"))); + prsharpening = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_PRSHARPENING"))); perspective = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_PERSPECTIVE"))); commonTrans = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_COMMONTRANSFORMPARAMS"))); @@ -187,6 +188,7 @@ PartialPasteDlg::PartialPasteDlg (Glib::ustring title) vboxes[4]->pack_start (*finerot, Gtk::PACK_SHRINK, 2); vboxes[4]->pack_start (*crop, Gtk::PACK_SHRINK, 2); vboxes[4]->pack_start (*resize, Gtk::PACK_SHRINK, 2); + vboxes[4]->pack_start (*prsharpening, Gtk::PACK_SHRINK, 2); vboxes[4]->pack_start (*perspective, Gtk::PACK_SHRINK, 2); vboxes[4]->pack_start (*commonTrans, Gtk::PACK_SHRINK, 2); @@ -331,6 +333,7 @@ PartialPasteDlg::PartialPasteDlg (Glib::ustring title) finerotConn = finerot->signal_toggled().connect (sigc::bind (sigc::mem_fun(*composition, &Gtk::CheckButton::set_inconsistent), true)); cropConn = crop->signal_toggled().connect (sigc::bind (sigc::mem_fun(*composition, &Gtk::CheckButton::set_inconsistent), true)); resizeConn = resize->signal_toggled().connect (sigc::bind (sigc::mem_fun(*composition, &Gtk::CheckButton::set_inconsistent), true)); + prsharpeningConn = prsharpening->signal_toggled().connect (sigc::bind (sigc::mem_fun(*composition, &Gtk::CheckButton::set_inconsistent), true)); perspectiveConn = perspective->signal_toggled().connect (sigc::bind (sigc::mem_fun(*composition, &Gtk::CheckButton::set_inconsistent), true)); commonTransConn = commonTrans->signal_toggled().connect (sigc::bind (sigc::mem_fun(*composition, &Gtk::CheckButton::set_inconsistent), true)); @@ -628,6 +631,7 @@ void PartialPasteDlg::compositionToggled () finerotConn.block (true); cropConn.block (true); resizeConn.block (true); + prsharpeningConn.block (true); perspectiveConn.block (true); commonTransConn.block (true); @@ -637,6 +641,7 @@ void PartialPasteDlg::compositionToggled () finerot->set_active (composition->get_active ()); crop->set_active (composition->get_active ()); resize->set_active (composition->get_active ()); + prsharpening->set_active (composition->get_active ()); perspective->set_active (composition->get_active ()); commonTrans->set_active (composition->get_active ()); @@ -644,6 +649,7 @@ void PartialPasteDlg::compositionToggled () finerotConn.block (false); cropConn.block (false); resizeConn.block (false); + prsharpeningConn.block (false); perspectiveConn.block (false); commonTransConn.block (false); } @@ -814,6 +820,10 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.resize = falsePE.resize; } + if (!prsharpening->get_active ()) { + filterPE.prsharpening = falsePE.prsharpening; + } + if (!perspective->get_active ()) { filterPE.perspective = falsePE.perspective; } diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index 57a235f35..86f7fd1c2 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -87,6 +87,7 @@ public: Gtk::CheckButton* finerot; Gtk::CheckButton* crop; Gtk::CheckButton* resize; + Gtk::CheckButton* prsharpening; Gtk::CheckButton* perspective; Gtk::CheckButton* commonTrans; @@ -127,7 +128,7 @@ public: sigc::connection sharpenConn, gradsharpenConn, microcontrastConn, impdenConn, dirpyrdenConn, defringeConn, epdConn, dirpyreqConn, waveletConn, retinexConn; sigc::connection vibranceConn, chmixerConn, hsveqConn, rgbcurvesConn, chmixerbwConn, colortoningConn, filmSimulationConn; sigc::connection distortionConn, cacorrConn, vignettingConn, lcpConn; - sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, perspectiveConn, commonTransConn; + sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, prsharpeningConn, perspectiveConn, commonTransConn; sigc::connection exifchConn, iptcConn, icmConn, gamcsconn; sigc::connection df_fileConn, df_AutoSelectConn, ff_fileConn, ff_AutoSelectConn, ff_BlurRadiusConn, ff_BlurTypeConn, ff_ClipControlConn; sigc::connection raw_caredConn, raw_cablueConn, raw_ca_autocorrectConn, raw_hotpix_filtConn, raw_deadpix_filtConn, raw_linenoiseConn, raw_greenthreshConn, raw_ccStepsConn, raw_methodConn, raw_dcb_iterationsConn, raw_lmmse_iterationsConn, raw_dcb_enhanceConn, raw_exposConn, raw_preserConn, raw_blackConn; //,raw_all_enhanceConn