From b05fa5d6a1ea6f60ba63107f6bae3b2298b064ec Mon Sep 17 00:00:00 2001 From: jdc Date: Tue, 3 Feb 2015 08:14:40 +0100 Subject: [PATCH] Wavelet levels - pp3 contrast expanders issue2594 --- rtdata/languages/default | 21 +- rtdata/profiles/BW/BW 1.pp3 | 7 +- rtdata/profiles/BW/BW 2.pp3 | 7 +- rtdata/profiles/BW/BW 3.pp3 | 7 +- rtdata/profiles/BW/BW 4.pp3 | 7 +- rtdata/profiles/Default ISO High.pp3 | 7 +- rtdata/profiles/Default ISO Medium.pp3 | 7 +- rtdata/profiles/Default.pp3 | 9 +- .../Faded/Faded Amber 1 TM Bright.pp3 | 7 +- rtdata/profiles/Faded/Faded Amber 1 TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Amber 1.pp3 | 7 +- .../profiles/Faded/Faded Blue 1 TM Bright.pp3 | 7 +- rtdata/profiles/Faded/Faded Blue 1 TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Blue 1.pp3 | 7 +- rtdata/profiles/Faded/Faded Blue Pink TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Blue Pink.pp3 | 7 +- .../Faded/Faded Chocolate 1 TM Bright.pp3 | 7 +- .../Faded/Faded Chocolate 2 TM Bright.pp3 | 7 +- rtdata/profiles/Faded/Faded Golden 1.pp3 | 7 +- rtdata/profiles/Faded/Faded Golden 2.pp3 | 7 +- .../Faded/Faded Green 1 TM Bright.pp3 | 7 +- rtdata/profiles/Faded/Faded Green 1 TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Green 1.pp3 | 7 +- rtdata/profiles/Faded/Faded Green 2.pp3 | 7 +- rtdata/profiles/Faded/Faded Green 3.pp3 | 7 +- rtdata/profiles/Faded/Faded Neutral TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Neutral.pp3 | 7 +- .../Faded/Faded Purple 1 TM Bright.pp3 | 7 +- rtdata/profiles/Faded/Faded Purple 1 TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Purple 1.pp3 | 7 +- rtdata/profiles/Faded/Faded Purple 2 TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Purple 2.pp3 | 7 +- .../Faded/Faded Teal Orange TM Bright.pp3 | 7 +- .../profiles/Faded/Faded Teal Orange TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Teal Orange.pp3 | 7 +- .../profiles/Faded/Faded Warm 1 TM Bright.pp3 | 7 +- rtdata/profiles/Faded/Faded Warm 1 TM.pp3 | 7 +- rtdata/profiles/Faded/Faded Warm 1.pp3 | 7 +- rtdata/profiles/Faded/Faded Warm 2.pp3 | 7 +- rtdata/profiles/Faded/Faded Warm 3.pp3 | 7 +- rtdata/profiles/Generic/Deep Shadows.pp3 | 7 +- rtdata/profiles/Generic/Equilibrated.pp3 | 7 +- rtdata/profiles/Generic/High-Key.pp3 | 7 +- rtdata/profiles/Generic/Natural 1.pp3 | 7 +- rtdata/profiles/Generic/Natural 2.pp3 | 7 +- rtdata/profiles/Generic/Punchy 1.pp3 | 7 +- rtdata/profiles/Generic/Punchy 2.pp3 | 7 +- rtdata/profiles/Non-raw/Brighten.pp3 | 2 +- rtdata/profiles/Pop/Pop 1.pp3 | 7 +- rtdata/profiles/Pop/Pop 2 L.pp3 | 7 +- rtdata/profiles/Pop/Pop 3 Skin.pp3 | 7 +- rtdata/profiles/Pop/Pop 4 BW.pp3 | 7 +- rtdata/profiles/Portrait/Portrait Lejto.pp3 | 7 +- rtdata/profiles/Portrait/Portrait Smooth.pp3 | 7 +- .../Skintones/Skintones - Natural TM.pp3 | 7 +- .../Skintones/Skintones - Natural.pp3 | 7 +- .../Skintones/Skintones - Pale TM Bright.pp3 | 7 +- .../Skintones/Skintones - Pale TM.pp3 | 7 +- .../profiles/Skintones/Skintones - Pale.pp3 | 7 +- .../Skintones/Skintones - Soft Texture.pp3 | 7 +- .../Skintones/Skintones - Strong Texture.pp3 | 7 +- .../Skintones/Skintones - Studio TM.pp3 | 7 +- .../profiles/Skintones/Skintones - Studio.pp3 | 7 +- .../Skintones/Skintones - StudioBase 1 TM.pp3 | 7 +- .../Skintones/Skintones - StudioBase 1.pp3 | 7 +- rtengine/ipwavelet.cc | 57 ++- rtengine/procparams.cc | 9 +- rtengine/procparams.h | 1 - rtgui/paramsedited.cc | 3 - rtgui/paramsedited.h | 1 - rtgui/ppversion.h | 6 +- rtgui/preferences.cc | 4 +- rtgui/wavelet.cc | 437 +++++++++++------- rtgui/wavelet.h | 47 +- 74 files changed, 698 insertions(+), 333 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index e62a16f22..84397bcb7 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -527,11 +527,11 @@ HISTORY_MSG_307;Wavelet Ch level HISTORY_MSG_308;Wavelet direction HISTORY_MSG_309;Wavelet tiles HISTORY_MSG_310;Wavelet Hue-tones sky -HISTORY_MSG_311;Wavelet threshold +HISTORY_MSG_311;Wavelet Max Levels HISTORY_MSG_312;Wavelet Shadow Threshold HISTORY_MSG_313;Wavelet Pastel Saturated HISTORY_MSG_314;Wavelet artifacts blue sky -HISTORY_MSG_315;Wavelet Contrast uniformity +HISTORY_MSG_315;Wavelet Contrast Residual HISTORY_MSG_316;Wavelet Skin tones HISTORY_MSG_317;Wavelet Skin hue HISTORY_MSG_318;Wavelet highlight levels @@ -549,9 +549,9 @@ HISTORY_MSG_329;Wavelet Opacity RG HISTORY_MSG_330;Wavelet Opacity BY HISTORY_MSG_331;Wavelet Extra HISTORY_MSG_332;Wavelet Tiles Method -HISTORY_MSG_333;Wavelet Shadow contrast +HISTORY_MSG_333;Wavelet Shadow Residual HISTORY_MSG_334;Wavelet Chroma -HISTORY_MSG_335;Wavelet Highlight contrast +HISTORY_MSG_335;Wavelet Highlight Residual HISTORY_MSG_336;Wavelet Highlight threshold HISTORY_MSG_337;Wavelet Hue range HISTORY_NEWSNAPSHOT;Add @@ -1274,12 +1274,13 @@ TP_DIRPYRDENOISE_SHAL;Standard TP_DIRPYRDENOISE_SLI;Slider TP_DIRPYRDENOISE_SOFT;3x3 TP_WAVELET_RESID;Residual image -TP_WAVELET_RESCON;Shadows Contrast -TP_WAVELET_RESCONH;Highlights Contrast +TP_WAVELET_RESCON;Shadows +TP_WAVELET_RESCONH;Highlights TP_WAVELET_RESCHRO;Chromaticity TP_WAVELET_THR;Threshold shadows TP_WAVELET_THRH;Threshold highlights TP_WAVELET_HUESKY;Hue Range (sky) +TP_WAVELET_CONTRA;Contrast TP_WAVELET_HUESKY_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. TP_WAVELET_SKY;Hue-tones (sky) targetting/protection TP_WAVELET_SKY_TOOLTIP;Increase/reduce chrominance in/out hue range\nAvoid artifacts in blue sky - due to micro-contrast, micro-chroma,... @@ -1290,10 +1291,11 @@ TP_WAVELET_COLORT;Opacity Red-Green Levels TP_WAVELET_OPACITY;Opacity Blue-Yellow Levels TP_WAVELET_CONTR;Gamut - controls TP_WAVELET_UTIL;Utilities -TP_WAVELET_UNIF;Contrast Uniformity -TP_WAVELET_UNIF_TOOLTIP;Modulation of the effect based on local contrast\nTake into account local contrast\nMore it is present, more its increasing is reduct regardless to the slider +TP_WAVELET_CONTRA_TOOLTIP;Change contrast residual image\nFunction of Max Levels TP_WAVELET_DISP;Display Wavelet levels -TP_WAVELET_DISPLAY;Show Levels and Utilities +TP_WAVELET_DISPLAY;Levels and Utilities +TP_WAVELET_DISPLAYCHRO;Chromaticity and Toning +TP_WAVELET_DISPLAYGAM;Gamut and Control TP_DIRPYRDENOISE_TILELABEL;Tile size=%1, Center: Tx=%2 Ty=%3 TP_WAVELET_CONTRAST_MINUS;Contrast - TP_WAVELET_NEUTRAL;Neutral @@ -1306,7 +1308,6 @@ TP_WAVELET_INF;below or equal the level TP_WAVELET_SUP;above the level + residual TP_WAVELET_SUPE;Extra TP_WAVELET_ALL;all levels-directions -TP_WAVELET_CONTRAST;Contrast levels TP_WAVELET_0;level 0 TP_WAVELET_1;level 1 TP_WAVELET_2;level 2 diff --git a/rtdata/profiles/BW/BW 1.pp3 b/rtdata/profiles/BW/BW 1.pp3 index 0b49bd016..8ee75890b 100644 --- a/rtdata/profiles/BW/BW 1.pp3 +++ b/rtdata/profiles/BW/BW 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -143,6 +143,9 @@ Roundness=50 [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [HSV Equalizer] HCurve=0; SCurve=0; diff --git a/rtdata/profiles/BW/BW 2.pp3 b/rtdata/profiles/BW/BW 2.pp3 index b7182596c..f45ce9eb8 100644 --- a/rtdata/profiles/BW/BW 2.pp3 +++ b/rtdata/profiles/BW/BW 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/BW/BW 3.pp3 b/rtdata/profiles/BW/BW 3.pp3 index 117e45257..ae512281a 100644 --- a/rtdata/profiles/BW/BW 3.pp3 +++ b/rtdata/profiles/BW/BW 3.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -143,6 +143,9 @@ Roundness=50 [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [HSV Equalizer] HCurve=0; SCurve=0; diff --git a/rtdata/profiles/BW/BW 4.pp3 b/rtdata/profiles/BW/BW 4.pp3 index 2c122819d..630b5bafc 100644 --- a/rtdata/profiles/BW/BW 4.pp3 +++ b/rtdata/profiles/BW/BW 4.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Default ISO High.pp3 b/rtdata/profiles/Default ISO High.pp3 index 1369276e1..f5e73a92d 100644 --- a/rtdata/profiles/Default ISO High.pp3 +++ b/rtdata/profiles/Default ISO High.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -116,6 +116,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Default ISO Medium.pp3 b/rtdata/profiles/Default ISO Medium.pp3 index ba2783b78..e94499df7 100644 --- a/rtdata/profiles/Default ISO Medium.pp3 +++ b/rtdata/profiles/Default ISO Medium.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -116,6 +116,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Default.pp3 b/rtdata/profiles/Default.pp3 index 2049b6e65..ed418039f 100644 --- a/rtdata/profiles/Default.pp3 +++ b/rtdata/profiles/Default.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -23,6 +23,7 @@ Blue=0;0;100; [Black & White] Enabled=false + [Luminance Curve] Brightness=0 Contrast=0 @@ -102,6 +103,10 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Faded/Faded Amber 1 TM Bright.pp3 b/rtdata/profiles/Faded/Faded Amber 1 TM Bright.pp3 index 8d149cc2a..f37435c98 100644 --- a/rtdata/profiles/Faded/Faded Amber 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Faded Amber 1 TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -78,6 +78,9 @@ Enabled=false [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [HSV Equalizer] HCurve=0; SCurve=0; diff --git a/rtdata/profiles/Faded/Faded Amber 1 TM.pp3 b/rtdata/profiles/Faded/Faded Amber 1 TM.pp3 index dc63a7990..4993102c0 100644 --- a/rtdata/profiles/Faded/Faded Amber 1 TM.pp3 +++ b/rtdata/profiles/Faded/Faded Amber 1 TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.047430830039525626;0.21343873517786571;1;1; diff --git a/rtdata/profiles/Faded/Faded Amber 1.pp3 b/rtdata/profiles/Faded/Faded Amber 1.pp3 index 1170d068d..73f653814 100644 --- a/rtdata/profiles/Faded/Faded Amber 1.pp3 +++ b/rtdata/profiles/Faded/Faded Amber 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -78,6 +78,9 @@ Enabled=false [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [HSV Equalizer] HCurve=0; SCurve=0; diff --git a/rtdata/profiles/Faded/Faded Blue 1 TM Bright.pp3 b/rtdata/profiles/Faded/Faded Blue 1 TM Bright.pp3 index 75ec85760..9e124c842 100644 --- a/rtdata/profiles/Faded/Faded Blue 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Faded Blue 1 TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -78,6 +78,9 @@ Enabled=false [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [HSV Equalizer] HCurve=0; SCurve=0; diff --git a/rtdata/profiles/Faded/Faded Blue 1 TM.pp3 b/rtdata/profiles/Faded/Faded Blue 1 TM.pp3 index 156c3463d..df9aff926 100644 --- a/rtdata/profiles/Faded/Faded Blue 1 TM.pp3 +++ b/rtdata/profiles/Faded/Faded Blue 1 TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -78,6 +78,9 @@ Enabled=false [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [HSV Equalizer] HCurve=0; SCurve=0; diff --git a/rtdata/profiles/Faded/Faded Blue 1.pp3 b/rtdata/profiles/Faded/Faded Blue 1.pp3 index 388f315f1..0205547b9 100644 --- a/rtdata/profiles/Faded/Faded Blue 1.pp3 +++ b/rtdata/profiles/Faded/Faded Blue 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.24505928853754988;0.055335968379447285;1;1; diff --git a/rtdata/profiles/Faded/Faded Blue Pink TM.pp3 b/rtdata/profiles/Faded/Faded Blue Pink TM.pp3 index caba0f349..3e2418862 100644 --- a/rtdata/profiles/Faded/Faded Blue Pink TM.pp3 +++ b/rtdata/profiles/Faded/Faded Blue Pink TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.24505928853754988;0.055335968379447285;0.81034482758620685;0.94827586206896552;1;1; diff --git a/rtdata/profiles/Faded/Faded Blue Pink.pp3 b/rtdata/profiles/Faded/Faded Blue Pink.pp3 index a21eff9bc..ef54d9655 100644 --- a/rtdata/profiles/Faded/Faded Blue Pink.pp3 +++ b/rtdata/profiles/Faded/Faded Blue Pink.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.24505928853754988;0.055335968379447285;0.81034482758620685;0.94827586206896552;1;1; diff --git a/rtdata/profiles/Faded/Faded Chocolate 1 TM Bright.pp3 b/rtdata/profiles/Faded/Faded Chocolate 1 TM Bright.pp3 index 223e4fa5c..3e422dcf7 100644 --- a/rtdata/profiles/Faded/Faded Chocolate 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Faded Chocolate 1 TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.16206896551724165;0.079310344827586171;1;1; diff --git a/rtdata/profiles/Faded/Faded Chocolate 2 TM Bright.pp3 b/rtdata/profiles/Faded/Faded Chocolate 2 TM Bright.pp3 index 16b496c98..ca4ad8b53 100644 --- a/rtdata/profiles/Faded/Faded Chocolate 2 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Faded Chocolate 2 TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.16206896551724165;0.079310344827586171;1;1; diff --git a/rtdata/profiles/Faded/Faded Golden 1.pp3 b/rtdata/profiles/Faded/Faded Golden 1.pp3 index 199ea14cd..ad0c3a033 100644 --- a/rtdata/profiles/Faded/Faded Golden 1.pp3 +++ b/rtdata/profiles/Faded/Faded Golden 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.086956521739130432;0.090909090909090856;1;1; diff --git a/rtdata/profiles/Faded/Faded Golden 2.pp3 b/rtdata/profiles/Faded/Faded Golden 2.pp3 index 6ccb8fde4..451046e5f 100644 --- a/rtdata/profiles/Faded/Faded Golden 2.pp3 +++ b/rtdata/profiles/Faded/Faded Golden 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.086956521739130432;0.090909090909090856;0.94466403162055268;0.89328063241106692;1;1; diff --git a/rtdata/profiles/Faded/Faded Green 1 TM Bright.pp3 b/rtdata/profiles/Faded/Faded Green 1 TM Bright.pp3 index de7906cca..c78d4c06e 100644 --- a/rtdata/profiles/Faded/Faded Green 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Faded Green 1 TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Faded/Faded Green 1 TM.pp3 b/rtdata/profiles/Faded/Faded Green 1 TM.pp3 index 9066da7ef..eda9c5f8e 100644 --- a/rtdata/profiles/Faded/Faded Green 1 TM.pp3 +++ b/rtdata/profiles/Faded/Faded Green 1 TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Faded/Faded Green 1.pp3 b/rtdata/profiles/Faded/Faded Green 1.pp3 index 0e1ef9b28..eb8a698cb 100644 --- a/rtdata/profiles/Faded/Faded Green 1.pp3 +++ b/rtdata/profiles/Faded/Faded Green 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Faded/Faded Green 2.pp3 b/rtdata/profiles/Faded/Faded Green 2.pp3 index d8dae42d8..75d1076c2 100644 --- a/rtdata/profiles/Faded/Faded Green 2.pp3 +++ b/rtdata/profiles/Faded/Faded Green 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.083003952569169981;0.075098814229249022;0.74703557312252944;0.81422924901185822;1;1; diff --git a/rtdata/profiles/Faded/Faded Green 3.pp3 b/rtdata/profiles/Faded/Faded Green 3.pp3 index 6f177dcf5..171d6ac48 100644 --- a/rtdata/profiles/Faded/Faded Green 3.pp3 +++ b/rtdata/profiles/Faded/Faded Green 3.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.24505928853754988;0.055335968379447285;0.81034482758620685;0.94827586206896552;1;1; diff --git a/rtdata/profiles/Faded/Faded Neutral TM.pp3 b/rtdata/profiles/Faded/Faded Neutral TM.pp3 index b27b48a50..320027b63 100644 --- a/rtdata/profiles/Faded/Faded Neutral TM.pp3 +++ b/rtdata/profiles/Faded/Faded Neutral TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;1;1; diff --git a/rtdata/profiles/Faded/Faded Neutral.pp3 b/rtdata/profiles/Faded/Faded Neutral.pp3 index 217cd022b..3d91c111c 100644 --- a/rtdata/profiles/Faded/Faded Neutral.pp3 +++ b/rtdata/profiles/Faded/Faded Neutral.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;1;1; diff --git a/rtdata/profiles/Faded/Faded Purple 1 TM Bright.pp3 b/rtdata/profiles/Faded/Faded Purple 1 TM Bright.pp3 index 1570cf784..f73c43ee8 100644 --- a/rtdata/profiles/Faded/Faded Purple 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Faded Purple 1 TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.15517241379310354;0.075862068965517254;1;1; diff --git a/rtdata/profiles/Faded/Faded Purple 1 TM.pp3 b/rtdata/profiles/Faded/Faded Purple 1 TM.pp3 index ae9ce6431..7816664f8 100644 --- a/rtdata/profiles/Faded/Faded Purple 1 TM.pp3 +++ b/rtdata/profiles/Faded/Faded Purple 1 TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.15517241379310354;0.075862068965517254;1;1; diff --git a/rtdata/profiles/Faded/Faded Purple 1.pp3 b/rtdata/profiles/Faded/Faded Purple 1.pp3 index 9f9f612cb..d063721f6 100644 --- a/rtdata/profiles/Faded/Faded Purple 1.pp3 +++ b/rtdata/profiles/Faded/Faded Purple 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.15517241379310354;0.075862068965517254;1;1; diff --git a/rtdata/profiles/Faded/Faded Purple 2 TM.pp3 b/rtdata/profiles/Faded/Faded Purple 2 TM.pp3 index 08ff7a764..dce041960 100644 --- a/rtdata/profiles/Faded/Faded Purple 2 TM.pp3 +++ b/rtdata/profiles/Faded/Faded Purple 2 TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.15517241379310354;0.075862068965517254;0.7;0.9;1;1; diff --git a/rtdata/profiles/Faded/Faded Purple 2.pp3 b/rtdata/profiles/Faded/Faded Purple 2.pp3 index 40882b19f..db4c527f6 100644 --- a/rtdata/profiles/Faded/Faded Purple 2.pp3 +++ b/rtdata/profiles/Faded/Faded Purple 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.15517241379310354;0.075862068965517254;0.69999999999999973;0.90000000000000013;1;1; diff --git a/rtdata/profiles/Faded/Faded Teal Orange TM Bright.pp3 b/rtdata/profiles/Faded/Faded Teal Orange TM Bright.pp3 index d39974e67..eff29e919 100644 --- a/rtdata/profiles/Faded/Faded Teal Orange TM Bright.pp3 +++ b/rtdata/profiles/Faded/Faded Teal Orange TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.18620689655172415;0.044827586206896544;0.85517241379310338;0.91379310344827591;1;1; diff --git a/rtdata/profiles/Faded/Faded Teal Orange TM.pp3 b/rtdata/profiles/Faded/Faded Teal Orange TM.pp3 index 698dc6d14..e0e6d91a0 100644 --- a/rtdata/profiles/Faded/Faded Teal Orange TM.pp3 +++ b/rtdata/profiles/Faded/Faded Teal Orange TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.18620689655172415;0.044827586206896544;0.85517241379310338;0.91379310344827591;1;1; diff --git a/rtdata/profiles/Faded/Faded Teal Orange.pp3 b/rtdata/profiles/Faded/Faded Teal Orange.pp3 index c61468e34..17763da9f 100644 --- a/rtdata/profiles/Faded/Faded Teal Orange.pp3 +++ b/rtdata/profiles/Faded/Faded Teal Orange.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.18620689655172415;0.044827586206896544;0.85517241379310338;0.91379310344827591;1;1; diff --git a/rtdata/profiles/Faded/Faded Warm 1 TM Bright.pp3 b/rtdata/profiles/Faded/Faded Warm 1 TM Bright.pp3 index a36023fc5..44d145fb7 100644 --- a/rtdata/profiles/Faded/Faded Warm 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Faded Warm 1 TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.051383399209486022;0.17391304347826081;1;1; diff --git a/rtdata/profiles/Faded/Faded Warm 1 TM.pp3 b/rtdata/profiles/Faded/Faded Warm 1 TM.pp3 index 9cf05370c..d5fb8c86c 100644 --- a/rtdata/profiles/Faded/Faded Warm 1 TM.pp3 +++ b/rtdata/profiles/Faded/Faded Warm 1 TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.051383399209486022;0.17391304347826081;1;1; diff --git a/rtdata/profiles/Faded/Faded Warm 1.pp3 b/rtdata/profiles/Faded/Faded Warm 1.pp3 index 2aeaa3fa8..0ee8ec684 100644 --- a/rtdata/profiles/Faded/Faded Warm 1.pp3 +++ b/rtdata/profiles/Faded/Faded Warm 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -87,6 +87,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.051383399209486022;0.17391304347826081;1;1; diff --git a/rtdata/profiles/Faded/Faded Warm 2.pp3 b/rtdata/profiles/Faded/Faded Warm 2.pp3 index b2781a423..7d5581892 100644 --- a/rtdata/profiles/Faded/Faded Warm 2.pp3 +++ b/rtdata/profiles/Faded/Faded Warm 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.051383399209486022;0.17391304347826081;1;1; diff --git a/rtdata/profiles/Faded/Faded Warm 3.pp3 b/rtdata/profiles/Faded/Faded Warm 3.pp3 index 3e0051a92..5091f3987 100644 --- a/rtdata/profiles/Faded/Faded Warm 3.pp3 +++ b/rtdata/profiles/Faded/Faded Warm 3.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -83,6 +83,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=3;0;0;0.051383399209486022;0.17391304347826081;1;1; diff --git a/rtdata/profiles/Generic/Deep Shadows.pp3 b/rtdata/profiles/Generic/Deep Shadows.pp3 index d2d5116fc..4fe3b95cb 100644 --- a/rtdata/profiles/Generic/Deep Shadows.pp3 +++ b/rtdata/profiles/Generic/Deep Shadows.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Generic/Equilibrated.pp3 b/rtdata/profiles/Generic/Equilibrated.pp3 index 7858b2c4f..744f3032e 100644 --- a/rtdata/profiles/Generic/Equilibrated.pp3 +++ b/rtdata/profiles/Generic/Equilibrated.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Generic/High-Key.pp3 b/rtdata/profiles/Generic/High-Key.pp3 index 0131e268a..3046dd460 100644 --- a/rtdata/profiles/Generic/High-Key.pp3 +++ b/rtdata/profiles/Generic/High-Key.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Generic/Natural 1.pp3 b/rtdata/profiles/Generic/Natural 1.pp3 index c9247426f..8bfd2ffb0 100644 --- a/rtdata/profiles/Generic/Natural 1.pp3 +++ b/rtdata/profiles/Generic/Natural 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Generic/Natural 2.pp3 b/rtdata/profiles/Generic/Natural 2.pp3 index c4500d669..940cab16e 100644 --- a/rtdata/profiles/Generic/Natural 2.pp3 +++ b/rtdata/profiles/Generic/Natural 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Generic/Punchy 1.pp3 b/rtdata/profiles/Generic/Punchy 1.pp3 index 546d5dcdb..ae6cdbb7e 100644 --- a/rtdata/profiles/Generic/Punchy 1.pp3 +++ b/rtdata/profiles/Generic/Punchy 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Generic/Punchy 2.pp3 b/rtdata/profiles/Generic/Punchy 2.pp3 index e2882490d..750b01565 100644 --- a/rtdata/profiles/Generic/Punchy 2.pp3 +++ b/rtdata/profiles/Generic/Punchy 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=true @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Non-raw/Brighten.pp3 b/rtdata/profiles/Non-raw/Brighten.pp3 index 8ec206545..267aa4e0b 100644 --- a/rtdata/profiles/Non-raw/Brighten.pp3 +++ b/rtdata/profiles/Non-raw/Brighten.pp3 @@ -1,6 +1,6 @@ [Version] AppVersion=4.2.2 -Version=321 +Version=322 [Luminance Curve] Brightness=0 diff --git a/rtdata/profiles/Pop/Pop 1.pp3 b/rtdata/profiles/Pop/Pop 1.pp3 index c7d242960..93e167d0c 100644 --- a/rtdata/profiles/Pop/Pop 1.pp3 +++ b/rtdata/profiles/Pop/Pop 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -112,6 +112,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Pop/Pop 2 L.pp3 b/rtdata/profiles/Pop/Pop 2 L.pp3 index 0ea56e463..947f9aa3c 100644 --- a/rtdata/profiles/Pop/Pop 2 L.pp3 +++ b/rtdata/profiles/Pop/Pop 2 L.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -112,6 +112,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Pop/Pop 3 Skin.pp3 b/rtdata/profiles/Pop/Pop 3 Skin.pp3 index 11b72d37a..096a16ae0 100644 --- a/rtdata/profiles/Pop/Pop 3 Skin.pp3 +++ b/rtdata/profiles/Pop/Pop 3 Skin.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -112,6 +112,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Pop/Pop 4 BW.pp3 b/rtdata/profiles/Pop/Pop 4 BW.pp3 index 88302d8d9..5aba25062 100644 --- a/rtdata/profiles/Pop/Pop 4 BW.pp3 +++ b/rtdata/profiles/Pop/Pop 4 BW.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -134,6 +134,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Portrait/Portrait Lejto.pp3 b/rtdata/profiles/Portrait/Portrait Lejto.pp3 index 3e7f4d37f..0fe9d68ad 100644 --- a/rtdata/profiles/Portrait/Portrait Lejto.pp3 +++ b/rtdata/profiles/Portrait/Portrait Lejto.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -148,6 +148,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Portrait/Portrait Smooth.pp3 b/rtdata/profiles/Portrait/Portrait Smooth.pp3 index a139aeaa1..26bb855dd 100644 --- a/rtdata/profiles/Portrait/Portrait Smooth.pp3 +++ b/rtdata/profiles/Portrait/Portrait Smooth.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -122,6 +122,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - Natural TM.pp3 b/rtdata/profiles/Skintones/Skintones - Natural TM.pp3 index 8d4875a6c..75807484d 100644 --- a/rtdata/profiles/Skintones/Skintones - Natural TM.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Natural TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - Natural.pp3 b/rtdata/profiles/Skintones/Skintones - Natural.pp3 index 022817a2f..55d71438b 100644 --- a/rtdata/profiles/Skintones/Skintones - Natural.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Natural.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - Pale TM Bright.pp3 b/rtdata/profiles/Skintones/Skintones - Pale TM Bright.pp3 index e2aee254d..69a252570 100644 --- a/rtdata/profiles/Skintones/Skintones - Pale TM Bright.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Pale TM Bright.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - Pale TM.pp3 b/rtdata/profiles/Skintones/Skintones - Pale TM.pp3 index 0d1150458..460b863d3 100644 --- a/rtdata/profiles/Skintones/Skintones - Pale TM.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Pale TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - Pale.pp3 b/rtdata/profiles/Skintones/Skintones - Pale.pp3 index d28d5982e..3a2e90ff3 100644 --- a/rtdata/profiles/Skintones/Skintones - Pale.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Pale.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - Soft Texture.pp3 b/rtdata/profiles/Skintones/Skintones - Soft Texture.pp3 index aa5d51890..3007578e3 100644 --- a/rtdata/profiles/Skintones/Skintones - Soft Texture.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Soft Texture.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=true rCurve=3;0;0;0.058419243986254393;0.28522336769759427;0.46735395189003465;0.890034364261168;1;1; diff --git a/rtdata/profiles/Skintones/Skintones - Strong Texture.pp3 b/rtdata/profiles/Skintones/Skintones - Strong Texture.pp3 index 026d06e19..f6a345534 100644 --- a/rtdata/profiles/Skintones/Skintones - Strong Texture.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Strong Texture.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=true rCurve=3;0;0;0.29209621993127149;0.054982817869415793;0.90034364261168398;0.46391752577319617;1;1; diff --git a/rtdata/profiles/Skintones/Skintones - Studio TM.pp3 b/rtdata/profiles/Skintones/Skintones - Studio TM.pp3 index c32643839..0ef16f8c6 100644 --- a/rtdata/profiles/Skintones/Skintones - Studio TM.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Studio TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - Studio.pp3 b/rtdata/profiles/Skintones/Skintones - Studio.pp3 index 814d63480..761194533 100644 --- a/rtdata/profiles/Skintones/Skintones - Studio.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Studio.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - StudioBase 1 TM.pp3 b/rtdata/profiles/Skintones/Skintones - StudioBase 1 TM.pp3 index 1c1b62153..6d96a89f6 100644 --- a/rtdata/profiles/Skintones/Skintones - StudioBase 1 TM.pp3 +++ b/rtdata/profiles/Skintones/Skintones - StudioBase 1 TM.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtdata/profiles/Skintones/Skintones - StudioBase 1.pp3 b/rtdata/profiles/Skintones/Skintones - StudioBase 1.pp3 index 85a2c1da2..f51c8ce27 100644 --- a/rtdata/profiles/Skintones/Skintones - StudioBase 1.pp3 +++ b/rtdata/profiles/Skintones/Skintones - StudioBase 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.2.1 -Version=321 +AppVersion=4.2.84 +Version=322 [Exposure] Auto=false @@ -159,6 +159,9 @@ VCurve=0; [Film Simulation] Enabled=false +[Wavelet] +Enabled=false + [RGB Curves] LumaMode=false rCurve=0; diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index dafc5e793..4386e920e 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -247,7 +247,7 @@ int wavNestedLevels = 1; if(minwin*skip < 256) maxlevelcrop = 7;//sampling 128 if(minwin*skip < 128) maxlevelcrop = 6; if(minwin < 64) maxlevelcrop = 5; - printf("minwin=%d maxcrop=%d\n",minwin, maxlevelcrop); + // printf("minwin=%d maxcrop=%d\n",minwin, maxlevelcrop); int levwav=params->wavelet.thres; if(levwav==9 && cp.mul[9]!=0) levwav=10; @@ -300,12 +300,12 @@ int wavNestedLevels = 1; if(minsizetile < 128) maxlev2 = 6; levwav=min(maxlev2,levwav); - printf("levwav = %d\n",levwav); + //printf("levwav = %d\n",levwav); int numthreads = 1; int maxnumberofthreadsforwavelet =0; //reduce memory for big tile size - if(kall!=0) { + if(kall!=0) { if(realtile <= 22) maxnumberofthreadsforwavelet=2; if(realtile <= 20) maxnumberofthreadsforwavelet=3; if(realtile <= 18) maxnumberofthreadsforwavelet=4; @@ -694,12 +694,57 @@ omp_set_nested(oldNested); int maxlvl = WaveletCoeffs_L.maxlevel(); int W_L = WaveletCoeffs_L.level_W(1); int H_L = WaveletCoeffs_L.level_H(1); - float * WavCoeffs_L0 = WaveletCoeffs_L.coeff0; + + float maxh=2.5f;//amplification contrast above mean + float maxl=2.5f; //reduction contrast under mean + float contrast=cp.unif; + float multL=(float)contrast*(maxl-1.f)/100.f + 1.f; + float multH=(float) contrast*(maxh-1.f)/100.f + 1.f; + + double avedbl=0.f; // use double precision for big summations +#ifdef _OPENMP +#pragma omp parallel for reduction(+:avedbl) num_threads(wavNestedLevels) if(wavNestedLevels>1) +#endif + for (int i=0; i lumaref + float bh=1.f-100.f*ah; + float al=(multL-1.f)/av; + float bl=1.f; + float factorx=1.f; + + #ifdef _OPENMP #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif { + +#ifdef _OPENMP +#pragma omp for +#endif + for (int i=0; i ave) { + float kh = ah*(WavCoeffs_L0[i]/327.68f)+bh; + prov=WavCoeffs_L0[i]; + WavCoeffs_L0[i]=ave+kh*(WavCoeffs_L0[i]-ave); + } else { + float kl = al*(WavCoeffs_L0[i]/327.68f)+1.f; + prov=WavCoeffs_L0[i]; + WavCoeffs_L0[i]=ave-kl*(ave-WavCoeffs_L0[i]); + } + float diflc=WavCoeffs_L0[i]-prov; + diflc*=factorx; + WavCoeffs_L0[i] = prov + diflc; + } + } + #ifdef _OPENMP #pragma omp for nowait #endif @@ -761,6 +806,10 @@ omp_set_nested(oldNested); int H_L = WaveletCoeffs_ab.level_H(1); float * WavCoeffs_ab0 = WaveletCoeffs_ab.coeff0; + + + + #ifdef _OPENMP #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 0bae8d417..2ec2e4a3d 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -463,7 +463,6 @@ void WaveletParams::setDefaults() { getDefaultOpacityCurveRG(opacityCurveRG); getDefaultOpacityCurveBY(opacityCurveBY); enabled = false; - display = true; median = false; avoid = false; Lmethod = "4_"; @@ -1511,8 +1510,7 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol // save wavelet parameters if (!pedited || pedited->wavelet.enabled) keyFile.set_boolean ("Wavelet", "Enabled", wavelet.enabled); - if (!pedited || pedited->wavelet.display) keyFile.set_boolean ("Wavelet", "Display", wavelet.display); - if (!pedited || pedited->wavelet.thres) keyFile.set_integer ("Wavelet", "MaxLev", wavelet.thres); + if (!pedited || pedited->wavelet.thres) keyFile.set_integer ("Wavelet", "MaxLev", wavelet.thres); if (!pedited || pedited->wavelet.Tilesmethod) keyFile.set_string ("Wavelet", "TilesMethod", wavelet.Tilesmethod); if (!pedited || pedited->wavelet.CLmethod) keyFile.set_string ("Wavelet", "ChoiceLevMethod", wavelet.CLmethod); if (!pedited || pedited->wavelet.Lmethod) keyFile.set_string ("Wavelet", "LevMethod", wavelet.Lmethod); @@ -1539,7 +1537,6 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol if (!pedited || pedited->wavelet.chroma) keyFile.set_integer ("Wavelet", "ThresholdChroma", wavelet.chroma); if (!pedited || pedited->wavelet.CHmethod) keyFile.set_string ("Wavelet", "CHromaMethod", wavelet.CHmethod); if (!pedited || pedited->wavelet.chro) keyFile.set_integer ("Wavelet", "ChromaLink", wavelet.chro); - // if (!pedited || pedited->wavelet.unif) keyFile.set_integer ("Wavelet", "Unif", wavelet.unif); if (!pedited || pedited->wavelet.clvcurve) { Glib::ArrayHandle clvcurve = wavelet.clvcurve; keyFile.set_double_list("Wavelet", "ChromaCurve", clvcurve); @@ -1582,6 +1579,7 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol Glib::ArrayHandle thresh (wavelet.hueskin2.value, 4, Glib::OWNERSHIP_NONE); keyFile.set_integer_list("Wavelet", "HueRange", thresh); } + if (!pedited || pedited->wavelet.unif) keyFile.set_integer ("Wavelet", "Contrast", wavelet.unif); // save directional pyramid wavelet parameters @@ -2301,7 +2299,6 @@ if (keyFile.has_group ("Color Management")) { if (keyFile.has_group ("Wavelet")) { if (keyFile.has_key ("Wavelet", "Enabled")) { wavelet.enabled = keyFile.get_boolean ("Wavelet", "Enabled"); if (pedited) pedited->wavelet.enabled = true; } - if (keyFile.has_key ("Wavelet", "Display")){ wavelet.display = keyFile.get_boolean ("Wavelet", "Display");if (pedited) pedited->wavelet.display = true;} if (keyFile.has_key ("Wavelet", "Median")) {wavelet.median = keyFile.get_boolean ("Wavelet", "Median");if (pedited) pedited->wavelet.median = true;} if (keyFile.has_key ("Wavelet", "AvoidColorShift")) {wavelet.avoid = keyFile.get_boolean ("Wavelet", "AvoidColorShift");if (pedited) pedited->wavelet.avoid = true;} if (keyFile.has_key ("Wavelet", "LevMethod")) {wavelet.Lmethod = keyFile.get_string ("Wavelet", "LevMethod"); if (pedited) pedited->wavelet.Lmethod = true; } @@ -2321,7 +2318,7 @@ if (keyFile.has_group ("Wavelet")) { if (keyFile.has_key ("Wavelet", "ThresholdShadow")) {wavelet.threshold2 = keyFile.get_integer ("Wavelet", "ThresholdShadow"); if (pedited) pedited->wavelet.threshold2 = true; } if (keyFile.has_key ("Wavelet", "ThresholdChroma")) {wavelet.chroma = keyFile.get_integer ("Wavelet", "ThresholdChroma"); if (pedited) pedited->wavelet.chroma = true; } if (keyFile.has_key ("Wavelet", "ChromaLink")) {wavelet.chro = keyFile.get_integer ("Wavelet", "ChromaLink"); if (pedited) pedited->wavelet.chro = true; } - if (keyFile.has_key ("Wavelet", "Unif")) {wavelet.unif = keyFile.get_integer ("Wavelet", "Unif"); if (pedited) pedited->wavelet.unif = true; } + if (keyFile.has_key ("Wavelet", "Contrast")) {wavelet.unif = keyFile.get_integer ("Wavelet", "Contrast"); if (pedited) pedited->wavelet.unif = true; } if (keyFile.has_key ("Wavelet", "ThresholdResidShadow")) {wavelet.thr = keyFile.get_integer ("Wavelet", "ThresholdResidShadow"); if (pedited) pedited->wavelet.thr = true; } if (keyFile.has_key ("Wavelet", "ThresholdResidHighLight")) {wavelet.thr = keyFile.get_integer ("Wavelet", "ThresholdResidHighLight"); if (pedited) pedited->wavelet.thrH = true; } if (keyFile.has_key ("Wavelet", "ChromaCurve")) {wavelet.clvcurve = keyFile.get_double_list ("Wavelet", "ChromaCurve"); if (pedited) pedited->wavelet.clvcurve = true; } diff --git a/rtengine/procparams.h b/rtengine/procparams.h index be190ad6f..05a7d2cc0 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -860,7 +860,6 @@ class WaveletParams { std::vector opacityCurveRG; std::vector opacityCurveBY; bool enabled; - bool display; bool median; bool avoid; int c[9]; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 6a6017140..8b5f18472 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -336,7 +336,6 @@ void ParamsEdited::set (bool v) { raw.exPos = v; raw.exPreser = v; wavelet.enabled = v; - wavelet.display = v; wavelet.median = v; wavelet.avoid = v; wavelet.Lmethod = v; @@ -712,7 +711,6 @@ void ParamsEdited::initFrom (const std::vector raw.exPos = raw.exPos && p.raw.expos == other.raw.expos; raw.exPreser = raw.exPreser && p.raw.preser == other.raw.preser; wavelet.enabled = wavelet.enabled && p.wavelet.enabled == other.wavelet.enabled; - wavelet.display = wavelet.display && p.wavelet.display == other.wavelet.display; wavelet.median = wavelet.median && p.wavelet.median == other.wavelet.median; wavelet.avoid = wavelet.avoid && p.wavelet.avoid == other.wavelet.avoid; wavelet.Lmethod = wavelet.Lmethod && p.wavelet.Lmethod == other.wavelet.Lmethod; @@ -1093,7 +1091,6 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten if (raw.ff_AutoClipControl) toEdit.raw.ff_AutoClipControl = mods.raw.ff_AutoClipControl; if (raw.ff_clipControl) toEdit.raw.ff_clipControl = dontforceSet && options.baBehav[ADDSET_RAWFFCLIPCONTROL] ? toEdit.raw.ff_clipControl + mods.raw.ff_clipControl : mods.raw.ff_clipControl; if (wavelet.enabled) toEdit.wavelet.enabled = mods.wavelet.enabled; - if (wavelet.display) toEdit.wavelet.display = mods.wavelet.display; if (wavelet.median) toEdit.wavelet.median = mods.wavelet.median; if (wavelet.avoid) toEdit.wavelet.avoid = mods.wavelet.avoid; if (wavelet.Lmethod) toEdit.wavelet.Lmethod = mods.wavelet.Lmethod; diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index e131c91f4..07c387737 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -476,7 +476,6 @@ class WaveletParamsEdited { public: bool enabled; - bool display; bool median; bool avoid; bool c[9]; diff --git a/rtgui/ppversion.h b/rtgui/ppversion.h index 7e4148f05..c1ca3656a 100644 --- a/rtgui/ppversion.h +++ b/rtgui/ppversion.h @@ -2,11 +2,13 @@ #define _PPVERSION_ // This number has to be incremented whenever the PP3 file format is modified or the behaviour of a tool changes -#define PPVERSION 321 +#define PPVERSION 322 #define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified /* - Log of version changes + Log of version changes + 322 2015-01-31 + [Wavelet] new tool using wavelet levels 321 2014-08-17 [Film Simulation] new tool using HALDCLUT files 320 2014-07-02 (yes, same version number... this is an error due to a wrong version number set in comment of previous change) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index fe12ccd1c..282a0124c 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -302,8 +302,7 @@ Gtk::Widget* Preferences::getBatchProcPanel () { mi = behModel->append (); mi->set_value (behavColumns.label, M("TP_WAVELET_LABEL")); appendBehavList (mi, M("TP_WAVELET_THRES"), ADDSET_WA_THRES, true); - appendBehavList (mi, M("TP_WAVELET_CONTRAST"), ADDSET_WA, true); - // appendBehavList (mi, M("TP_WAVELET_UNIF"), ADDSET_WA_UNIF, true); + // appendBehavList (mi, M("TP_WAVELET_CONTRAST"), ADDSET_WA, true); appendBehavList (mi, M("TP_WAVELET_THRESHOLD"), ADDSET_WA_THRESHOLD, true); appendBehavList (mi, M("TP_WAVELET_THRESHOLD2"), ADDSET_WA_THRESHOLD2, true); appendBehavList (mi, M("TP_WAVELET_CHRO"), ADDSET_WA_CHRO, true); @@ -315,6 +314,7 @@ Gtk::Widget* Preferences::getBatchProcPanel () { appendBehavList (mi, M("TP_WAVELET_THRH"), ADDSET_WA_THRRH, true); appendBehavList (mi, M("TP_WAVELET_RESCHRO"), ADDSET_WA_RESCHRO, true); appendBehavList (mi, M("TP_WAVELET_SKY"), ADDSET_WA_SKYPROTECT, true); + appendBehavList (mi, M("TP_WAVELET_CONTRA"), ADDSET_WA_UNIF, true); mi = behModel->append (); mi->set_value (behavColumns.label, M("TP_PREPROCESS_LABEL")); diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index d216d6746..394ebea71 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -58,33 +58,180 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { pack_start(*enabled); enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::enabledToggled) ); std::vector defaultCurve; + + + + // frame and expand + utilFrame = Gtk::manage (new Gtk::Frame () ); + exputil = Gtk::manage (new Gtk::Expander (M("TP_WAVELET_UTIL"))); + Gtk::HBox* hbutil = Gtk::manage( new Gtk::HBox()); + tbutil = Gtk::manage( new Gtk::ToggleButton()); + utilFrame->add(*exputil); + hbutil->set_spacing(8); + hbutil->pack_start(*tbutil); + tbutil->signal_toggled().connect( sigc::mem_fun(this, &Wavelet::exputilTog)); + + dispFrame = Gtk::manage (new Gtk::Frame () ); + expdisplay = Gtk::manage (new Gtk::Expander (M("TP_WAVELET_DISP"))); + Gtk::HBox* hbdisplay = Gtk::manage( new Gtk::HBox()); + tbdisplay = Gtk::manage( new Gtk::ToggleButton()); + dispFrame->add(*expdisplay); + hbdisplay->set_spacing(8); + hbdisplay->pack_start(*tbdisplay); + tbdisplay->signal_toggled().connect( sigc::mem_fun(this, &Wavelet::expdisplayTog)); + + levelFrame = Gtk::manage (new Gtk::Frame () ); + expcontrast = Gtk::manage (new Gtk::Expander (M("TP_WAVELET_LEVF"))); + Gtk::HBox* hbcontrast = Gtk::manage( new Gtk::HBox()); + tbcontrast = Gtk::manage( new Gtk::ToggleButton()); + levelFrame->add(*expcontrast); + hbcontrast->set_spacing(8); + hbcontrast->pack_start(*tbcontrast); + tbcontrast->signal_toggled().connect( sigc::mem_fun(this, &Wavelet::expcontrastTog)); - Gtk::Frame* residualFrame = Gtk::manage (new Gtk::Frame (M("TP_WAVELET_RESID")) ); - residualFrame->set_border_width(0); - residualFrame->set_label_align(0.025, 0.5); + chromaFrame = Gtk::manage (new Gtk::Frame () ); + expchroma = Gtk::manage (new Gtk::Expander (M("TP_WAVELET_LEVCH"))); + Gtk::HBox* hbchroma = Gtk::manage( new Gtk::HBox()); + tbchroma = Gtk::manage( new Gtk::ToggleButton()); + chromaFrame->add(*expchroma); + hbchroma->set_spacing(8); + hbchroma->pack_start(*tbchroma); + tbchroma->signal_toggled().connect( sigc::mem_fun(this, &Wavelet::expchromaTog)); + toningFrame = Gtk::manage (new Gtk::Frame () ); + exptoning = Gtk::manage (new Gtk::Expander (M("TP_WAVELET_TON"))); + Gtk::HBox* hbtoning = Gtk::manage( new Gtk::HBox()); + tbtoning = Gtk::manage( new Gtk::ToggleButton()); + toningFrame->add(*exptoning); + hbtoning->set_spacing(8); + hbtoning->pack_start(*tbtoning); + tbtoning->signal_toggled().connect( sigc::mem_fun(this, &Wavelet::exptoningTog)); + + controlFrame = Gtk::manage (new Gtk::Frame () ); + expgamut = Gtk::manage (new Gtk::Expander (M("TP_WAVELET_CONTR"))); + Gtk::HBox* hbgamut = Gtk::manage( new Gtk::HBox()); + tbgamut = Gtk::manage( new Gtk::ToggleButton()); + controlFrame->add(*expgamut); + hbgamut->set_spacing(8); + hbgamut->pack_start(*tbgamut); + tbgamut->signal_toggled().connect( sigc::mem_fun(this, &Wavelet::expgamutTog)); + + igRes = new RTImage ("histValue.png"); + residualFrame = Gtk::manage (new Gtk::Frame () ); + expresid = Gtk::manage (new Gtk::Expander (M("TP_WAVELET_RESID"))); + hbresid = Gtk::manage( new Gtk::HBox()); + cbresid = Gtk::manage( new Gtk::CheckButton()); + tbresid = Gtk::manage( new Gtk::ToggleButton()); + tbresid->set_relief(Gtk::RELIEF_NONE); + tbresid->set_image(*igRes); + +// Gtk::Label* l = Gtk::manage( new Gtk::Label("Sample label")); // just an example label + residualFrame->add(*expresid); + hbresid->set_spacing(8); // set spacing fo the horizontal box. + hbresid->pack_start(*tbresid); // add a toggle button to the box. you might want to change the text / icons to roll / unroll + //hbresid->pack_start(*cbresid); // add a CheckButton to the box. +// residualFrame->set_label_widget(*hbresid); // put the box as label for the frame. + tbresid->signal_toggled().connect( sigc::mem_fun(this, &Wavelet::expresidTog)); + //**************************************************** + + + + + + // util... + Gtk::VBox * utiBox = Gtk::manage (new Gtk::VBox()); + utiBox->set_border_width(4); + utiBox->set_spacing(2); + + thres = Gtk::manage (new Adjuster (M("TP_WAVELET_THRES"), 4, 9, 1, 7)); + thres->set_tooltip_text (M("TP_WAVELET_THRES_TOOLTIP")); + Tilesmethod = Gtk::manage (new MyComboBoxText ()); + Tilesmethod->append_text (M("TP_WAVELET_TILESFULL")); + Tilesmethod->append_text (M("TP_WAVELET_TILESBIG")); + Tilesmethod->append_text (M("TP_WAVELET_TILESLIT")); + Tilesmethodconn = Tilesmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::TilesmethodChanged) ); + Tilesmethod->set_tooltip_text (M("TP_WAVELET_TILES_TOOLTIP")); + + //not use + tiles = Gtk::manage (new Adjuster (M("TP_WAVELET_TILES"), 12, 22, 1, 14)); + //tiles->set_tooltip_text (M("TP_WAVELET_TILES_TOOLTIP")); + thres->setAdjusterListener (this); + tiles->setAdjusterListener (this); + + utiBox->pack_start (*thres); + utiBox->pack_start (*Tilesmethod); + + //method for display levels + Gtk::VBox * diBox = Gtk::manage (new Gtk::VBox()); + diBox->set_border_width(4); + diBox->set_spacing(2); + + CLmethod = Gtk::manage (new MyComboBoxText ()); + CLmethod->append_text (M("TP_WAVELET_ONE")); + CLmethod->append_text (M("TP_WAVELET_INF")); + CLmethod->append_text (M("TP_WAVELET_SUP")); + CLmethod->append_text (M("TP_WAVELET_ALL")); + CLmethodconn = CLmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::CLmethodChanged) ); + diBox->pack_start (*CLmethod); + + Lmethod = Gtk::manage (new MyComboBoxText ()); + Lmethod->append_text (M("TP_WAVELET_0")); + Lmethod->append_text (M("TP_WAVELET_1")); + Lmethod->append_text (M("TP_WAVELET_2")); + Lmethod->append_text (M("TP_WAVELET_3")); + Lmethod->append_text (M("TP_WAVELET_4")); + Lmethod->append_text (M("TP_WAVELET_5")); + Lmethod->append_text (M("TP_WAVELET_6")); + Lmethod->append_text (M("TP_WAVELET_7")); + Lmethod->append_text (M("TP_WAVELET_8")); + Lmethod->set_active(0); + Lmethodconn = Lmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::LmethodChanged) ); + diBox->pack_start (*Lmethod); + + + Dirmethod = Gtk::manage (new MyComboBoxText ()); + Dirmethod->append_text (M("TP_WAVELET_DONE")); + Dirmethod->append_text (M("TP_WAVELET_DTWO")); + Dirmethod->append_text (M("TP_WAVELET_DTHR")); + Dirmethod->append_text (M("TP_WAVELET_DALL")); + Dirmethodconn = Dirmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::DirmethodChanged) ); + diBox->pack_start (*Dirmethod); + + + // residual image Gtk::VBox * resBox = Gtk::manage (new Gtk::VBox()); resBox->set_border_width(4); resBox->set_spacing(2); - + rescon = Gtk::manage (new Adjuster (M("TP_WAVELET_RESCON"), -100, 100, 1, 0)); - resBox->pack_start(*rescon, Gtk::PACK_SHRINK); + resBox->pack_start(*rescon, Gtk::PACK_SHRINK); rescon->setAdjusterListener (this); thr = Gtk::manage (new Adjuster (M("TP_WAVELET_THR"), 0, 100, 1, 30)); resBox->pack_start(*thr); + thr->setAdjusterListener (this); resconH = Gtk::manage (new Adjuster (M("TP_WAVELET_RESCONH"), -100, 100, 1, 0)); resBox->pack_start(*resconH, Gtk::PACK_SHRINK); + resconH->setAdjusterListener (this); thrH = Gtk::manage (new Adjuster (M("TP_WAVELET_THRH"), 0, 100, 1, 70)); resBox->pack_start(*thrH,Gtk::PACK_SHRINK); + thrH->setAdjusterListener (this); + + + unif = Gtk::manage (new Adjuster (M("TP_WAVELET_CONTRA"), -100, 100, 1, 0)); + unif->set_tooltip_text (M("TP_WAVELET_CONTRA_TOOLTIP")); + + resBox->pack_start(*unif); //keep the possibility to reinstall + unif->setAdjusterListener (this); reschro = Gtk::manage (new Adjuster (M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0)); - resBox->pack_start(*reschro); + + resBox->pack_start(*reschro); reschro->setAdjusterListener (this); @@ -92,53 +239,26 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { hueskin2->set_tooltip_markup (M("TP_WAVELET_HUESKY_TOOLTIP")); hueskin2->setBgGradient(milestones); - resBox->pack_start(*hueskin2); + resBox->pack_start(*hueskin2); + hueskin2->setAdjusterListener (this); sky = Gtk::manage (new Adjuster (M("TP_WAVELET_SKY"), -100., 100.0, 1., 0.)); sky->set_tooltip_text (M("TP_WAVELET_SKY_TOOLTIP")); sky->setAdjusterListener (this); + resBox->pack_start(*sky); - + //*************************************************** - Gtk::Frame* levelFrame = Gtk::manage (new Gtk::Frame (M("TP_WAVELET_LEVF")) ); - levelFrame->set_border_width(0); - levelFrame->set_label_align(0.025, 0.5); - - Gtk::Frame* chromaFrame = Gtk::manage (new Gtk::Frame (M("TP_WAVELET_LEVCH")) ); - chromaFrame->set_border_width(0); - chromaFrame->set_label_align(0.025, 0.5); - - toningFrame = Gtk::manage (new Gtk::Frame (M("TP_WAVELET_TON")) ); - toningFrame->set_border_width(0); - toningFrame->set_label_align(0.025, 0.5); - - Gtk::Frame* controlFrame = Gtk::manage (new Gtk::Frame (M("TP_WAVELET_CONTR")) ); - controlFrame->set_border_width(0); - controlFrame->set_label_align(0.025, 0.5); - - Gtk::HSeparator *separator1 = Gtk::manage (new Gtk::HSeparator()); - pack_start(*separator1, Gtk::PACK_SHRINK, 2); - - Gtk::VBox * buBox = Gtk::manage (new Gtk::VBox()); - buBox->set_border_width(4); - buBox->set_spacing(2); + // Gtk::HSeparator *separator1 = Gtk::manage (new Gtk::HSeparator()); + //pack_start(*separator1, Gtk::PACK_SHRINK, 2); + + //levels contrast******************************** Gtk::VBox * levBox = Gtk::manage (new Gtk::VBox()); levBox->set_border_width(4); levBox->set_spacing(2); - - Gtk::VBox * conBox = Gtk::manage (new Gtk::VBox()); - conBox->set_border_width(4); - conBox->set_spacing(2); - Gtk::VBox * chBox = Gtk::manage (new Gtk::VBox()); - chBox->set_border_width(4); - chBox->set_spacing(2); - - Gtk::VBox * tonBox = Gtk::manage (new Gtk::VBox()); - tonBox->set_border_width(4); - tonBox->set_spacing(2); Gtk::HBox * buttonBox = Gtk::manage (new Gtk::HBox()); wavLabels = Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER)); @@ -162,14 +282,10 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { Gtk::HSeparator *separator2 = Gtk::manage (new Gtk::HSeparator()); levBox->pack_start(*separator2, Gtk::PACK_SHRINK, 2); - unif = Gtk::manage (new Adjuster (M("TP_WAVELET_UNIF"), 0, 100, 1, 0)); - unif->set_tooltip_text (M("TP_WAVELET_UNIF_TOOLTIP")); - //levBox->pack_start(*unif); //keep the possibility to reinstall - unif->setAdjusterListener (this); - Gtk::HSeparator *separatorU = Gtk::manage (new Gtk::HSeparator()); - levBox->pack_start(*separatorU, Gtk::PACK_SHRINK, 2); + // Gtk::HSeparator *separatorU = Gtk::manage (new Gtk::HSeparator()); +// levBox->pack_start(*separatorU, Gtk::PACK_SHRINK, 2); for(int i = 0; i < 9; i++) { @@ -203,10 +319,7 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { HSmethod->append_text (M("TP_WAVELET_HS2")); HSmethodconn = HSmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::HSmethodChanged) ); levBox->pack_start(*HSmethod); - - avoid = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_AVOID"))); - avoid->set_active (true); - avoidConn = avoid->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::avoidToggled) ); + hllev = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_HIGHLIGHT"), 0., 100., 50., 75., 100., 98., 0, false)); @@ -229,7 +342,11 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { threshold2->setAdjusterListener (this); threshold2->set_tooltip_text (M("TP_WAVELET_THRESHOLD2_TOOLTIP")); - + // chroma lev + Gtk::VBox * chBox = Gtk::manage (new Gtk::VBox()); + chBox->set_border_width(4); + chBox->set_spacing(2); + CHmethod = Gtk::manage (new MyComboBoxText ()); CHmethod->append_text (M("TP_WAVELET_CH1")); CHmethod->append_text (M("TP_WAVELET_CH2")); @@ -257,6 +374,7 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { chBox->pack_start(*chro); chro->setAdjusterListener (this); + //Chroma curve levels******************************** CLVcurveEditorG = new CurveEditorGroup (options.lastWaveletCurvesDir, M("TP_WAVELET_CLVCURVE")); CLVcurveEditorG->setCurveListener (this); rtengine::WaveletParams::getDefaultCLVCurve(defaultCurve); @@ -271,7 +389,9 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { //----------- Color Opacity curve RG ------------------------------ - + Gtk::VBox * tonBox = Gtk::manage (new Gtk::VBox()); + tonBox->set_border_width(4); + tonBox->set_spacing(2); opaCurveEditorG = new CurveEditorGroup (options.lastWaveletCurvesDir, M("TP_WAVELET_COLORT")); opaCurveEditorG->setCurveListener (this); @@ -313,7 +433,10 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { -//------------------------------------------------- + // gamut control------------------------------------------------- + Gtk::VBox * conBox = Gtk::manage (new Gtk::VBox()); + conBox->set_border_width(4); + conBox->set_spacing(2); median = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_MEDI"))); median->set_active (true); @@ -332,96 +455,32 @@ Wavelet::Wavelet () : FoldableToolPanel(this) { conBox->pack_start(*hueskin); hueskin->setAdjusterListener (this); - Gtk::VBox * utiBox = Gtk::manage (new Gtk::VBox()); - utiBox->set_border_width(4); - utiBox->set_spacing(2); + avoid = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_AVOID"))); + avoid->set_active (true); + avoidConn = avoid->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::avoidToggled) ); + conBox->pack_start(*avoid); + //************************** + exputil->add(*utiBox); + pack_start (*utilFrame, Gtk::PACK_EXPAND_WIDGET, 4); - Gtk::VBox * diBox = Gtk::manage (new Gtk::VBox()); - diBox->set_border_width(4); - diBox->set_spacing(2); - - utilFrame = Gtk::manage (new Gtk::Frame (M("TP_WAVELET_UTIL")) ); - utilFrame->set_border_width(0); - utilFrame->set_label_align(0.025, 0.5); - - display = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_DISPLAY"))); - display->set_active (true); - displayConn = display->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::displayToggled) ); - - thres = Gtk::manage (new Adjuster (M("TP_WAVELET_THRES"), 4, 9, 1, 7)); - thres->set_tooltip_text (M("TP_WAVELET_THRES_TOOLTIP")); - Tilesmethod = Gtk::manage (new MyComboBoxText ()); - Tilesmethod->append_text (M("TP_WAVELET_TILESFULL")); - Tilesmethod->append_text (M("TP_WAVELET_TILESBIG")); - Tilesmethod->append_text (M("TP_WAVELET_TILESLIT")); - Tilesmethodconn = Tilesmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::TilesmethodChanged) ); - Tilesmethod->set_tooltip_text (M("TP_WAVELET_TILES_TOOLTIP")); + expdisplay->add(*diBox); + pack_start (*dispFrame, Gtk::PACK_EXPAND_WIDGET, 4); - - tiles = Gtk::manage (new Adjuster (M("TP_WAVELET_TILES"), 12, 22, 1, 14)); - //tiles->set_tooltip_text (M("TP_WAVELET_TILES_TOOLTIP")); - thres->setAdjusterListener (this); - tiles->setAdjusterListener (this); - utiBox->pack_start (*thres); -// utiBox->pack_start (*tiles); - utiBox->pack_start (*Tilesmethod); - - dispFrame = Gtk::manage (new Gtk::Frame (M("TP_WAVELET_DISP")) ); - dispFrame->set_border_width(0); - dispFrame->set_label_align(0.025, 0.5); - - - CLmethod = Gtk::manage (new MyComboBoxText ()); - CLmethod->append_text (M("TP_WAVELET_ONE")); - CLmethod->append_text (M("TP_WAVELET_INF")); - CLmethod->append_text (M("TP_WAVELET_SUP")); - CLmethod->append_text (M("TP_WAVELET_ALL")); - CLmethodconn = CLmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::CLmethodChanged) ); - diBox->pack_start (*CLmethod); - - Lmethod = Gtk::manage (new MyComboBoxText ()); - Lmethod->append_text (M("TP_WAVELET_0")); - Lmethod->append_text (M("TP_WAVELET_1")); - Lmethod->append_text (M("TP_WAVELET_2")); - Lmethod->append_text (M("TP_WAVELET_3")); - Lmethod->append_text (M("TP_WAVELET_4")); - Lmethod->append_text (M("TP_WAVELET_5")); - Lmethod->append_text (M("TP_WAVELET_6")); - Lmethod->append_text (M("TP_WAVELET_7")); - Lmethod->append_text (M("TP_WAVELET_8")); - Lmethod->set_active(0); - Lmethodconn = Lmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::LmethodChanged) ); - diBox->pack_start (*Lmethod); - - - Dirmethod = Gtk::manage (new MyComboBoxText ()); - Dirmethod->append_text (M("TP_WAVELET_DONE")); - Dirmethod->append_text (M("TP_WAVELET_DTWO")); - Dirmethod->append_text (M("TP_WAVELET_DTHR")); - Dirmethod->append_text (M("TP_WAVELET_DALL")); - Dirmethodconn = Dirmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::DirmethodChanged) ); - diBox->pack_start (*Dirmethod); - - pack_start(*display); - utilFrame->add(*utiBox); - pack_start (*utilFrame); - dispFrame->add(*diBox); - pack_start (*dispFrame); - - - levelFrame->add(*levBox); + expcontrast->add(*levBox); pack_start (*levelFrame, Gtk::PACK_EXPAND_WIDGET, 4); - chromaFrame->add(*chBox); + + expchroma->add(*chBox); pack_start (*chromaFrame, Gtk::PACK_EXPAND_WIDGET, 4); - toningFrame->add(*tonBox); + + exptoning->add(*tonBox); pack_start (*toningFrame, Gtk::PACK_EXPAND_WIDGET, 4); - conBox->pack_start(*avoid); - controlFrame->add(*conBox); + expgamut->add(*conBox); pack_start (*controlFrame, Gtk::PACK_EXPAND_WIDGET, 4); - residualFrame->add(*resBox); + expresid->add(*resBox); pack_start(*residualFrame, Gtk::PACK_EXPAND_WIDGET, 4); + show_all_children (); } @@ -568,7 +627,6 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) { thres->setEditedState (pedited->wavelet.thres ? Edited : UnEdited); threshold->setEditedState (pedited->wavelet.threshold ? Edited : UnEdited); threshold2->setEditedState (pedited->wavelet.threshold2 ? Edited : UnEdited); - display->set_inconsistent (!pedited->wavelet.display); chroma->setEditedState (pedited->wavelet.chroma ? Edited : UnEdited); chro->setEditedState (pedited->wavelet.chro ? Edited : UnEdited); median->set_inconsistent (!pedited->wavelet.median); @@ -597,10 +655,6 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) { avoidConn.block (true); avoid->set_active (pp->wavelet.avoid); avoidConn.block (false); - displayConn.block (true); - display->set_active (pp->wavelet.display); - displayConn.block (false); - lastdisplay = pp->wavelet.display; medianConn.block (true); median->set_active (pp->wavelet.median); medianConn.block (false); @@ -628,7 +682,6 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) { bllev->setValue(pp->wavelet.bllev); pastlev->setValue(pp->wavelet.pastlev); satlev->setValue(pp->wavelet.satlev); - for (int i = 0; i < 9; i++) { correction[i]->setValue(pp->wavelet.c[i]); } @@ -669,7 +722,6 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) { pp->wavelet.sup = sup->getValue(); pp->wavelet.sky = sky->getValue(); pp->wavelet.thres = thres->getValue(); - pp->wavelet.display = display->get_active (); pp->wavelet.chroma = chroma->getValue(); pp->wavelet.chro = chro->getValue(); pp->wavelet.median = median->get_active (); @@ -696,7 +748,6 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) { if (pedited) { pedited->wavelet.enabled = !enabled->get_inconsistent(); pedited->wavelet.avoid = !avoid->get_inconsistent(); - pedited->wavelet.display = !display->get_inconsistent(); pedited->wavelet.median = !median->get_inconsistent(); pedited->wavelet.Lmethod = Lmethod->get_active_row_number() != 8; pedited->wavelet.CLmethod = CLmethod->get_active_row_number() != 3; @@ -1155,6 +1206,7 @@ void Wavelet::adjusterChanged (Adjuster* a, double newval) { } } + void Wavelet::enabledToggled () { if (batchMode) { @@ -1183,6 +1235,74 @@ void Wavelet::enabledToggled () { listener->panelChanged (EvWavEnabled, M("GENERAL_DISABLED")); } } +void Wavelet::expresidTog () { + if (tbresid->get_active ()) { + //residualFrame->setExpanded(true); + //expresid->setExpanded(true); + //hbresid->setExpanded(true); + // residualFrame->show(); + + } + else { + //expresid->setExpanded(false); + + //residualFrame->setExpanded(false); + //residualFrame->hide(); + + } + +} +void Wavelet::expcontrastTog () { + if (tbcontrast->get_active ()) { + levelFrame->show(); + } + else { + levelFrame->hide(); + } +} + +void Wavelet::expchromaTog () { + if (tbchroma->get_active ()) { + chromaFrame->show(); + } + else { + chromaFrame->hide(); + } +} + +void Wavelet::expgamutTog () { + if (tbcontrast->get_active ()) { + controlFrame->show(); + } + else { + controlFrame->hide(); + } +} +void Wavelet::exputilTog () { + if (tbutil->get_active ()) { + utilFrame->show(); + } + else { + utilFrame->hide(); + } +} +void Wavelet::expdisplayTog () { + if (tbdisplay->get_active ()) { + dispFrame->show(); + } + else { + dispFrame->hide(); + } +} +void Wavelet::exptoningTog () { + if (tbtoning->get_active ()) { + toningFrame->show(); + } + else { + toningFrame->hide(); + } +} + void Wavelet::medianToggled () { @@ -1229,38 +1349,7 @@ void Wavelet::avoidToggled () { } } -void Wavelet::displayToggled () { - if (batchMode) { - if (display->get_inconsistent()) { - display->set_inconsistent (false); - displayConn.block (true); - display->set_active (false); - displayConn.block (false); - } - else if (lastdisplay) - display->set_inconsistent (true); - - lastdisplay = display->get_active (); - } - if (display->get_active ()) { - utilFrame->show(); - dispFrame->show(); - } - else { - utilFrame->hide(); - dispFrame->hide(); - - } - /* - if (listener) { - if (enabled->get_active ()) - listener->panelChanged (EvEqldisplay, M("GENERAL_ENABLED")); - else - listener->panelChanged (EvEqldisplay, M("GENERAL_DISABLED")); - } - */ -} void Wavelet::colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) { float R, G, B; diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index dba303664..582ebad4d 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -48,8 +48,22 @@ protected: FlatCurveEditor* ccshape; Gtk::CheckButton * enabled; Gtk::CheckButton * display; + Gtk::CheckButton * displaylevel; + Gtk::CheckButton * displaychro; + Gtk::CheckButton * displaygam; + Gtk::CheckButton * displayres; Gtk::CheckButton * median; Gtk::CheckButton * avoid; + Gtk::ToggleButton * tbresid; + Gtk::ToggleButton * tbcontrast; + Gtk::ToggleButton * tbgamut; + Gtk::ToggleButton * tbchroma; + Gtk::ToggleButton * tbtoning; + Gtk::ToggleButton * tbutil; + Gtk::ToggleButton * tbdisplay; + Gtk::CheckButton * cbresid; + Gtk::Image* igRes; + Adjuster* correction[9]; Adjuster* tiles; Adjuster* rescon; @@ -88,16 +102,27 @@ protected: Gtk::Frame* residualFrame; Gtk::Frame* utilFrame; Gtk::Frame* dispFrame; + Gtk::Frame* levelFrame; + Gtk::Frame* chromaFrame; + Gtk::Frame* controlFrame; Gtk::Label* colLabel; Gtk::Label* interLabel; Gtk::Label* wavLabels; + Gtk::Expander* expcontrast; + Gtk::Expander* expresid; + Gtk::Expander* expgamut; + Gtk::Expander* expchroma; + Gtk::Expander* exptoning; + Gtk::Expander* exputil; + Gtk::Expander* expdisplay; + Gtk::HBox* hbresid; - sigc::connection enaConn, displayConn, medianConn, avoidConn; + sigc::connection enaConn, expConn, medianConn, avoidConn; sigc::connection neutralPressedConn; sigc::connection contrastPlusPressedConn; sigc::connection contrastMinusPressedConn; - bool lastEnabled, lastdisplay, lastmedian, lastavoid; + bool lastEnabled, lastdisplay, lastdisplaygam,lastdisplayres,lastdisplaychro, lastdisplaylevel,lastmedian, lastavoid; int nextnlevel; public: @@ -108,6 +133,16 @@ public: void setEditProvider (EditDataProvider *provider); void autoOpenCurve (); + // virtual Gtk::Expander* getExpander () { return NULL; } + // virtual void setExpanded (bool expanded) {} + // virtual bool getExpanded () { return false; } + + + + /* Gtk::Expander * getExpander() { return expresid; } + void setExpanded (bool expanded) { if (expresid) expresid->set_expanded( expanded ); } + bool getExpanded () { if (expresid) return expresid->get_expanded(); return false; } + */ void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited=NULL); void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited=NULL); void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited=NULL); @@ -117,8 +152,14 @@ public: void adjusterChanged (Adjuster* a, double newval); void enabledToggled (); - void displayToggled (); void medianToggled (); + void expcontrastTog (); + void expresidTog (); + void expdisplayTog (); + void expgamutTog (); + void exputilTog (); + void expchromaTog (); + void exptoningTog (); void avoidToggled (); void neutralPressed (); void contrastPlusPressed ();