Fix for saving denoise method in file browser (see issue 1778)

This commit is contained in:
michael
2013-03-16 09:44:35 -04:00
parent 0ad593a8b2
commit 84e75ba762
2 changed files with 34 additions and 36 deletions

View File

@@ -368,8 +368,8 @@ void ProcParams::setDefaults () {
raw.hotdeadpix_thresh = 40; raw.hotdeadpix_thresh = 40;
raw.linenoise = 0; raw.linenoise = 0;
raw.greenthresh = 0; raw.greenthresh = 0;
raw.ccSteps = 1; raw.ccSteps = 0;
raw.dmethod = RAWParams::methodstring[RAWParams::hphd];; raw.dmethod = RAWParams::methodstring[RAWParams::amaze];;
raw.dcb_iterations=2; raw.dcb_iterations=2;
raw.dcb_enhance=false; raw.dcb_enhance=false;
//raw.all_enhance=false; //raw.all_enhance=false;

View File

@@ -97,27 +97,34 @@ DirPyrDenoise::DirPyrDenoise () : Gtk::VBox(), FoldableToolPanel(this) {
} }
void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) { void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) {
disableListener (); disableListener ();
dmethodconn.block(true);
enaConn.block (true);
dmethod->set_active (0);
if (pp->dirpyrDenoise.dmethod=="RGB")
dmethod->set_active (0);
else if (pp->dirpyrDenoise.dmethod=="Lab")
dmethod->set_active (1);
if (pedited) { if (pedited) {
luma->setEditedState (pedited->dirpyrDenoise.luma ? Edited : UnEdited); if (!pedited->dirpyrDenoise.dmethod)
Ldetail->setEditedState (pedited->dirpyrDenoise.Ldetail ? Edited : UnEdited); dmethod->set_active (2);
chroma->setEditedState (pedited->dirpyrDenoise.chroma ? Edited : UnEdited); luma->setEditedState (pedited->dirpyrDenoise.luma ? Edited : UnEdited);
redchro->setEditedState (pedited->dirpyrDenoise.redchro ? Edited : UnEdited); Ldetail->setEditedState (pedited->dirpyrDenoise.Ldetail ? Edited : UnEdited);
bluechro->setEditedState (pedited->dirpyrDenoise.bluechro ? Edited : UnEdited); chroma->setEditedState (pedited->dirpyrDenoise.chroma ? Edited : UnEdited);
redchro->setEditedState (pedited->dirpyrDenoise.redchro ? Edited : UnEdited);
bluechro->setEditedState (pedited->dirpyrDenoise.bluechro ? Edited : UnEdited);
gamma->setEditedState (pedited->dirpyrDenoise.gamma ? Edited : UnEdited); gamma->setEditedState (pedited->dirpyrDenoise.gamma ? Edited : UnEdited);
enabled->set_inconsistent (!pedited->dirpyrDenoise.enabled); enabled->set_inconsistent (!pedited->dirpyrDenoise.enabled);
// perform->set_inconsistent (!pedited->dirpyrDenoise.perform); // perform->set_inconsistent (!pedited->dirpyrDenoise.perform);
} }
// perfconn.block (true); // perfconn.block (true);
enaConn.block (true);
enabled->set_active (pp->dirpyrDenoise.enabled); enabled->set_active (pp->dirpyrDenoise.enabled);
// perform->set_active (pp->dirpyrDenoise.perform); // perform->set_active (pp->dirpyrDenoise.perform);
enaConn.block (false);
// perfconn.block (false); // perfconn.block (false);
lastEnabled = pp->dirpyrDenoise.enabled; lastEnabled = pp->dirpyrDenoise.enabled;
// lastperform = pp->dirpyrDenoise.perform; // lastperform = pp->dirpyrDenoise.perform;
@@ -126,19 +133,11 @@ void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) {
chroma->setValue (pp->dirpyrDenoise.chroma); chroma->setValue (pp->dirpyrDenoise.chroma);
redchro->setValue (pp->dirpyrDenoise.redchro); redchro->setValue (pp->dirpyrDenoise.redchro);
bluechro->setValue (pp->dirpyrDenoise.bluechro); bluechro->setValue (pp->dirpyrDenoise.bluechro);
dmethodconn.block(true);
if (pedited && !pedited->dirpyrDenoise.dmethod)
dmethod->set_active (2);
else if (pp->dirpyrDenoise.dmethod=="RGB")
dmethod->set_active (0);
else if (pp->dirpyrDenoise.dmethod=="Lab")
dmethod->set_active (1);
dmethodconn.block(false);
// Have to be manually called to handle initial state update
dmethodChanged();
gamma->setValue (pp->dirpyrDenoise.gamma); gamma->setValue (pp->dirpyrDenoise.gamma);
enaConn.block (false);
dmethodconn.block(false);
enableListener (); enableListener ();
} }
@@ -154,22 +153,22 @@ void DirPyrDenoise::write (ProcParams* pp, ParamsEdited* pedited) {
// pp->dirpyrDenoise.perform = perform->get_active(); // pp->dirpyrDenoise.perform = perform->get_active();
if (pedited) { if (pedited) {
pedited->dirpyrDenoise.dmethod = dmethod->get_active_row_number() != 2;
pedited->dirpyrDenoise.luma = luma->getEditedState (); pedited->dirpyrDenoise.luma = luma->getEditedState ();
pedited->dirpyrDenoise.Ldetail = Ldetail->getEditedState (); pedited->dirpyrDenoise.Ldetail = Ldetail->getEditedState ();
pedited->dirpyrDenoise.chroma = chroma->getEditedState (); pedited->dirpyrDenoise.chroma = chroma->getEditedState ();
pedited->dirpyrDenoise.redchro = redchro->getEditedState (); pedited->dirpyrDenoise.redchro = redchro->getEditedState ();
pedited->dirpyrDenoise.bluechro = bluechro->getEditedState (); pedited->dirpyrDenoise.bluechro = bluechro->getEditedState ();
pedited->dirpyrDenoise.gamma = gamma->getEditedState (); pedited->dirpyrDenoise.gamma = gamma->getEditedState ();
pedited->dirpyrDenoise.enabled = !enabled->get_inconsistent(); pedited->dirpyrDenoise.enabled = !enabled->get_inconsistent();
// pedited->dirpyrDenoise.perform = !perform->get_inconsistent(); // pedited->dirpyrDenoise.perform = !perform->get_inconsistent();
} }
if (dmethod->get_active_row_number()==0) if (dmethod->get_active_row_number()==0)
pp->dirpyrDenoise.dmethod = "RGB"; pp->dirpyrDenoise.dmethod = "RGB";
else if (dmethod->get_active_row_number()==1) else if (dmethod->get_active_row_number()==1)
pp->dirpyrDenoise.dmethod = "Lab"; pp->dirpyrDenoise.dmethod = "Lab";
} }
void DirPyrDenoise::dmethodChanged () { void DirPyrDenoise::dmethodChanged () {
if (listener && (multiImage||enabled->get_active()) ) { if (listener && (multiImage||enabled->get_active()) ) {
@@ -280,11 +279,10 @@ void DirPyrDenoise::setBatchMode (bool batchMode) {
luma->showEditedCB (); luma->showEditedCB ();
Ldetail->showEditedCB (); Ldetail->showEditedCB ();
chroma->showEditedCB (); chroma->showEditedCB ();
redchro->showEditedCB (); redchro->showEditedCB ();
bluechro->showEditedCB (); bluechro->showEditedCB ();
gamma->showEditedCB (); gamma->showEditedCB ();
dmethod->append_text (M("GENERAL_UNCHANGED")); dmethod->append_text (M("GENERAL_UNCHANGED"));
} }
void DirPyrDenoise::setAdjusterBehavior (bool lumaadd, bool lumdetadd, bool chromaadd, bool chromaredadd, bool chromablueadd, bool gammaadd) { void DirPyrDenoise::setAdjusterBehavior (bool lumaadd, bool lumdetadd, bool chromaadd, bool chromaredadd, bool chromablueadd, bool gammaadd) {