Suppressing redundant tools.
This commit is contained in:
@@ -53,14 +53,31 @@ LCurve::LCurve () : ToolPanel(), brAdd(false), contrAdd(false), satAdd(false) {
|
||||
|
||||
pack_start (*curveEditorG, Gtk::PACK_SHRINK, 4);
|
||||
|
||||
//curveEditorG->show();
|
||||
|
||||
brightness->setAdjusterListener (this);
|
||||
contrast->setAdjusterListener (this);
|
||||
saturation->setAdjusterListener (this);
|
||||
|
||||
//channel->signal_changed().connect( sigc::mem_fun(*this, &LCurve::channel) );
|
||||
|
||||
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%
|
||||
pack_start (*Gtk::manage (new Gtk::HSeparator()));
|
||||
|
||||
avoidclip = Gtk::manage (new Gtk::CheckButton (M("TP_LABCURVE_AVOIDCOLORCLIP")));
|
||||
|
||||
pack_start (*avoidclip);
|
||||
pack_start (*Gtk::manage (new Gtk::HSeparator()));
|
||||
|
||||
enablelimiter = Gtk::manage (new Gtk::CheckButton (M("TP_LABCURVE_ENABLESATLIMITER")));
|
||||
pack_start (*enablelimiter);
|
||||
|
||||
saturationlimiter = new Adjuster (M("TP_LABCURVE_SATLIMIT"), 0, 200, 0.1, 100);
|
||||
saturationlimiter->show ();
|
||||
saturationlimiter->reference ();
|
||||
|
||||
//saturation->setAdjusterListener (this);
|
||||
saturationlimiter->setAdjusterListener (this);
|
||||
acconn = avoidclip->signal_toggled().connect( sigc::mem_fun(*this, &LCurve::avoidclip_toggled) );
|
||||
elconn = enablelimiter->signal_toggled().connect( sigc::mem_fun(*this, &LCurve::enablelimiter_toggled) );
|
||||
//%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
}
|
||||
|
||||
@@ -76,6 +93,12 @@ void LCurve::read (const ProcParams* pp, const ParamsEdited* pedited) {
|
||||
brightness->setEditedState (pedited->labCurve.brightness ? Edited : UnEdited);
|
||||
contrast->setEditedState (pedited->labCurve.contrast ? Edited : UnEdited);
|
||||
saturation->setEditedState (pedited->labCurve.saturation ? Edited : UnEdited);
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
saturationlimiter->setEditedState (pedited->labCurve.saturationlimit ? Edited : UnEdited);
|
||||
avoidclip->set_inconsistent (!pedited->labCurve.avoidclip);
|
||||
enablelimiter->set_inconsistent (!pedited->labCurve.enable_saturationlimiter);
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
lshape->setUnChanged (!pedited->labCurve.lcurve);
|
||||
ashape->setUnChanged (!pedited->labCurve.acurve);
|
||||
@@ -86,6 +109,23 @@ void LCurve::read (const ProcParams* pp, const ParamsEdited* pedited) {
|
||||
brightness->setValue (pp->labCurve.brightness);
|
||||
contrast->setValue (pp->labCurve.contrast);
|
||||
saturation->setValue (pp->labCurve.saturation);
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
saturationlimiter->setValue (pp->labCurve.saturationlimit);
|
||||
acconn.block (true);
|
||||
avoidclip->set_active (pp->labCurve.avoidclip);
|
||||
acconn.block (false);
|
||||
elconn.block (true);
|
||||
enablelimiter->set_active (pp->labCurve.enable_saturationlimiter);
|
||||
elconn.block (false);
|
||||
|
||||
removeIfThere (this, saturationlimiter, false);
|
||||
if (enablelimiter->get_active () || enablelimiter->get_inconsistent())
|
||||
pack_start (*saturationlimiter);
|
||||
|
||||
lastACVal = pp->labCurve.avoidclip;
|
||||
lastELVal = pp->labCurve.enable_saturationlimiter;
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
lshape->setCurve (pp->labCurve.lcurve);
|
||||
ashape->setCurve (pp->labCurve.acurve);
|
||||
@@ -100,6 +140,12 @@ void LCurve::write (ProcParams* pp, ParamsEdited* pedited) {
|
||||
pp->labCurve.brightness = brightness->getValue ();
|
||||
pp->labCurve.contrast = (int)contrast->getValue ();
|
||||
pp->labCurve.saturation = (int)saturation->getValue ();
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
pp->labCurve.avoidclip = avoidclip->get_active ();
|
||||
pp->labCurve.enable_saturationlimiter = enablelimiter->get_active ();
|
||||
pp->labCurve.saturationlimit = saturationlimiter->getValue ();
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
pp->labCurve.lcurve = lshape->getCurve ();
|
||||
pp->labCurve.acurve = ashape->getCurve ();
|
||||
@@ -109,6 +155,12 @@ void LCurve::write (ProcParams* pp, ParamsEdited* pedited) {
|
||||
pedited->labCurve.brightness = brightness->getEditedState ();
|
||||
pedited->labCurve.contrast = contrast->getEditedState ();
|
||||
pedited->labCurve.saturation = saturation->getEditedState ();
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
pedited->labCurve.avoidclip = !avoidclip->get_inconsistent();
|
||||
pedited->labCurve.enable_saturationlimiter = !enablelimiter->get_inconsistent();
|
||||
pedited->labCurve.saturationlimit = saturationlimiter->getEditedState ();
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
pedited->labCurve.lcurve = !lshape->isUnChanged ();
|
||||
pedited->labCurve.acurve = !ashape->isUnChanged ();
|
||||
@@ -121,20 +173,77 @@ void LCurve::setDefaults (const ProcParams* defParams, const ParamsEdited* pedit
|
||||
brightness->setDefault (defParams->labCurve.brightness);
|
||||
contrast->setDefault (defParams->labCurve.contrast);
|
||||
saturation->setDefault (defParams->labCurve.saturation);
|
||||
saturationlimiter->setDefault (defParams->labCurve.saturationlimit);
|
||||
|
||||
if (pedited) {
|
||||
brightness->setDefaultEditedState (pedited->labCurve.brightness ? Edited : UnEdited);
|
||||
contrast->setDefaultEditedState (pedited->labCurve.contrast ? Edited : UnEdited);
|
||||
saturation->setDefaultEditedState (pedited->labCurve.saturation ? Edited : UnEdited);
|
||||
saturationlimiter->setDefaultEditedState (pedited->labCurve.saturationlimit ? Edited : UnEdited);
|
||||
|
||||
}
|
||||
else {
|
||||
brightness->setDefaultEditedState (Irrelevant);
|
||||
contrast->setDefaultEditedState (Irrelevant);
|
||||
saturation->setDefaultEditedState (Irrelevant);
|
||||
saturationlimiter->setDefaultEditedState (Irrelevant);
|
||||
}
|
||||
}
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
//Clipping control changed
|
||||
void LCurve::avoidclip_toggled () {
|
||||
|
||||
if (batchMode) {
|
||||
if (avoidclip->get_inconsistent()) {
|
||||
avoidclip->set_inconsistent (false);
|
||||
acconn.block (true);
|
||||
avoidclip->set_active (false);
|
||||
acconn.block (false);
|
||||
}
|
||||
else if (lastACVal)
|
||||
avoidclip->set_inconsistent (true);
|
||||
|
||||
lastACVal = avoidclip->get_active ();
|
||||
}
|
||||
|
||||
if (listener) {
|
||||
if (avoidclip->get_active ())
|
||||
listener->panelChanged (EvLAvoidClip, M("GENERAL_ENABLED"));
|
||||
else
|
||||
listener->panelChanged (EvLAvoidClip, M("GENERAL_DISABLED"));
|
||||
}
|
||||
}
|
||||
|
||||
void LCurve::enablelimiter_toggled () {
|
||||
|
||||
if (batchMode) {
|
||||
if (enablelimiter->get_inconsistent()) {
|
||||
enablelimiter->set_inconsistent (false);
|
||||
elconn.block (true);
|
||||
enablelimiter->set_active (false);
|
||||
elconn.block (false);
|
||||
}
|
||||
else if (lastELVal)
|
||||
enablelimiter->set_inconsistent (true);
|
||||
|
||||
lastELVal = enablelimiter->get_active ();
|
||||
}
|
||||
|
||||
removeIfThere (this, saturationlimiter, false);
|
||||
if (enablelimiter->get_active () || enablelimiter->get_inconsistent())
|
||||
pack_start (*saturationlimiter);
|
||||
|
||||
if (listener) {
|
||||
if (enablelimiter->get_active ())
|
||||
listener->panelChanged (EvLSatLimiter, M("GENERAL_ENABLED"));
|
||||
else
|
||||
listener->panelChanged (EvLSatLimiter, M("GENERAL_DISABLED"));
|
||||
}
|
||||
}
|
||||
//%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
||||
/*
|
||||
* Curve listener
|
||||
*
|
||||
@@ -170,6 +279,8 @@ void LCurve::adjusterChanged (Adjuster* a, double newval) {
|
||||
listener->panelChanged (EvLContrast, costr);
|
||||
else if (a==saturation)
|
||||
listener->panelChanged (EvLSaturation, costr);
|
||||
else if (a==saturationlimiter)
|
||||
listener->panelChanged (EvLSatLimiter, costr);
|
||||
}
|
||||
|
||||
//attempt to hide unused channels
|
||||
@@ -198,6 +309,7 @@ void LCurve::setBatchMode (bool batchMode) {
|
||||
brightness->showEditedCB ();
|
||||
contrast->showEditedCB ();
|
||||
saturation->showEditedCB ();
|
||||
saturationlimiter->showEditedCB ();
|
||||
|
||||
curveEditorG->setBatchMode (batchMode);
|
||||
}
|
||||
@@ -210,6 +322,7 @@ void LCurve::setAdjusterBehavior (bool bradd, bool contradd, bool satadd) {
|
||||
contrast->setLimits (-100, 100, 1, 0);
|
||||
if ((!satAdd && satadd) || (satAdd && !satadd))
|
||||
saturation->setLimits (-100, 100, 1, 0);
|
||||
|
||||
|
||||
brAdd = bradd;
|
||||
contrAdd = contradd;
|
||||
|
Reference in New Issue
Block a user