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