Locked red and blue exponents by default in the GUI, added CheckButton to unlock them.

This commit is contained in:
rom9
2019-06-14 22:14:24 +02:00
parent c819cb63a2
commit d01f78864c
3 changed files with 34 additions and 7 deletions

View File

@@ -1639,9 +1639,11 @@ TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard
TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points
TP_EXPOS_WHITEPOINT_LABEL;Raw White Points
TP_FILMNEGATIVE_BLUE;Blue exponent
TP_FILMNEGATIVE_GREEN;Green exponent
TP_FILMNEGATIVE_GREEN;Green exponent (lead)
TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked.
TP_FILMNEGATIVE_LABEL;Film Negative
TP_FILMNEGATIVE_LOCKCHANNELS;Lock exponent ratios
TP_FILMNEGATIVE_LOCKCHANNELS_TOOLTIP;Unlock to adjust channel exponents independently. This allows to adapt to the color characteristics of different film types.
TP_FILMNEGATIVE_PICK;Pick white and black spots
TP_FILMNEGATIVE_RED;Red exponent
TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots

View File

@@ -49,6 +49,9 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI
greenExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_GREEN"), 2.0);
blueExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_BLUE"), 1.72);
redExp->set_sensitive(false);
blueExp->set_sensitive(false);
redRatio = redExp->getValue() / greenExp->getValue();
blueRatio = blueExp->getValue() / greenExp->getValue();
@@ -56,6 +59,10 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI
EvFilmNegativeEnabled = m->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED");
EvFilmNegativeExponents = m->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS");
lockChannels = Gtk::manage (new Gtk::CheckButton (M("TP_FILMNEGATIVE_LOCKCHANNELS")));
lockChannels->set_tooltip_text(M("TP_FILMNEGATIVE_LOCKCHANNELS_TOOLTIP"));
lockChannels->set_active (true);
spotgrid = Gtk::manage(new Gtk::Grid());
spotgrid->get_style_context()->add_class("grid-spacing");
@@ -86,11 +93,13 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI
// spotgrid->attach (*slab, 1, 0, 1, 1);
// spotgrid->attach (*wbsizehelper, 2, 0, 1, 1);
pack_start (*lockChannels, Gtk::PACK_SHRINK, 0);
pack_start (*redExp, Gtk::PACK_SHRINK, 0);
pack_start (*greenExp, Gtk::PACK_SHRINK, 0);
pack_start (*blueExp, Gtk::PACK_SHRINK, 0);
pack_start (*spotgrid, Gtk::PACK_SHRINK, 0 );
lockChannels->signal_toggled().connect( sigc::mem_fun(*this, &FilmNegative::lockChannelsToggled) );
spotbutton->signal_toggled().connect( sigc::mem_fun(*this, &FilmNegative::editToggled) );
// spotsize->signal_changed().connect( sigc::mem_fun(*this, &WhiteBalance::spotSizeChanged) );
@@ -191,6 +200,12 @@ void FilmNegative::editToggled ()
}
}
void FilmNegative::lockChannelsToggled ()
{
bool unlocked = !lockChannels->get_active();
redExp->set_sensitive(unlocked);
blueExp->set_sensitive(unlocked);
}
void FilmNegative::read (const ProcParams* pp, const ParamsEdited* pedited)
{
@@ -245,12 +260,18 @@ void FilmNegative::setDefaults (const ProcParams* defParams, const ParamsEdited*
void FilmNegative::setBatchMode (bool batchMode)
{
if(batchMode) {
spotConn.disconnect();
lockChannelsConn.disconnect();
removeIfThere(this, spotgrid, false);
removeIfThere(this, lockChannels, false);
redExp->set_sensitive(true);
blueExp->set_sensitive(true);
ToolPanel::setBatchMode (batchMode);
redExp->showEditedCB ();
greenExp->showEditedCB ();
blueExp->showEditedCB ();
}
}
bool FilmNegative::mouseOver(int modifierKey)

View File

@@ -50,6 +50,9 @@ private:
Adjuster* greenExp;
Adjuster* blueExp;
Gtk::CheckButton* lockChannels;
sigc::connection lockChannelsConn;
Gtk::Grid* spotgrid;
Gtk::ToggleButton* spotbutton;
sigc::connection spotConn;
@@ -57,6 +60,7 @@ private:
double redRatio, blueRatio;
void editToggled ();
void lockChannelsToggled ();
public: