From f0affbfdcd72a073328ff8c11aa9409e63ec5ea0 Mon Sep 17 00:00:00 2001 From: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com> Date: Sun, 2 Mar 2025 16:26:12 -0800 Subject: [PATCH] Fix partial profile parameter selection Add Gamut Compression parameters and group raw de-haze into raw black levels. --- rtdata/languages/default | 1 + rtgui/partialpastedlg.cc | 11 +++++++++++ rtgui/partialpastedlg.h | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 93d2eef94..5de0acabd 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1891,6 +1891,7 @@ PARTIALPASTE_COLORGROUP;Color Related Settings PARTIALPASTE_COLORTONING;Color toning PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill PARTIALPASTE_COMPOSITIONGROUP;Composition Settings +PARTIALPASTE_COMPRESSGAMUT;Gamut Compression PARTIALPASTE_CROP;Crop PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection PARTIALPASTE_DARKFRAMEFILE;Dark-frame file diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index e3c65aac9..0ddec7ff2 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -244,6 +244,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren wavelet = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_EQUALIZER"))); // Color-Related Settings + compressGamut = Gtk::manage(new Gtk::CheckButton(M("PARTIALPASTE_COMPRESSGAMUT"))); icm = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_ICMSETTINGS"))); vibrance = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_VIBRANCE"))); chmixer = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_CHANNELMIXER"))); @@ -358,6 +359,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren //COLOR vboxes[2]->pack_start (*color, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*hseps[2], Gtk::PACK_SHRINK, 2); + vboxes[2]->pack_start (*compressGamut, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*icm, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*vibrance, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*chmixer, Gtk::PACK_SHRINK, 2); @@ -527,6 +529,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren waveletConn = wavelet->signal_toggled().connect (sigc::bind (sigc::mem_fun(*advanced, &Gtk::CheckButton::set_inconsistent), true)); // Color-related Settings: + compressGamutConn = compressGamut->signal_toggled().connect(sigc::bind(sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); icmConn = icm->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); vibranceConn = vibrance->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); chmixerConn = chmixer->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); @@ -777,6 +780,7 @@ void PartialPasteDlg::advancedToggled () void PartialPasteDlg::colorToggled () { + ConnectionBlocker compressGamutBlocker(compressGamutConn); ConnectionBlocker icmBlocker(icmConn); ConnectionBlocker vibranceBlocker(vibranceConn); ConnectionBlocker chmixerBlocker(chmixerConn); @@ -790,6 +794,7 @@ void PartialPasteDlg::colorToggled () color->set_inconsistent (false); + compressGamut->set_active(color->get_active()); icm->set_active (color->get_active ()); vibrance->set_active (color->get_active ()); chmixer->set_active (color->get_active ()); @@ -972,6 +977,10 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.wavelet = falsePE.wavelet; } + if (!compressGamut->get_active()) { + filterPE.cg = falsePE.cg; + } + if (!icm->get_active ()) { filterPE.icm = falsePE.icm; } @@ -1114,9 +1123,11 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.raw.bayersensor.exBlack2 = falsePE.raw.bayersensor.exBlack2; filterPE.raw.bayersensor.exBlack3 = falsePE.raw.bayersensor.exBlack3; filterPE.raw.bayersensor.exTwoGreen = falsePE.raw.bayersensor.exTwoGreen; + filterPE.raw.bayersensor.Dehablack = falsePE.raw.bayersensor.Dehablack; filterPE.raw.xtranssensor.exBlackRed = falsePE.raw.xtranssensor.exBlackRed; filterPE.raw.xtranssensor.exBlackGreen = falsePE.raw.xtranssensor.exBlackGreen; filterPE.raw.xtranssensor.exBlackBlue = falsePE.raw.xtranssensor.exBlackBlue; + filterPE.raw.xtranssensor.Dehablackx = falsePE.raw.xtranssensor.Dehablackx; } if (!raw_pixelshift->get_active ()) { diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index 10df7ed57..88cb34128 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -158,6 +158,7 @@ public: Gtk::CheckButton* wavelet; // options in color: + Gtk::CheckButton* compressGamut; Gtk::CheckButton* icm; Gtk::CheckButton* vibrance; Gtk::CheckButton* chmixer; @@ -230,7 +231,7 @@ public: sigc::connection wbConn, exposureConn, localcontrastConn, shConn, pcvignetteConn, gradientConn, labcurveConn, colorappearanceConn; sigc::connection toneEqualizerConn; 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 compressGamutConn, vibranceConn, chmixerConn, hsveqConn, rgbcurvesConn, chmixerbwConn, colortoningConn, filmSimulationConn, softlightConn; sigc::connection distortionConn, cacorrConn, vignettingConn, lcpConn; sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, prsharpeningConn, framingConn, perspectiveConn, commonTransConn; sigc::connection metadataConn, exifchConn, iptcConn, icmConn;