From 44984a911b397548e5f58927e0ac23cd5924a227 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 21 Jan 2018 18:03:51 +0100 Subject: [PATCH] Don't set exposure to zero when 'auto levels' is disabled and 'auto matched tone curve' is enabled --- rtengine/improccoordinator.cc | 5 ++++- rtengine/simpleprocess.cc | 6 +++++- rtgui/tonecurve.cc | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index d390d94ca..d3a32140a 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -449,10 +449,13 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) if (params.toneCurve.histmatching) { imgsrc->getAutoMatchedToneCurve(params.toneCurve.curve); + if (params.toneCurve.autoexp) { + params.toneCurve.expcomp = 0.0; + } + params.toneCurve.autoexp = false; params.toneCurve.curveMode = ToneCurveParams::TcMode::FILMLIKE; params.toneCurve.curve2 = { 0 }; - params.toneCurve.expcomp = 0.0; params.toneCurve.brightness = 0; params.toneCurve.contrast = 0; params.toneCurve.black = 0; diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 0cc223da1..45956f262 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -743,14 +743,18 @@ private: if (params.toneCurve.histmatching) { imgsrc->getAutoMatchedToneCurve(params.toneCurve.curve); + if (params.toneCurve.autoexp) { + params.toneCurve.expcomp = 0.0; + } + params.toneCurve.autoexp = false; params.toneCurve.curveMode = ToneCurveParams::TcMode::FILMLIKE; params.toneCurve.curve2 = { 0 }; - params.toneCurve.expcomp = 0.0; params.toneCurve.brightness = 0; params.toneCurve.contrast = 0; params.toneCurve.black = 0; params.toneCurve.hlcompr = 0; + } // at this stage, we can flush the raw data to free up quite an important amount of memory diff --git a/rtgui/tonecurve.cc b/rtgui/tonecurve.cc index 4a25794ff..fd4c0827d 100644 --- a/rtgui/tonecurve.cc +++ b/rtgui/tonecurve.cc @@ -936,7 +936,6 @@ bool ToneCurve::histmatchingComputed() GThreadLock lock; disableListener(); enableAll(); - expcomp->setValue(0); brightness->setValue(0); contrast->setValue(0); black->setValue(0); @@ -947,6 +946,7 @@ bool ToneCurve::histmatchingComputed() } if (autolevels->get_active() ) { + expcomp->setValue(0); autoconn.block(true); autolevels->set_active(false); autoconn.block(false);