Improve GUI Ciecam - disable setDelay and throwOnButtonRelease

This commit is contained in:
Desmis 2021-01-05 09:12:30 +01:00
parent 5df1478320
commit 66908b6c5a
2 changed files with 40 additions and 38 deletions

View File

@ -1448,7 +1448,7 @@ ColorAppearanceParams::ColorAppearanceParams() :
gamut(true), gamut(true),
datacie(false), datacie(false),
tonecie(false), tonecie(false),
tempout(5000), tempout(5003),
autotempout(true), autotempout(true),
ybout(18), ybout(18),
greenout(1.0), greenout(1.0),

View File

@ -50,12 +50,12 @@ static double wbSlider2Temp (double sval)
// slider range: 0 - 10000 // slider range: 0 - 10000
double temp; double temp;
if (sval <= 5000) { if (sval <= 5003) {
// linear below center-temp // linear below center-temp
temp = MINTEMP0 + (sval / 5000.0) * (CENTERTEMP0 - MINTEMP0); temp = MINTEMP0 + (sval / 5003.0) * (CENTERTEMP0 - MINTEMP0);
} else { } else {
const double slope = (double) (CENTERTEMP0 - MINTEMP0) / (MAXTEMP0 - CENTERTEMP0); const double slope = (double) (CENTERTEMP0 - MINTEMP0) / (MAXTEMP0 - CENTERTEMP0);
double x = (sval - 5000) / 5000; // x 0..1 double x = (sval - 5003) / 5003; // x 0..1
double y = x * slope + (1.0 - slope) * pow (x, 4.0); double y = x * slope + (1.0 - slope) * pow (x, 4.0);
//double y = pow(x, 4.0); //double y = pow(x, 4.0);
temp = CENTERTEMP0 + y * (MAXTEMP0 - CENTERTEMP0); temp = CENTERTEMP0 + y * (MAXTEMP0 - CENTERTEMP0);
@ -162,7 +162,7 @@ static double wbTemp2Slider (double temp)
double sval; double sval;
if (temp <= CENTERTEMP0) { if (temp <= CENTERTEMP0) {
sval = ((temp - MINTEMP0) / (CENTERTEMP0 - MINTEMP0)) * 5000.0; sval = ((temp - MINTEMP0) / (CENTERTEMP0 - MINTEMP0)) * 5003.0;
} else { } else {
const double slope = (double) (CENTERTEMP0 - MINTEMP0) / (MAXTEMP0 - CENTERTEMP0); const double slope = (double) (CENTERTEMP0 - MINTEMP0) / (MAXTEMP0 - CENTERTEMP0);
const double y = (temp - CENTERTEMP0) / (MAXTEMP0 - CENTERTEMP0); const double y = (temp - CENTERTEMP0) / (MAXTEMP0 - CENTERTEMP0);
@ -175,7 +175,7 @@ static double wbTemp2Slider (double temp)
for (;;) { for (;;) {
double y1 = x * slope + (1.0 - slope) * pow (x, 4.0); double y1 = x * slope + (1.0 - slope) * pow (x, 4.0);
if (5000 * fabs (y1 - y) < 0.1) { if (5003 * fabs (y1 - y) < 0.1) {
break; break;
} }
@ -196,7 +196,7 @@ static double wbTemp2Slider (double temp)
} }
} }
sval = 5000.0 + x * 5000.0; sval = 5003.0 + x * 5003.0;
} }
if (sval < 0) { if (sval < 0) {
@ -279,10 +279,11 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance"
degree = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 90.)); degree = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 90.));
degree->set_tooltip_markup (M ("TP_COLORAPP_DEGREE_TOOLTIP")); degree->set_tooltip_markup (M ("TP_COLORAPP_DEGREE_TOOLTIP"));
degree->setAdjusterListener(this);
degree->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // degree->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
degree->throwOnButtonRelease(); // degree->throwOnButtonRelease();
degree->addAutoButton (M ("TP_COLORAPP_CAT02ADAPTATION_TOOLTIP")); degree->addAutoButton (M ("TP_COLORAPP_CAT02ADAPTATION_TOOLTIP"));
p1VBox->pack_start (*degree); p1VBox->pack_start (*degree);
@ -364,19 +365,19 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance"
// adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), 0.01, 16384., 0.001, 2000.)); // EV -7 ==> EV 17 // adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), 0.01, 16384., 0.001, 2000.)); // EV -7 ==> EV 17
adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), MINLA0, MAXLA0, 0.01, 1997.4, NULL, NULL, &wbSlider2la, &wbla2Slider)); adapscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), MINLA0, MAXLA0, 0.01, 1997.4, NULL, NULL, &wbSlider2la, &wbla2Slider));
adapscen->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // adapscen->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
adapscen->set_tooltip_markup (M ("TP_COLORAPP_ADAPSCEN_TOOLTIP")); adapscen->set_tooltip_markup (M ("TP_COLORAPP_ADAPSCEN_TOOLTIP"));
adapscen->throwOnButtonRelease(); // adapscen->throwOnButtonRelease();
adapscen->addAutoButton(); adapscen->addAutoButton();
p1VBox->pack_start (*adapscen); p1VBox->pack_start (*adapscen);
ybscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_MEANLUMINANCE"), 1, 90, 1, 18)); ybscen = Gtk::manage (new Adjuster (M ("TP_COLORAPP_MEANLUMINANCE"), 1, 90, 1, 18));
ybscen->set_tooltip_markup (M ("TP_COLORAPP_YBSCEN_TOOLTIP")); ybscen->set_tooltip_markup (M ("TP_COLORAPP_YBSCEN_TOOLTIP"));
ybscen->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // ybscen->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
ybscen->throwOnButtonRelease(); // ybscen->throwOnButtonRelease();
ybscen->addAutoButton(); ybscen->addAutoButton();
p1VBox->pack_start (*ybscen); p1VBox->pack_start (*ybscen);
@ -423,76 +424,77 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance"
p2VBox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_EXPAND_WIDGET, 4); p2VBox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_EXPAND_WIDGET, 4);
jlight = Gtk::manage (new Adjuster (M ("TP_COLORAPP_LIGHT"), -100.0, 100.0, 0.1, 0.)); jlight = Gtk::manage (new Adjuster (M ("TP_COLORAPP_LIGHT"), -100.0, 100.0, 0.1, 0.));
jlight->setAdjusterListener (this);
jlight->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // jlight->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
jlight->throwOnButtonRelease(); // jlight->throwOnButtonRelease();
jlight->set_tooltip_markup (M ("TP_COLORAPP_LIGHT_TOOLTIP")); jlight->set_tooltip_markup (M ("TP_COLORAPP_LIGHT_TOOLTIP"));
p2VBox->pack_start (*jlight); p2VBox->pack_start (*jlight);
qbright = Gtk::manage (new Adjuster (M ("TP_COLORAPP_BRIGHT"), -100.0, 100.0, 0.1, 0.)); qbright = Gtk::manage (new Adjuster (M ("TP_COLORAPP_BRIGHT"), -100.0, 100.0, 0.1, 0.));
qbright->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // qbright->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
qbright->throwOnButtonRelease(); // qbright->throwOnButtonRelease();
qbright->set_tooltip_markup (M ("TP_COLORAPP_BRIGHT_TOOLTIP")); qbright->set_tooltip_markup (M ("TP_COLORAPP_BRIGHT_TOOLTIP"));
p2VBox->pack_start (*qbright); p2VBox->pack_start (*qbright);
chroma = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CHROMA"), -100.0, 100.0, 0.1, 0.)); chroma = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CHROMA"), -100.0, 100.0, 0.1, 0.));
chroma->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // chroma->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
chroma->throwOnButtonRelease(); // chroma->throwOnButtonRelease();
chroma->set_tooltip_markup (M ("TP_COLORAPP_CHROMA_TOOLTIP")); chroma->set_tooltip_markup (M ("TP_COLORAPP_CHROMA_TOOLTIP"));
p2VBox->pack_start (*chroma); p2VBox->pack_start (*chroma);
schroma = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CHROMA_S"), -100.0, 100.0, 0.1, 0.)); schroma = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CHROMA_S"), -100.0, 100.0, 0.1, 0.));
schroma->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // schroma->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
schroma->throwOnButtonRelease(); // schroma->throwOnButtonRelease();
schroma->set_tooltip_markup (M ("TP_COLORAPP_CHROMA_S_TOOLTIP")); schroma->set_tooltip_markup (M ("TP_COLORAPP_CHROMA_S_TOOLTIP"));
p2VBox->pack_start (*schroma); p2VBox->pack_start (*schroma);
mchroma = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CHROMA_M"), -100.0, 100.0, 0.1, 0.)); mchroma = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CHROMA_M"), -100.0, 100.0, 0.1, 0.));
mchroma->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // mchroma->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
mchroma->throwOnButtonRelease(); // mchroma->throwOnButtonRelease();
mchroma->set_tooltip_markup (M ("TP_COLORAPP_CHROMA_M_TOOLTIP")); mchroma->set_tooltip_markup (M ("TP_COLORAPP_CHROMA_M_TOOLTIP"));
p2VBox->pack_start (*mchroma); p2VBox->pack_start (*mchroma);
rstprotection = Gtk::manage ( new Adjuster (M ("TP_COLORAPP_RSTPRO"), 0., 100., 0.1, 0.) ); rstprotection = Gtk::manage ( new Adjuster (M ("TP_COLORAPP_RSTPRO"), 0., 100., 0.1, 0.) );
rstprotection->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // rstprotection->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
rstprotection->throwOnButtonRelease(); // rstprotection->throwOnButtonRelease();
rstprotection->set_tooltip_markup (M ("TP_COLORAPP_RSTPRO_TOOLTIP")); rstprotection->set_tooltip_markup (M ("TP_COLORAPP_RSTPRO_TOOLTIP"));
p2VBox->pack_start (*rstprotection); p2VBox->pack_start (*rstprotection);
contrast = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CONTRAST"), -100.0, 100.0, 0.1, 0.)); contrast = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CONTRAST"), -100.0, 100.0, 0.1, 0.));
contrast->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // contrast->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
contrast->throwOnButtonRelease(); // contrast->throwOnButtonRelease();
contrast->set_tooltip_markup (M ("TP_COLORAPP_CONTRAST_TOOLTIP")); contrast->set_tooltip_markup (M ("TP_COLORAPP_CONTRAST_TOOLTIP"));
p2VBox->pack_start (*contrast); p2VBox->pack_start (*contrast);
qcontrast = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CONTRAST_Q"), -100.0, 100.0, 0.1, 0.)); qcontrast = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CONTRAST_Q"), -100.0, 100.0, 0.1, 0.));
qcontrast->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // qcontrast->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
qcontrast->throwOnButtonRelease(); // qcontrast->throwOnButtonRelease();
qcontrast->set_tooltip_markup (M ("TP_COLORAPP_CONTRAST_Q_TOOLTIP")); qcontrast->set_tooltip_markup (M ("TP_COLORAPP_CONTRAST_Q_TOOLTIP"));
p2VBox->pack_start (*qcontrast); p2VBox->pack_start (*qcontrast);
colorh = Gtk::manage (new Adjuster (M ("TP_COLORAPP_HUE"), -100.0, 100.0, 0.1, 0.)); colorh = Gtk::manage (new Adjuster (M ("TP_COLORAPP_HUE"), -100.0, 100.0, 0.1, 0.));
colorh->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // colorh->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
colorh->throwOnButtonRelease(); // colorh->throwOnButtonRelease();
colorh->set_tooltip_markup (M ("TP_COLORAPP_HUE_TOOLTIP")); colorh->set_tooltip_markup (M ("TP_COLORAPP_HUE_TOOLTIP"));
p2VBox->pack_start (*colorh); p2VBox->pack_start (*colorh);
@ -639,9 +641,9 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance"
// adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), 0.1, 16384., 0.1, 16.)); // adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), 0.1, 16384., 0.1, 16.));
adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), MINLA0, MAXLA0, 0.01, 16, NULL, NULL, &wbSlider2la, &wbla2Slider)); adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ABSOLUTELUMINANCE"), MINLA0, MAXLA0, 0.01, 16, NULL, NULL, &wbSlider2la, &wbla2Slider));
adaplum->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // adaplum->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
adaplum->throwOnButtonRelease(); // adaplum->throwOnButtonRelease();
adaplum->set_tooltip_markup (M ("TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP")); adaplum->set_tooltip_markup (M ("TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP"));
p3VBox->pack_start (*adaplum); p3VBox->pack_start (*adaplum);
@ -650,9 +652,9 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance"
degreeout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 90.)); degreeout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 90.));
degreeout->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // degreeout->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
degreeout->throwOnButtonRelease(); // degreeout->throwOnButtonRelease();
degreeout->set_tooltip_markup (M ("TP_COLORAPP_DEGREOUT_TOOLTIP")); degreeout->set_tooltip_markup (M ("TP_COLORAPP_DEGREOUT_TOOLTIP"));
degreeout->addAutoButton (M ("TP_COLORAPP_CAT02ADAPTATION_TOOLTIP")); degreeout->addAutoButton (M ("TP_COLORAPP_CAT02ADAPTATION_TOOLTIP"));
@ -669,7 +671,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance"
ybout->set_tooltip_markup (M ("TP_COLORAPP_YBOUT_TOOLTIP")); ybout->set_tooltip_markup (M ("TP_COLORAPP_YBOUT_TOOLTIP"));
tempout->set_tooltip_markup (M ("TP_COLORAPP_TEMP2_TOOLTIP")); tempout->set_tooltip_markup (M ("TP_COLORAPP_TEMP2_TOOLTIP"));
tempout->throwOnButtonRelease(); // tempout->throwOnButtonRelease();
tempout->addAutoButton (M ("TP_COLORAPP_TEMPOUT_TOOLTIP")); tempout->addAutoButton (M ("TP_COLORAPP_TEMPOUT_TOOLTIP"));
tempout->show(); tempout->show();
@ -715,9 +717,9 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance"
*/ */
badpixsl = Gtk::manage (new Adjuster (M ("TP_COLORAPP_BADPIXSL"), 0, 2, 1, 0)); badpixsl = Gtk::manage (new Adjuster (M ("TP_COLORAPP_BADPIXSL"), 0, 2, 1, 0));
badpixsl->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay)); // badpixsl->setDelay(std::max(options.adjusterMinDelay, options.adjusterMaxDelay));
badpixsl->throwOnButtonRelease(); // badpixsl->throwOnButtonRelease();
badpixsl->set_tooltip_markup (M ("TP_COLORAPP_BADPIXSL_TOOLTIP")); badpixsl->set_tooltip_markup (M ("TP_COLORAPP_BADPIXSL_TOOLTIP"));
pack_start (*badpixsl, Gtk::PACK_SHRINK); pack_start (*badpixsl, Gtk::PACK_SHRINK);