Add transition weakening

This commit is contained in:
Desmis
2019-03-24 10:58:05 +01:00
parent 49c954b33e
commit 4c080c8fd5
11 changed files with 81 additions and 5 deletions

View File

@@ -57,10 +57,11 @@ ControlSpotPanel::ControlSpotPanel():
centerX_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CENTER_X"), -1000, 1000, 1, 0))),
centerY_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CENTER_Y"), -1000, 1000, 1, 0))),
circrad_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CIRCRADIUS"), 2, 150, 1, 18))),
transit_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_TRANSIT"), 5, 95, 1, 60))),
transit_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_TRANSITVALUE"), 5, 95, 1, 60))),
thresh_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_THRESDELTAE"), 0.0, 8.0, 0.1, 2.0))),
iter_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_PROXI"), 0.2, 4.0, 0.1, 2.0))),
balan_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BALAN"), 0.3, 1.7, 0.1, 1.0, Gtk::manage(new RTImage("rawtherapee-logo-16.png")), Gtk::manage(new RTImage("circle-white-small.png"))))),
transitweak_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_TRANSITWEAK"), 0.5, 4.0, 0.1, 1.0))),
avoid_(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_AVOID")))),
@@ -227,9 +228,20 @@ ControlSpotPanel::ControlSpotPanel():
ctboxqualitymethod->pack_start(*qualityMethod_);
pack_start(*ctboxqualitymethod);
pack_start(*transit_);
Gtk::Frame* const transitFrame = Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_TRANSIT")));
transitFrame->set_label_align(0.025, 0.5);
transitFrame->set_tooltip_text(M("TP_LOCALLAB_TRANSIT_TOOLTIP"));
ToolParamBlock* const transitBox = Gtk::manage(new ToolParamBlock());
transit_->set_tooltip_text(M("TP_LOCALLAB_TRANSIT_TOOLTIP"));
transitweak_->set_tooltip_text(M("TP_LOCALLAB_TRANSITWEAK_TOOLTIP"));
transit_->setAdjusterListener(this);
transitweak_->setAdjusterListener(this);
transitBox->pack_start(*transit_);
transitBox->pack_start(*transitweak_);
transitFrame->add(*transitBox);
pack_start(*transitFrame);
Gtk::Frame* const artifFrame = Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_ARTIF")));
artifFrame->set_label_align(0.025, 0.5);
@@ -487,6 +499,7 @@ void ControlSpotPanel::load_ControlSpot_param()
thresh_->setValue(static_cast<double>(row[spots_.thresh]));
iter_->setValue(static_cast<double>(row[spots_.iter]));
balan_->setValue(static_cast<double>(row[spots_.balan]));
transitweak_->setValue(static_cast<double>(row[spots_.transitweak]));
avoid_->set_active(row[spots_.avoid]);
}
@@ -875,6 +888,7 @@ void ControlSpotPanel::adjusterChanged(Adjuster* a, double newval)
}
}
if (a == thresh_) {
row[spots_.thresh] = thresh_->getValue();
@@ -899,7 +913,15 @@ void ControlSpotPanel::adjusterChanged(Adjuster* a, double newval)
listener->panelChanged(EvLocallabSpotbalan, balan_->getTextValue());
}
}
if (a == transitweak_) {
row[spots_.transitweak] = transitweak_->getValue();
if (listener) {
listener->panelChanged(EvLocallabSpotTransitweak, transitweak_->getTextValue());
}
}
}
void ControlSpotPanel::avoidChanged()
@@ -965,6 +987,7 @@ void ControlSpotPanel::disableParamlistener(bool cond)
thresh_->block(cond);
iter_->block(cond);
balan_->block(cond);
transitweak_->block(cond);
avoidConn_.block(cond);
}
@@ -990,6 +1013,7 @@ void ControlSpotPanel::setParamEditable(bool cond)
thresh_->set_sensitive(cond);
iter_->set_sensitive(cond);
balan_->set_sensitive(cond);
transitweak_->set_sensitive(cond);
avoid_->set_sensitive(cond);
}
@@ -1695,6 +1719,7 @@ ControlSpotPanel::SpotRow* ControlSpotPanel::getSpot(int id)
r->thresh = row[spots_.thresh];
r->iter = row[spots_.iter];
r->balan = row[spots_.balan];
r->transitweak = row[spots_.transitweak];
r->avoid = row[spots_.avoid];
return r;
@@ -1817,6 +1842,7 @@ void ControlSpotPanel::addControlSpot(SpotRow* newSpot)
row[spots_.thresh] = newSpot->thresh;
row[spots_.iter] = newSpot->iter;
row[spots_.balan] = newSpot->balan;
row[spots_.transitweak] = newSpot->transitweak;
row[spots_.avoid] = newSpot->avoid;
updateParamVisibility();
disableParamlistener(false);
@@ -1861,6 +1887,7 @@ int ControlSpotPanel::updateControlSpot(SpotRow* spot)
row[spots_.thresh] = spot->thresh;
row[spots_.iter] = spot->iter;
row[spots_.balan] = spot->balan;
row[spots_.transitweak] = spot->transitweak;
row[spots_.avoid] = spot->avoid;
updateControlSpotCurve(row);
@@ -1951,6 +1978,7 @@ ControlSpotPanel::SpotEdited* ControlSpotPanel::getEditedStates()
se->thresh = thresh_->getEditedState();
se->iter = iter_->getEditedState();
se->balan = balan_->getEditedState();
se->transitweak = transitweak_->getEditedState();
se->avoid = !avoid_->get_inconsistent();
return se;
@@ -2018,6 +2046,7 @@ void ControlSpotPanel::setEditedStates(SpotEdited* se)
thresh_->setEditedState(se->thresh ? Edited : UnEdited);
iter_->setEditedState(se->iter ? Edited : UnEdited);
balan_->setEditedState(se->balan ? Edited : UnEdited);
transitweak_->setEditedState(se->transitweak ? Edited : UnEdited);
avoid_->set_inconsistent(multiImage && !se->avoid);
// Update Control Spot GUI according to widgets edited states
@@ -2061,6 +2090,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP
thresh_->setDefault(defSpot->thresh);
iter_->setDefault(defSpot->iter);
balan_->setDefault(defSpot->balan);
transitweak_->setDefault(defSpot->transitweak);
// Set default edited states for adjusters
if (!pedited) {
@@ -2078,6 +2108,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP
thresh_->setDefaultEditedState(Irrelevant);
iter_->setDefaultEditedState(Irrelevant);
balan_->setDefaultEditedState(Irrelevant);
transitweak_->setDefaultEditedState(Irrelevant);
} else {
const LocallabParamsEdited::LocallabSpotEdited* defSpotState = new LocallabParamsEdited::LocallabSpotEdited(true);
@@ -2099,6 +2130,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP
thresh_->setDefaultEditedState(defSpotState->thresh ? Edited : UnEdited);
iter_->setDefaultEditedState(defSpotState->iter ? Edited : UnEdited);
balan_->setDefaultEditedState(defSpotState->balan ? Edited : UnEdited);
transitweak_->setDefaultEditedState(defSpotState->transitweak ? Edited : UnEdited);
}
}
@@ -2121,6 +2153,7 @@ void ControlSpotPanel::setBatchMode(bool batchMode)
thresh_->showEditedCB();
iter_->showEditedCB();
balan_->showEditedCB();
transitweak_->showEditedCB();
// Set batch mode for comboBoxText
shape_->append(M("GENERAL_UNCHANGED"));
@@ -2158,6 +2191,7 @@ ControlSpotPanel::ControlSpots::ControlSpots()
add(thresh);
add(iter);
add(balan);
add(transitweak);
add(avoid);
}