Change checkbox short circuit to method
This commit is contained in:
parent
d84b9ec0f9
commit
0de7b5bacf
@ -1034,6 +1034,7 @@ HISTORY_MSG_793;Local - SH TRC gamma
|
||||
HISTORY_MSG_794;Local - SH TRC slope
|
||||
HISTORY_MSG_795;Local - Mask save restore image
|
||||
HISTORY_MSG_796;Local - Recursive references
|
||||
HISTORY_MSG_797;Local - Merge and Masks method
|
||||
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
||||
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
||||
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
||||
@ -2149,7 +2150,11 @@ TP_LOCALLAB_LMASK_LEVEL_TOOLTIP;Give priority to action on midtones and high lig
|
||||
TP_LOCALLAB_SAVREST;Save - Restore Current Image
|
||||
TP_LOCALLAB_SCOPEMASK;Scope Mask DeltaE Image
|
||||
TP_LOCALLAB_SCOPEMASK_TOOLTIP;Enabled if Mask DeltaE Image is enabled.\nLow values avoid retouching selected area
|
||||
TP_LOCALLAB_MASFRAME;Mask
|
||||
TP_LOCALLAB_MASFRAME;Mask and Merge
|
||||
TP_LOCALLAB_MERGETYPE;Merge image and mask
|
||||
TP_LOCALLAB_MERGENONE;None
|
||||
TP_LOCALLAB_MERGEONE;Short Curves 'L' Mask
|
||||
TP_LOCALLAB_MERGETWO;Original
|
||||
TP_LOCALLAB_MASFRAME_TOOLTIP;For all masks.\nTake into account deltaE image to avoid retouching the selection area when sliders gamma mask, slope mask, chroma mask and contrast curves and levels contrasts curves are used.\nDisabled in Inverse
|
||||
TP_LOCALLAB_WAMASKCOL;Mask Wavelet level
|
||||
TP_LOCALLAB_CSTHRESHOLDBLUR;Mask Wavelet level
|
||||
|
@ -194,7 +194,7 @@ public:
|
||||
bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm, int shado, float amountcd, float anchorcd,
|
||||
LUTf & lmasklocalcurve, bool & localmaskutili,
|
||||
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr,
|
||||
bool shortcu, bool delt, const float hueref, const float chromaref, const float lumaref,
|
||||
int shortcu, bool delt, const float hueref, const float chromaref, const float lumaref,
|
||||
float maxdE, float mindE, float maxdElim, float mindElim, float iterat, float limscope, int scope);
|
||||
|
||||
void deltaEforMask(float **rdE, int bfw, int bfh, LabImage* bufcolorig, const float hueref, const float chromaref, const float lumaref,
|
||||
|
@ -341,6 +341,7 @@ struct local_params {
|
||||
double expcomp;
|
||||
float expchroma;
|
||||
int excmet;
|
||||
int mergemet;
|
||||
int war;
|
||||
float adjch;
|
||||
int shapmet;
|
||||
@ -584,6 +585,14 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.excmet = 1;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(sp).mergeMethod == "none") {
|
||||
lp.mergemet = 0;
|
||||
} else if (locallab.spots.at(sp).mergeMethod == "short") {
|
||||
lp.mergemet = 1;
|
||||
} else if (locallab.spots.at(sp).mergeMethod == "orig") {
|
||||
lp.mergemet = 2;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(sp).shape == "ELI") {
|
||||
lp.shapmet = 0;
|
||||
} else if (locallab.spots.at(sp).shape == "RECT") {
|
||||
@ -3140,7 +3149,7 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int
|
||||
bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm, int shado, float amountcd, float anchorcd,
|
||||
LUTf & lmasklocalcurve, bool & localmaskutili,
|
||||
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr,
|
||||
bool shortcu, bool delt, const float hueref, const float chromaref, const float lumaref,
|
||||
int shortcu, bool delt, const float hueref, const float chromaref, const float lumaref,
|
||||
float maxdE, float mindE, float maxdElim, float mindElim, float iterat, float limscope, int scope
|
||||
)
|
||||
{
|
||||
@ -3238,7 +3247,7 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int
|
||||
bufmaskblurcol->a[ir][jr] = CLIPC(kmaskC + kmaskH);
|
||||
bufmaskblurcol->b[ir][jr] = CLIPC(kmaskC + kmaskH);
|
||||
|
||||
if (shortcu) { //short circuit all L curve
|
||||
if (shortcu == 1) { //short circuit all L curve
|
||||
bufmaskblurcol->L[ir][jr] = 32768.f - bufcolorig->L[ir][jr];
|
||||
}
|
||||
|
||||
@ -8250,7 +8259,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
bool lmasutilicolwav = false;
|
||||
float amountcd = 0.f;
|
||||
float anchorcd = 50.f;
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet; //params->locallab.spots.at(sp).shortc;
|
||||
|
||||
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, loctemp.get(), bufmaskorigcb.get(), originalmaskcb.get(), original, inv, lp,
|
||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, multiThread,
|
||||
@ -8541,7 +8550,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
float blendm = lp.blendmatm;
|
||||
float lap = params->locallab.spots.at(sp).lapmasktm;
|
||||
float pde = params->locallab.spots.at(sp).laplac;
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet;// params->locallab.spots.at(sp).shortc;
|
||||
int lumask = params->locallab.spots.at(sp).lumask;
|
||||
|
||||
if (!params->locallab.spots.at(sp).enatmMaskaft) {
|
||||
@ -8588,7 +8597,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
bool lmasutilicolwav = false;
|
||||
bool delt = params->locallab.spots.at(sp).deltae;
|
||||
int sco = params->locallab.spots.at(sp).scopemask;
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet; //params->locallab.spots.at(sp).shortc;
|
||||
int lumask = params->locallab.spots.at(sp).lumask;
|
||||
|
||||
const int limscope = 80;
|
||||
@ -8790,7 +8799,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
bool lmasutilicolwav = false;
|
||||
bool delt = params->locallab.spots.at(sp).deltae;
|
||||
int sco = params->locallab.spots.at(sp).scopemask;
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet; //params->locallab.spots.at(sp).shortc;
|
||||
|
||||
const int limscope = 80;
|
||||
const float mindE = 2.f + MINSCOPE * sco * lp.thr;
|
||||
@ -8940,9 +8949,9 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
// bool delt = params->locallab.spots.at(sp).deltae;
|
||||
bool delt = false;
|
||||
int sco = params->locallab.spots.at(sp).scopemask;
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet; params->locallab.spots.at(sp).shortc;
|
||||
|
||||
const int limscope = 80;
|
||||
const int limscope = 80;//
|
||||
const float mindE = 2.f + MINSCOPE * sco * lp.thr;
|
||||
const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr);
|
||||
const float mindElim = 2.f + MINSCOPE * limscope * lp.thr;
|
||||
@ -11014,7 +11023,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
bool delt = params->locallab.spots.at(sp).deltae;
|
||||
int sco = params->locallab.spots.at(sp).scopemask;
|
||||
int shado = 0;
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet; //params->locallab.spots.at(sp).shortc;
|
||||
|
||||
const int limscope = 80;
|
||||
const float mindE = 2.f + MINSCOPE * sco * lp.thr;
|
||||
@ -11304,7 +11313,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
bool delt = false;
|
||||
int sco = params->locallab.spots.at(sp).scopemask;
|
||||
int shado = 0;
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet; //params->locallab.spots.at(sp).shortc;
|
||||
int lumask = params->locallab.spots.at(sp).lumask;
|
||||
|
||||
const int limscope = 80;
|
||||
@ -11575,7 +11584,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
int level_hl = params->locallab.spots.at(sp).csthresholdcol.getTopLeft();
|
||||
int level_br = params->locallab.spots.at(sp).csthresholdcol.getBottomRight();
|
||||
int level_hr = params->locallab.spots.at(sp).csthresholdcol.getTopRight();
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet; //params->locallab.spots.at(sp).shortc;
|
||||
int lumask = params->locallab.spots.at(sp).lumask;
|
||||
|
||||
const int limscope = 80;
|
||||
@ -11804,7 +11813,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
// bool delt = params->locallab.spots.at(sp).deltae;
|
||||
bool delt = false;
|
||||
int sco = params->locallab.spots.at(sp).scopemask;
|
||||
bool shortcu = params->locallab.spots.at(sp).shortc;
|
||||
int shortcu = lp.mergemet; //params->locallab.spots.at(sp).shortc;
|
||||
int lumask = params->locallab.spots.at(sp).lumask;
|
||||
|
||||
const int limscope = 80;
|
||||
|
@ -823,6 +823,7 @@ enum ProcEventCode {
|
||||
EvlocallabsloSH = 793,
|
||||
Evlocallabsavrest = 794,
|
||||
Evlocallabrecurs = 795,
|
||||
EvLocallabSpotmergeMethod = 796,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
|
||||
|
@ -2413,6 +2413,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
isvisible(true),
|
||||
shape("ELI"),
|
||||
spotMethod("norm"),
|
||||
mergeMethod("none"),
|
||||
sensiexclu(12),
|
||||
structexclu(0),
|
||||
struc(4.0),
|
||||
@ -2722,6 +2723,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& isvisible == other.isvisible
|
||||
&& shape == other.shape
|
||||
&& spotMethod == other.spotMethod
|
||||
&& mergeMethod == other.mergeMethod
|
||||
&& sensiexclu == other.sensiexclu
|
||||
&& structexclu == other.structexclu
|
||||
&& struc == other.struc
|
||||
@ -4026,6 +4028,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).isvisible, "Locallab", "Isvisible_" + std::to_string(i), spot.isvisible, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).shape, "Locallab", "Shape_" + std::to_string(i), spot.shape, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).spotMethod, "Locallab", "SpotMethod_" + std::to_string(i), spot.spotMethod, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).mergeMethod, "Locallab", "MergeMethod_" + std::to_string(i), spot.mergeMethod, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).sensiexclu, "Locallab", "SensiExclu_" + std::to_string(i), spot.sensiexclu, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).structexclu, "Locallab", "StructExclu_" + std::to_string(i), spot.structexclu, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).struc, "Locallab", "Struc_" + std::to_string(i), spot.struc, keyFile);
|
||||
@ -5438,6 +5441,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "Isvisible_" + std::to_string(i), pedited, spot.isvisible, spotEdited.isvisible);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Shape_" + std::to_string(i), pedited, spot.shape, spotEdited.shape);
|
||||
assignFromKeyfile(keyFile, "Locallab", "SpotMethod_" + std::to_string(i), pedited, spot.spotMethod, spotEdited.spotMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "MergeMethod_" + std::to_string(i), pedited, spot.mergeMethod, spotEdited.mergeMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "ShapeMethod_" + std::to_string(i), pedited, spot.shapeMethod, spotEdited.shapeMethod);
|
||||
assignFromKeyfile(keyFile, "Locallab", "SensiExclu_" + std::to_string(i), pedited, spot.sensiexclu, spotEdited.sensiexclu);
|
||||
assignFromKeyfile(keyFile, "Locallab", "StructExclu_" + std::to_string(i), pedited, spot.structexclu, spotEdited.structexclu);
|
||||
|
@ -960,6 +960,7 @@ struct LocallabParams {
|
||||
bool isvisible;
|
||||
Glib::ustring shape; // ELI, RECT
|
||||
Glib::ustring spotMethod; // norm, exc
|
||||
Glib::ustring mergeMethod; // none, short, orig
|
||||
int sensiexclu;
|
||||
int structexclu;
|
||||
double struc;
|
||||
|
@ -822,7 +822,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
LUMINANCECURVE, //EvlocallabgamSH
|
||||
LUMINANCECURVE, //EvlocallabsloSH
|
||||
LUMINANCECURVE, //Evlocallabsavrest
|
||||
LUMINANCECURVE //Evlocallabrecurs
|
||||
LUMINANCECURVE, //Evlocallabrecurs
|
||||
LUMINANCECURVE // EvLocallabSpotmergeMethod
|
||||
};
|
||||
|
||||
namespace rtengine
|
||||
|
@ -50,6 +50,7 @@ ControlSpotPanel::ControlSpotPanel():
|
||||
spotMethod_(Gtk::manage(new MyComboBoxText())),
|
||||
shapeMethod_(Gtk::manage(new MyComboBoxText())),
|
||||
qualityMethod_(Gtk::manage(new MyComboBoxText())),
|
||||
mergeMethod_(Gtk::manage(new MyComboBoxText())),
|
||||
|
||||
sensiexclu_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIEXCLU"), 0, 100, 1, 12))),
|
||||
structexclu_(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STRUCCOL"), 0, 100, 1, 0))),
|
||||
@ -181,7 +182,7 @@ ControlSpotPanel::ControlSpotPanel():
|
||||
sigc::mem_fun(
|
||||
*this, &ControlSpotPanel::spotMethodChanged));
|
||||
ctboxspotmethod->pack_start(*spotMethod_);
|
||||
pack_start(*ctboxspotmethod);
|
||||
// pack_start(*ctboxspotmethod);
|
||||
|
||||
excluFrame->set_label_align(0.025, 0.5);
|
||||
if(showtooltip) excluFrame->set_tooltip_text(M("TP_LOCALLAB_EXCLUF_TOOLTIP"));
|
||||
@ -280,6 +281,21 @@ ControlSpotPanel::ControlSpotPanel():
|
||||
balan_->setAdjusterListener(this);
|
||||
artifFrame->add(*artifBox);
|
||||
pack_start(*artifFrame);
|
||||
|
||||
Gtk::HBox* const ctboxmergemethod = Gtk::manage(new Gtk::HBox());
|
||||
Gtk::Label* const labelmergemethod = Gtk::manage(new Gtk::Label(M("TP_LOCALLAB_MERGETYPE") + ":"));
|
||||
ctboxmergemethod->pack_start(*labelmergemethod, Gtk::PACK_SHRINK, 4);
|
||||
if(showtooltip) ctboxmergemethod->set_tooltip_markup(M("TP_LOCALLAB_MERGETYPE_TOOLTIP"));
|
||||
mergeMethod_->append(M("TP_LOCALLAB_MERGENONE"));
|
||||
mergeMethod_->append(M("TP_LOCALLAB_MERGEONE"));
|
||||
mergeMethod_->append(M("TP_LOCALLAB_MERGETWO"));
|
||||
mergeMethod_->set_active(0);
|
||||
mergeMethodconn_ = mergeMethod_->signal_changed().connect(
|
||||
sigc::mem_fun(
|
||||
*this, &ControlSpotPanel::mergeMethodChanged));
|
||||
ctboxmergemethod->pack_start(*mergeMethod_);
|
||||
// pack_start(*ctboxmergemethod);
|
||||
|
||||
|
||||
avoidConn_ = avoid_->signal_toggled().connect(
|
||||
sigc::mem_fun(*this, &ControlSpotPanel::avoidChanged));
|
||||
@ -304,7 +320,9 @@ ControlSpotPanel::ControlSpotPanel():
|
||||
sigc::mem_fun(*this, &ControlSpotPanel::savrestChanged));
|
||||
maskBox->pack_start(*deltae_);
|
||||
maskBox->pack_start(*scopemask_);
|
||||
maskBox->pack_start(*shortc_);
|
||||
// maskBox->pack_start(*shortc_);
|
||||
maskBox->pack_start(*ctboxmergemethod);
|
||||
|
||||
maskBox->pack_start(*lumask_);
|
||||
// maskBox->pack_start(*savrest_);
|
||||
maskFrame->add(*maskBox);
|
||||
@ -594,6 +612,7 @@ void ControlSpotPanel::load_ControlSpot_param()
|
||||
// Load param in selected control spot
|
||||
shape_->set_active(row[spots_.shape]);
|
||||
spotMethod_->set_active(row[spots_.spotMethod]);
|
||||
mergeMethod_->set_active(row[spots_.mergeMethod]);
|
||||
sensiexclu_->setValue((double)row[spots_.sensiexclu]);
|
||||
structexclu_->setValue((double)row[spots_.structexclu]);
|
||||
struc_->setValue((double)row[spots_.struc]);
|
||||
@ -691,6 +710,38 @@ void ControlSpotPanel::spotMethodChanged()
|
||||
}
|
||||
}
|
||||
|
||||
void ControlSpotPanel::mergeMethodChanged()
|
||||
{
|
||||
// printf("mergeMethodChanged\n");
|
||||
|
||||
// Get selected control spot
|
||||
const auto s = treeview_->get_selection();
|
||||
|
||||
if (!s->count_selected_rows()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const auto iter = s->get_selected();
|
||||
Gtk::TreeModel::Row row = *iter;
|
||||
|
||||
row[spots_.mergeMethod] = mergeMethod_->get_active_row_number();
|
||||
/*
|
||||
// Update Control Spot GUI according to spotMethod_ combobox state (to be compliant with updateParamVisibility function)
|
||||
if (multiImage && mergeMethod_->get_active_text() == M("GENERAL_UNCHANGED")) {
|
||||
excluFrame->show();
|
||||
} else if (spotMethod_->get_active_row_number() == 0) { // Normal case
|
||||
excluFrame->hide();
|
||||
} else { // Excluding case
|
||||
excluFrame->show();
|
||||
}
|
||||
*/
|
||||
// Raise event
|
||||
if (listener) {
|
||||
listener->panelChanged(EvLocallabSpotmergeMethod, mergeMethod_->get_active_text());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ControlSpotPanel::shapeMethodChanged()
|
||||
{
|
||||
// printf("shapeMethodChanged\n");
|
||||
@ -1289,6 +1340,7 @@ void ControlSpotPanel::disableParamlistener(bool cond)
|
||||
buttonvisibilityconn_.block(cond);
|
||||
shapeconn_.block(cond);
|
||||
spotMethodconn_.block(cond);
|
||||
mergeMethodconn_.block(cond);
|
||||
sensiexclu_->block(cond);
|
||||
structexclu_->block(cond);
|
||||
struc_->block(cond);
|
||||
@ -1323,6 +1375,7 @@ void ControlSpotPanel::setParamEditable(bool cond)
|
||||
|
||||
shape_->set_sensitive(cond);
|
||||
spotMethod_->set_sensitive(cond);
|
||||
mergeMethod_->set_sensitive(cond);
|
||||
sensiexclu_->set_sensitive(cond);
|
||||
structexclu_->set_sensitive(cond);
|
||||
struc_->set_sensitive(cond);
|
||||
@ -1963,6 +2016,7 @@ ControlSpotPanel::SpotRow* ControlSpotPanel::getSpot(const int id)
|
||||
r->isvisible = row[spots_.isvisible];
|
||||
r->shape = row[spots_.shape];
|
||||
r->spotMethod = row[spots_.spotMethod];
|
||||
r->mergeMethod = row[spots_.mergeMethod];
|
||||
r->sensiexclu = row[spots_.sensiexclu];
|
||||
r->structexclu = row[spots_.structexclu];
|
||||
r->struc = row[spots_.struc];
|
||||
@ -2096,6 +2150,7 @@ void ControlSpotPanel::addControlSpot(SpotRow* newSpot)
|
||||
row[spots_.curveid] = 0; // No associated curve
|
||||
row[spots_.shape] = newSpot->shape;
|
||||
row[spots_.spotMethod] = newSpot->spotMethod;
|
||||
row[spots_.mergeMethod] = newSpot->mergeMethod;
|
||||
row[spots_.sensiexclu] = newSpot->sensiexclu;
|
||||
row[spots_.structexclu] = newSpot->structexclu;
|
||||
row[spots_.struc] = newSpot->struc;
|
||||
@ -2148,6 +2203,7 @@ int ControlSpotPanel::updateControlSpot(SpotRow* spot)
|
||||
row[spots_.isvisible] = spot->isvisible;
|
||||
row[spots_.shape] = spot->shape;
|
||||
row[spots_.spotMethod] = spot->spotMethod;
|
||||
row[spots_.mergeMethod] = spot->mergeMethod;
|
||||
row[spots_.sensiexclu] = spot->sensiexclu;
|
||||
row[spots_.structexclu] = spot->structexclu;
|
||||
row[spots_.struc] = spot->struc;
|
||||
@ -2246,6 +2302,7 @@ ControlSpotPanel::SpotEdited* ControlSpotPanel::getEditedStates()
|
||||
|
||||
se->shape = shape_->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
se->spotMethod = spotMethod_->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
se->mergeMethod = mergeMethod_->get_active_text() != M("GENERAL_UNCHANGED");
|
||||
se->sensiexclu = sensiexclu_->getEditedState();
|
||||
se->structexclu = structexclu_->getEditedState();
|
||||
se->struc = struc_->getEditedState();
|
||||
@ -2314,6 +2371,10 @@ void ControlSpotPanel::setEditedStates(SpotEdited* se)
|
||||
spotMethod_->set_active_text(M("GENERAL_UNCHANGED"));
|
||||
}
|
||||
|
||||
if (!se->mergeMethod) {
|
||||
mergeMethod_->set_active_text(M("GENERAL_UNCHANGED"));
|
||||
}
|
||||
|
||||
sensiexclu_->setEditedState(se->sensiexclu ? Edited : UnEdited);
|
||||
structexclu_->setEditedState(se->structexclu ? Edited : UnEdited);
|
||||
struc_->setEditedState(se->struc ? Edited : UnEdited);
|
||||
@ -2470,6 +2531,7 @@ void ControlSpotPanel::setBatchMode(bool batchMode)
|
||||
// Set batch mode for comboBoxText
|
||||
shape_->append(M("GENERAL_UNCHANGED"));
|
||||
spotMethod_->append(M("GENERAL_UNCHANGED"));
|
||||
mergeMethod_->append(M("GENERAL_UNCHANGED"));
|
||||
shapeMethod_->append(M("GENERAL_UNCHANGED"));
|
||||
qualityMethod_->append(M("GENERAL_UNCHANGED"));
|
||||
}
|
||||
@ -2513,6 +2575,7 @@ ControlSpotPanel::ControlSpots::ControlSpots()
|
||||
add(deltae);
|
||||
add(shortc);
|
||||
add(savrest);
|
||||
add(mergeMethod);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -73,6 +73,7 @@ public:
|
||||
bool deltae;
|
||||
bool shortc;
|
||||
bool savrest;
|
||||
int mergeMethod; // 0 = None, 1 = short circuit, 2 = original
|
||||
};
|
||||
|
||||
/**
|
||||
@ -111,6 +112,7 @@ public:
|
||||
bool deltae;
|
||||
bool shortc;
|
||||
bool savrest;
|
||||
bool mergeMethod;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -267,6 +269,7 @@ private:
|
||||
void shapeChanged();
|
||||
void spotMethodChanged();
|
||||
void shapeMethodChanged();
|
||||
void mergeMethodChanged();
|
||||
void qualityMethodChanged();
|
||||
void updateParamVisibility();
|
||||
void adjusterChanged(Adjuster* a, double newval);
|
||||
@ -336,6 +339,7 @@ private:
|
||||
Gtk::TreeModelColumn<bool> deltae;
|
||||
Gtk::TreeModelColumn<bool> shortc;
|
||||
Gtk::TreeModelColumn<bool> savrest;
|
||||
Gtk::TreeModelColumn<int> mergeMethod; // 0 = None, 1 = short cir, 2 = original
|
||||
};
|
||||
|
||||
class RenameDialog:
|
||||
@ -382,6 +386,8 @@ private:
|
||||
sigc::connection shapeMethodconn_;
|
||||
MyComboBoxText* const qualityMethod_;
|
||||
sigc::connection qualityMethodconn_;
|
||||
MyComboBoxText* const mergeMethod_;
|
||||
sigc::connection mergeMethodconn_;
|
||||
|
||||
Adjuster* const sensiexclu_;
|
||||
Adjuster* const structexclu_;
|
||||
|
@ -2847,6 +2847,14 @@ void Locallab::read(const ProcParams* pp, const ParamsEdited* pedited)
|
||||
r->spotMethod = 1;
|
||||
}
|
||||
|
||||
if (pp->locallab.spots.at(i).mergeMethod == "none") {
|
||||
r->mergeMethod = 0;
|
||||
} else if (pp->locallab.spots.at(i).mergeMethod == "short") {
|
||||
r->mergeMethod = 1;
|
||||
} else if (pp->locallab.spots.at(i).mergeMethod == "orig") {
|
||||
r->mergeMethod = 2;
|
||||
}
|
||||
|
||||
r->sensiexclu = pp->locallab.spots.at(i).sensiexclu;
|
||||
r->structexclu = pp->locallab.spots.at(i).structexclu;
|
||||
r->struc = pp->locallab.spots.at(i).struc;
|
||||
@ -2962,6 +2970,14 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
r->spotMethod = 1;
|
||||
}
|
||||
|
||||
if (newSpot->mergeMethod == "none") {
|
||||
r->mergeMethod = 0;
|
||||
} else if (newSpot->mergeMethod == "short") {
|
||||
r->mergeMethod = 1;
|
||||
} else if (newSpot->mergeMethod == "orig") {
|
||||
r->mergeMethod = 2;
|
||||
}
|
||||
|
||||
r->sensiexclu = newSpot->sensiexclu;
|
||||
r->structexclu = newSpot->structexclu;
|
||||
r->struc = newSpot->struc;
|
||||
@ -3185,6 +3201,14 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
r->spotMethod = 1;
|
||||
}
|
||||
|
||||
if (newSpot->mergeMethod == "none") {
|
||||
r->mergeMethod = 0;
|
||||
} else if (newSpot->mergeMethod == "short") {
|
||||
r->mergeMethod = 1;
|
||||
} else if (newSpot->mergeMethod == "orig") {
|
||||
r->mergeMethod = 2;
|
||||
}
|
||||
|
||||
r->sensiexclu = newSpot->sensiexclu;
|
||||
r->structexclu = newSpot->structexclu;
|
||||
r->struc = newSpot->struc;
|
||||
@ -3325,6 +3349,14 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->locallab.spots.at(pp->locallab.selspot).spotMethod = "exc";
|
||||
}
|
||||
|
||||
if (r->mergeMethod == 0) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).mergeMethod = "none";
|
||||
} else if (r->mergeMethod == 1) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).mergeMethod = "short";
|
||||
} else if (r->mergeMethod == 2) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).mergeMethod = "orig";
|
||||
}
|
||||
|
||||
pp->locallab.spots.at(pp->locallab.selspot).sensiexclu = r->sensiexclu;
|
||||
pp->locallab.spots.at(pp->locallab.selspot).structexclu = r->structexclu;
|
||||
pp->locallab.spots.at(pp->locallab.selspot).struc = r->struc;
|
||||
@ -3743,6 +3775,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pe->locallab.spots.at(pp->locallab.selspot).isvisible = pe->locallab.spots.at(pp->locallab.selspot).isvisible || se->isvisible;
|
||||
pe->locallab.spots.at(pp->locallab.selspot).shape = pe->locallab.spots.at(pp->locallab.selspot).shape || se->shape;
|
||||
pe->locallab.spots.at(pp->locallab.selspot).spotMethod = pe->locallab.spots.at(pp->locallab.selspot).spotMethod || se->spotMethod;
|
||||
pe->locallab.spots.at(pp->locallab.selspot).mergeMethod = pe->locallab.spots.at(pp->locallab.selspot).mergeMethod || se->mergeMethod;
|
||||
pe->locallab.spots.at(pp->locallab.selspot).sensiexclu = pe->locallab.spots.at(pp->locallab.selspot).sensiexclu || se->sensiexclu;
|
||||
pe->locallab.spots.at(pp->locallab.selspot).structexclu = pe->locallab.spots.at(pp->locallab.selspot).structexclu || se->structexclu;
|
||||
pe->locallab.spots.at(pp->locallab.selspot).struc = pe->locallab.spots.at(pp->locallab.selspot).struc || se->struc;
|
||||
@ -4061,6 +4094,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).isvisible = pedited->locallab.spots.at(pp->locallab.selspot).isvisible || se->isvisible;
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).shape = pedited->locallab.spots.at(pp->locallab.selspot).shape || se->shape;
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).spotMethod = pedited->locallab.spots.at(pp->locallab.selspot).spotMethod || se->spotMethod;
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).mergeMethod = pedited->locallab.spots.at(pp->locallab.selspot).mergeMethod || se->mergeMethod;
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).sensiexclu = pedited->locallab.spots.at(pp->locallab.selspot).sensiexclu || se->sensiexclu;
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).structexclu = pedited->locallab.spots.at(pp->locallab.selspot).structexclu || se->structexclu;
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).struc = pedited->locallab.spots.at(pp->locallab.selspot).struc || se->struc;
|
||||
@ -8788,6 +8822,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
se->isvisible = spotState->isvisible;
|
||||
se->shape = spotState->shape;
|
||||
se->spotMethod = spotState->spotMethod;
|
||||
se->mergeMethod = spotState->mergeMethod;
|
||||
se->sensiexclu = spotState->sensiexclu;
|
||||
se->structexclu = spotState->structexclu;
|
||||
se->struc = spotState->struc;
|
||||
|
@ -954,6 +954,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).isvisible = locallab.spots.at(j).isvisible && pSpot.isvisible == otherSpot.isvisible;
|
||||
locallab.spots.at(j).shape = locallab.spots.at(j).shape && pSpot.shape == otherSpot.shape;
|
||||
locallab.spots.at(j).spotMethod = locallab.spots.at(j).spotMethod && pSpot.spotMethod == otherSpot.spotMethod;
|
||||
locallab.spots.at(j).mergeMethod = locallab.spots.at(j).mergeMethod && pSpot.mergeMethod == otherSpot.mergeMethod;
|
||||
locallab.spots.at(j).sensiexclu = locallab.spots.at(j).sensiexclu && pSpot.sensiexclu == otherSpot.sensiexclu;
|
||||
locallab.spots.at(j).structexclu = locallab.spots.at(j).structexclu && pSpot.structexclu == otherSpot.structexclu;
|
||||
locallab.spots.at(j).struc = locallab.spots.at(j).struc && pSpot.struc == otherSpot.struc;
|
||||
@ -2735,6 +2736,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).spotMethod = mods.locallab.spots.at(i).spotMethod;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).mergeMethod) {
|
||||
toEdit.locallab.spots.at(i).mergeMethod = mods.locallab.spots.at(i).mergeMethod;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).sensiexclu) {
|
||||
toEdit.locallab.spots.at(i).sensiexclu = mods.locallab.spots.at(i).sensiexclu;
|
||||
}
|
||||
@ -4861,6 +4866,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
isvisible(v),
|
||||
shape(v),
|
||||
spotMethod(v),
|
||||
mergeMethod(v),
|
||||
sensiexclu(v),
|
||||
structexclu(v),
|
||||
struc(v),
|
||||
@ -5167,6 +5173,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
isvisible = v;
|
||||
shape = v;
|
||||
spotMethod = v;
|
||||
mergeMethod = v;
|
||||
sensiexclu = v;
|
||||
structexclu = v;
|
||||
struc = v;
|
||||
|
@ -372,6 +372,7 @@ public:
|
||||
bool isvisible;
|
||||
bool shape;
|
||||
bool spotMethod;
|
||||
bool mergeMethod;
|
||||
bool sensiexclu;
|
||||
bool structexclu;
|
||||
bool struc;
|
||||
|
Loading…
x
Reference in New Issue
Block a user