Improve mask with deltaE image and scope

This commit is contained in:
Desmis
2019-10-20 08:09:27 +02:00
parent cf7e0b5ad6
commit 00b7c809c4
12 changed files with 316 additions and 22 deletions

View File

@@ -68,6 +68,7 @@ ControlSpotPanel::ControlSpotPanel():
balan_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BALAN"), 0.2, 2.5, 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, 10.0, 0.1, 1.0))),
transitgrad_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_TRANSITGRAD"), -1.0, 1.0, 0.01, 0.0))),
scopemask_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SCOPEMASK"), 0, 100, 1, 50))),
avoid_(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_AVOID")))),
laplac_(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_LAPLACC")))),
@@ -245,9 +246,11 @@ ControlSpotPanel::ControlSpotPanel():
if(showtooltip) transit_->set_tooltip_text(M("TP_LOCALLAB_TRANSIT_TOOLTIP"));
if(showtooltip) transitweak_->set_tooltip_text(M("TP_LOCALLAB_TRANSITWEAK_TOOLTIP"));
if(showtooltip) transitgrad_->set_tooltip_text(M("TP_LOCALLAB_TRANSITGRAD_TOOLTIP"));
if(showtooltip) scopemask_->set_tooltip_text(M("TP_LOCALLAB_SCOPEMASK_TOOLTIP"));
transit_->setAdjusterListener(this);
transitweak_->setAdjusterListener(this);
transitgrad_->setAdjusterListener(this);
scopemask_->setAdjusterListener(this);
transitBox->pack_start(*transit_);
transitBox->pack_start(*transitweak_);
@@ -273,12 +276,21 @@ ControlSpotPanel::ControlSpotPanel():
avoidConn_ = avoid_->signal_toggled().connect(
sigc::mem_fun(*this, &ControlSpotPanel::avoidChanged));
pack_start(*avoid_);
Gtk::Frame* const maskFrame = Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_MASFRAME")));
maskFrame->set_label_align(0.025, 0.5);
if(showtooltip) maskFrame->set_tooltip_text(M("TP_LOCALLAB_MASFRAME_TOOLTIP"));
ToolParamBlock* const maskBox = Gtk::manage(new ToolParamBlock());
laplacConn_ = laplac_->signal_toggled().connect(
sigc::mem_fun(*this, &ControlSpotPanel::laplacChanged));
pack_start(*laplac_);
maskBox->pack_start(*laplac_);
deltaeConn_ = deltae_->signal_toggled().connect(
sigc::mem_fun(*this, &ControlSpotPanel::deltaeChanged));
// pack_start(*deltae_);
maskBox->pack_start(*deltae_);
maskBox->pack_start(*scopemask_);
maskFrame->add(*maskBox);
pack_start(*maskFrame);
show_all();
@@ -582,6 +594,7 @@ void ControlSpotPanel::load_ControlSpot_param()
balan_->setValue((double)row[spots_.balan]);
transitweak_->setValue((double)row[spots_.transitweak]);
transitgrad_->setValue((double)row[spots_.transitgrad]);
scopemask_->setValue((double)row[spots_.scopemask]);
avoid_->set_active(row[spots_.avoid]);
laplac_->set_active(row[spots_.laplac]);
deltae_->set_active(row[spots_.deltae]);
@@ -1013,6 +1026,14 @@ void ControlSpotPanel::adjusterChanged(Adjuster* a, double newval)
}
}
if (a == scopemask_) {
row[spots_.scopemask] = scopemask_->getIntValue();
if (listener) {
listener->panelChanged(EvLocallabSpotscopemask, scopemask_->getTextValue());
}
}
}
void ControlSpotPanel::avoidChanged()
@@ -1151,6 +1172,7 @@ void ControlSpotPanel::disableParamlistener(bool cond)
balan_->block(cond);
transitweak_->block(cond);
transitgrad_->block(cond);
scopemask_->block(cond);
avoidConn_.block(cond);
laplacConn_.block(cond);
deltaeConn_.block(cond);
@@ -1180,6 +1202,7 @@ void ControlSpotPanel::setParamEditable(bool cond)
balan_->set_sensitive(cond);
transitweak_->set_sensitive(cond);
transitgrad_->set_sensitive(cond);
scopemask_->set_sensitive(cond);
avoid_->set_sensitive(cond);
laplac_->set_sensitive(cond);
deltae_->set_sensitive(cond);
@@ -1815,6 +1838,7 @@ ControlSpotPanel::SpotRow* ControlSpotPanel::getSpot(const int id)
r->balan = row[spots_.balan];
r->transitweak = row[spots_.transitweak];
r->transitgrad = row[spots_.transitgrad];
r->scopemask = row[spots_.scopemask];
r->avoid = row[spots_.avoid];
r->laplac = row[spots_.laplac];
r->deltae = row[spots_.deltae];
@@ -1943,6 +1967,7 @@ void ControlSpotPanel::addControlSpot(SpotRow* newSpot)
row[spots_.balan] = newSpot->balan;
row[spots_.transitweak] = newSpot->transitweak;
row[spots_.transitgrad] = newSpot->transitgrad;
row[spots_.scopemask] = newSpot->scopemask;
row[spots_.avoid] = newSpot->avoid;
row[spots_.laplac] = newSpot->laplac;
row[spots_.deltae] = newSpot->deltae;
@@ -1990,6 +2015,7 @@ int ControlSpotPanel::updateControlSpot(SpotRow* spot)
row[spots_.balan] = spot->balan;
row[spots_.transitweak] = spot->transitweak;
row[spots_.transitgrad] = spot->transitgrad;
row[spots_.scopemask] = spot->scopemask;
row[spots_.avoid] = spot->avoid;
row[spots_.laplac] = spot->laplac;
row[spots_.deltae] = spot->deltae;
@@ -2083,6 +2109,7 @@ ControlSpotPanel::SpotEdited* ControlSpotPanel::getEditedStates()
se->balan = balan_->getEditedState();
se->transitweak = transitweak_->getEditedState();
se->transitgrad = transitgrad_->getEditedState();
se->scopemask = scopemask_->getEditedState();
se->avoid = !avoid_->get_inconsistent();
se->laplac = !laplac_->get_inconsistent();
se->deltae = !deltae_->get_inconsistent();
@@ -2154,6 +2181,7 @@ void ControlSpotPanel::setEditedStates(SpotEdited* se)
balan_->setEditedState(se->balan ? Edited : UnEdited);
transitweak_->setEditedState(se->transitweak ? Edited : UnEdited);
transitgrad_->setEditedState(se->transitgrad ? Edited : UnEdited);
scopemask_->setEditedState(se->scopemask ? Edited : UnEdited);
avoid_->set_inconsistent(multiImage && !se->avoid);
laplac_->set_inconsistent(multiImage && !se->laplac);
deltae_->set_inconsistent(multiImage && !se->deltae);
@@ -2201,6 +2229,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP
balan_->setDefault(defSpot->balan);
transitweak_->setDefault(defSpot->transitweak);
transitgrad_->setDefault(defSpot->transitgrad);
scopemask_->setDefault(defSpot->scopemask);
// Set default edited states for adjusters
if (!pedited) {
@@ -2220,6 +2249,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP
balan_->setDefaultEditedState(Irrelevant);
transitweak_->setDefaultEditedState(Irrelevant);
transitgrad_->setDefaultEditedState(Irrelevant);
scopemask_->setDefaultEditedState(Irrelevant);
} else {
const LocallabParamsEdited::LocallabSpotEdited* defSpotState = new LocallabParamsEdited::LocallabSpotEdited(true);
@@ -2243,6 +2273,7 @@ void ControlSpotPanel::setDefaults(const rtengine::procparams::ProcParams * defP
balan_->setDefaultEditedState(defSpotState->balan ? Edited : UnEdited);
transitweak_->setDefaultEditedState(defSpotState->transitweak ? Edited : UnEdited);
transitgrad_->setDefaultEditedState(defSpotState->transitgrad ? Edited : UnEdited);
scopemask_->setDefaultEditedState(defSpotState->scopemask ? Edited : UnEdited);
}
}
@@ -2267,6 +2298,7 @@ void ControlSpotPanel::setBatchMode(bool batchMode)
balan_->showEditedCB();
transitweak_->showEditedCB();
transitgrad_->showEditedCB();
scopemask_->showEditedCB();
// Set batch mode for comboBoxText
shape_->append(M("GENERAL_UNCHANGED"));
@@ -2306,6 +2338,7 @@ ControlSpotPanel::ControlSpots::ControlSpots()
add(balan);
add(transitweak);
add(transitgrad);
add(scopemask);
add(avoid);
add(laplac);
add(deltae);