From 757a0a032af6f7e73ff333fbd84b03a335655d7e Mon Sep 17 00:00:00 2001 From: Daniel Gao Date: Thu, 7 Nov 2024 18:31:54 -0500 Subject: [PATCH] Implement partial profile for framing tool * Update partial profile load/save GUI to include framing tool * Allows for loading/saving framing tool parameters from the clipboard --- rtdata/languages/default | 1 + rtgui/partialpastedlg.cc | 9 +++++++++ rtgui/partialpastedlg.h | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index b68b25b8a..b7366c5e6 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1864,6 +1864,7 @@ PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control PARTIALPASTE_FLATFIELDFILE;Flat-field file PARTIALPASTE_FLATFIELDFROMMETADATA;Flat-field from Metadata +PARTIALPASTE_FRAMING;Framing PARTIALPASTE_GRADIENT;Graduated filter PARTIALPASTE_HSVEQUALIZER;HSV equalizer PARTIALPASTE_ICMSETTINGS;Color management settings diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 3f03d81f6..d98c46489 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -266,6 +266,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren 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"))); + framing = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_FRAMING"))); perspective = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_PERSPECTIVE"))); commonTrans = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_COMMONTRANSFORMPARAMS"))); @@ -384,6 +385,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren 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 (*framing, Gtk::PACK_SHRINK, 2); vboxes[4]->pack_start (*perspective, Gtk::PACK_SHRINK, 2); vboxes[4]->pack_start (*commonTrans, Gtk::PACK_SHRINK, 2); @@ -547,6 +549,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren 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)); + framingConn = framing->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)); @@ -823,6 +826,7 @@ void PartialPasteDlg::compositionToggled () ConnectionBlocker cropBlocker(cropConn); ConnectionBlocker resizeBlocker(resizeConn); ConnectionBlocker prsharpeningBlocker(prsharpeningConn); + ConnectionBlocker framingBlocker(framingConn); ConnectionBlocker perspectiveBlocker(perspectiveConn); ConnectionBlocker commonTransBlocker(commonTransConn); @@ -833,6 +837,7 @@ void PartialPasteDlg::compositionToggled () crop->set_active (composition->get_active ()); resize->set_active (composition->get_active ()); prsharpening->set_active (composition->get_active ()); + framing->set_active (composition->get_active ()); perspective->set_active (composition->get_active ()); commonTrans->set_active (composition->get_active ()); } @@ -1043,6 +1048,10 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.prsharpening = falsePE.prsharpening; } + if (!framing->get_active ()) { + filterPE.framing = falsePE.framing; + } + if (!perspective->get_active ()) { filterPE.perspective = falsePE.perspective; } diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index 1dee55a6e..10df7ed57 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -180,6 +180,7 @@ public: Gtk::CheckButton* crop; Gtk::CheckButton* resize; Gtk::CheckButton* prsharpening; + Gtk::CheckButton* framing; Gtk::CheckButton* perspective; Gtk::CheckButton* commonTrans; @@ -231,7 +232,7 @@ public: 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 distortionConn, cacorrConn, vignettingConn, lcpConn; - sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, prsharpeningConn, perspectiveConn, commonTransConn; + sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, prsharpeningConn, framingConn, perspectiveConn, commonTransConn; sigc::connection metadataConn, exifchConn, iptcConn, icmConn; sigc::connection df_fileConn, df_AutoSelectConn, ff_fileConn, ff_AutoSelectConn, ff_FromMetaDataConn, ff_BlurRadiusConn, ff_BlurTypeConn, ff_ClipControlConn; sigc::connection raw_caredblueConn, raw_ca_autocorrectConn, raw_ca_avoid_colourshiftconn, raw_hotpix_filtConn, raw_deadpix_filtConn, raw_pdaf_lines_filterConn, raw_linenoiseConn, raw_greenthreshConn, raw_ccStepsConn, raw_methodConn, raw_borderConn, raw_imagenumConn, raw_dcb_iterationsConn, raw_lmmse_iterationsConn, raw_pixelshiftConn, raw_dcb_enhanceConn, raw_exposConn, raw_blackConn;