diff --git a/rtdata/languages/default b/rtdata/languages/default index 7d7e7de30..d2cb3f939 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1054,6 +1054,7 @@ NAVIGATOR_XY_NA;x: --, y: -- OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. +PARTIALPASTE_LOCALLABGROUP;Local L*a*b Settings PARTIALPASTE_ADVANCEDGROUP;Advanced Settings PARTIALPASTE_BASICGROUP;Basic Settings PARTIALPASTE_CACORRECTION;Chromatic aberration correction diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 6b192dba9..95c380df7 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -45,6 +45,8 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren raw ->set_name("PartialPasteHeader"); advanced = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_ADVANCEDGROUP"))); advanced ->set_name("PartialPasteHeader"); + locallab = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_LOCALLABGROUP"))); + locallab ->set_name("PartialPasteHeader"); // Basic Settings: wb = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_WHITEBALANCE"))); @@ -135,10 +137,10 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren raw_caredblue = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWCACORR_CAREDBLUE"))); raw_ca_avoid_colourshift = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT"))); - Gtk::VBox* vboxes[8]; - Gtk::HSeparator* hseps[8]; + Gtk::VBox* vboxes[9]; + Gtk::HSeparator* hseps[9]; - for (int i = 0; i < 8; i++) { + for (int i = 0; i < 9; i++) { vboxes[i] = Gtk::manage (new Gtk::VBox ()); vboxes[i]->set_name("PartialPasteGroupContainer"); hseps[i] = Gtk::manage (new Gtk::HSeparator ()); @@ -208,47 +210,51 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren vboxes[5]->pack_start (*colorappearance, Gtk::PACK_SHRINK, 2); vboxes[5]->pack_start (*wavelet, Gtk::PACK_SHRINK, 2); - //META - vboxes[6]->pack_start (*meta, Gtk::PACK_SHRINK, 2); + //LOCALLAB + vboxes[6]->pack_start(*locallab, Gtk::PACK_SHRINK, 2); vboxes[6]->pack_start (*hseps[6], Gtk::PACK_SHRINK, 2); - vboxes[6]->pack_start(*metadata, Gtk::PACK_SHRINK, 2); - vboxes[6]->pack_start (*exifch, Gtk::PACK_SHRINK, 2); - vboxes[6]->pack_start (*iptc, Gtk::PACK_SHRINK, 2); + + //META + vboxes[7]->pack_start (*meta, Gtk::PACK_SHRINK, 2); + vboxes[7]->pack_start (*hseps[7], Gtk::PACK_SHRINK, 2); + vboxes[7]->pack_start(*metadata, Gtk::PACK_SHRINK, 2); + vboxes[7]->pack_start (*exifch, Gtk::PACK_SHRINK, 2); + vboxes[7]->pack_start (*iptc, Gtk::PACK_SHRINK, 2); //RAW - vboxes[7]->pack_start (*raw, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*hseps[7], Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_method, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_border, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_imagenum, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_pixelshift, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_ccSteps, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_dcb_iterations, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_dcb_enhance, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_lmmse_iterations, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); - vboxes[7]->pack_start (*raw_linenoise, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_greenthresh, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_hotpix_filt, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_deadpix_filt, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_pdaf_lines_filter, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); - vboxes[7]->pack_start (*raw_expos, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_preser, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_black, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); - vboxes[7]->pack_start (*df_file, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*df_AutoSelect, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); - vboxes[7]->pack_start (*ff_file, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*ff_AutoSelect, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*ff_BlurType, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*ff_BlurRadius, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*ff_ClipControl, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); - vboxes[7]->pack_start (*raw_ca_autocorrect, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_caredblue, Gtk::PACK_SHRINK, 2); - vboxes[7]->pack_start (*raw_ca_avoid_colourshift, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*hseps[8], Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_method, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_border, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_imagenum, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_pixelshift, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_ccSteps, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_dcb_iterations, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_dcb_enhance, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_lmmse_iterations, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); + vboxes[8]->pack_start (*raw_linenoise, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_greenthresh, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_hotpix_filt, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_deadpix_filt, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_pdaf_lines_filter, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); + vboxes[8]->pack_start (*raw_expos, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_preser, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_black, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); + vboxes[8]->pack_start (*df_file, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*df_AutoSelect, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); + vboxes[8]->pack_start (*ff_file, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*ff_AutoSelect, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*ff_BlurType, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*ff_BlurRadius, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*ff_ClipControl, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); + vboxes[8]->pack_start (*raw_ca_autocorrect, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_caredblue, Gtk::PACK_SHRINK, 2); + vboxes[8]->pack_start (*raw_ca_avoid_colourshift, Gtk::PACK_SHRINK, 2); Gtk::VBox* vbCol1 = Gtk::manage (new Gtk::VBox ()); Gtk::VBox* vbCol2 = Gtk::manage (new Gtk::VBox ()); @@ -258,11 +264,11 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren vbCol1->pack_start (*vboxes[i], Gtk::PACK_SHRINK, 2); } - for (int i = 3; i < 7; i++) { + for (int i = 3; i < 8; i++) { vbCol2->pack_start (*vboxes[i], Gtk::PACK_SHRINK, 2); } - for (int i = 7; i < 8; i++) { + for (int i = 8; i < 9; i++) { vbCol3->pack_start (*vboxes[i], Gtk::PACK_SHRINK, 2); } @@ -307,6 +313,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren metaConn = meta->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::metaToggled)); rawConn = raw->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::rawToggled)); advancedConn = advanced->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::advancedToggled)); + locallabConn = locallab->signal_toggled().connect (sigc::mem_fun(*this, &PartialPasteDlg::locallabToggled)); // Basic Settings wbConn = wb->signal_toggled().connect (sigc::bind (sigc::mem_fun(*basic, &Gtk::CheckButton::set_inconsistent), true)); @@ -639,6 +646,11 @@ void PartialPasteDlg::metaToggled () iptc->set_active (meta->get_active ()); } +void PartialPasteDlg::locallabToggled() +{ + locallab->set_inconsistent (false); +} + /* * Copies the selected items from the source ProcParams+ParamsEdited(optional) @@ -963,6 +975,10 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.raw.ff_AutoClipControl = falsePE.raw.ff_AutoClipControl; } + if (!locallab->get_active ()) { + filterPE.locallab = falsePE.locallab; + } + if (dstPE) { *dstPE = filterPE; } diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index 5195d0756..8425b3c87 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -40,6 +40,7 @@ public: Gtk::CheckButton* meta; Gtk::CheckButton* raw; Gtk::CheckButton* advanced; + Gtk::CheckButton* locallab; // options in basic: Gtk::CheckButton* wb; @@ -128,7 +129,7 @@ public: Gtk::CheckButton* ff_BlurType; Gtk::CheckButton* ff_ClipControl; - sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaConn, rawConn, advancedConn; + sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaConn, rawConn, advancedConn, locallabConn; sigc::connection wbConn, exposureConn, localcontrastConn, shConn, pcvignetteConn, gradientConn, labcurveConn, colorappearanceConn; sigc::connection sharpenConn, gradsharpenConn, microcontrastConn, impdenConn, dirpyrdenConn, defringeConn, epdConn, fattalConn, dirpyreqConn, waveletConn, retinexConn; @@ -153,6 +154,7 @@ public: void metaToggled (); void rawToggled (); void advancedToggled (); + void locallabToggled (); }; #endif