Auto-open curves on image reopen; see issue #724
This commit is contained in:
@@ -150,3 +150,16 @@ void CurveEditor::updateBackgroundHistogram (LUTu & hist) {
|
||||
// Then call the curve editor group to eventually update the histogram
|
||||
subGroup->updateBackgroundHistogram (this);
|
||||
}
|
||||
|
||||
// Open up the curve if it has modifications and it's not already opened
|
||||
// Returns: is it non-linear?
|
||||
bool CurveEditor::openIfNonlinear() {
|
||||
bool nonLinear = tempCurve[0] != subGroup->getValLinear();
|
||||
|
||||
if (nonLinear && !curveType->get_active()) {
|
||||
// Will toggle the event doing the display
|
||||
curveType->set_active( true );
|
||||
}
|
||||
|
||||
return nonLinear;
|
||||
}
|
@@ -72,6 +72,9 @@ class CurveEditor {
|
||||
bool isUnChanged ();
|
||||
void setUnChanged (bool uc);
|
||||
void updateBackgroundHistogram (LUTu & hist);
|
||||
|
||||
bool openIfNonlinear(); // Open up the curve if it has modifications and it's not already opened
|
||||
|
||||
void setCurve (const std::vector<double>& p);
|
||||
virtual std::vector<double> getCurve () = 0;
|
||||
};
|
||||
|
@@ -95,6 +95,7 @@ protected:
|
||||
|
||||
public:
|
||||
int getValUnchanged() { return valUnchanged; }
|
||||
int getValLinear() { return valLinear; }
|
||||
virtual void updateBackgroundHistogram (CurveEditor* ce) {}
|
||||
virtual void setColorProvider (ColorProvider* p) = 0;
|
||||
|
||||
|
@@ -64,6 +64,11 @@ void HSVEqualizer::read (const ProcParams* pp, const ParamsEdited* pedited) {
|
||||
sshape->setCurve (pp->hsvequalizer.scurve);
|
||||
vshape->setCurve (pp->hsvequalizer.vcurve);
|
||||
|
||||
// Open up the first curve if selected
|
||||
bool active = hshape->openIfNonlinear();
|
||||
if (!active) sshape->openIfNonlinear();
|
||||
if (!active) vshape->openIfNonlinear();
|
||||
|
||||
enableListener ();
|
||||
}
|
||||
|
||||
|
@@ -132,6 +132,10 @@ void LCurve::read (const ProcParams* pp, const ParamsEdited* pedited) {
|
||||
ashape->setCurve (pp->labCurve.acurve);
|
||||
bshape->setCurve (pp->labCurve.bcurve);
|
||||
|
||||
// Open up the first curve if selected
|
||||
bool active = lshape->openIfNonlinear();
|
||||
if (!active) ashape->openIfNonlinear();
|
||||
if (!active) bshape->openIfNonlinear();
|
||||
|
||||
enableListener ();
|
||||
}
|
||||
|
@@ -133,6 +133,8 @@ void ToneCurve::read (const ProcParams* pp, const ParamsEdited* pedited) {
|
||||
saturation->setValue (pp->toneCurve.saturation);
|
||||
shape->setCurve (pp->toneCurve.curve);
|
||||
|
||||
shape->openIfNonlinear();
|
||||
|
||||
enableListener ();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user