Changed raw border from spinbox to adjuster

This commit is contained in:
heckflosse 2018-06-28 14:49:07 +02:00
parent a3d932786e
commit 00cc9372d8
2 changed files with 21 additions and 20 deletions

View File

@ -47,15 +47,15 @@ BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RA
pack_start( *hb1, Gtk::PACK_SHRINK, 4); pack_start( *hb1, Gtk::PACK_SHRINK, 4);
Gtk::HBox* borderbox = Gtk::manage (new Gtk::HBox ()); Gtk::HBox* borderbox = Gtk::manage (new Gtk::HBox ());
border = Gtk::manage (new MySpinButton ()); border = Gtk::manage (new Adjuster (M("TP_RAW_BORDER"), 0, 16, 1, 4 ));
borderbox->set_spacing(3); border->setAdjusterListener (this);
borderbox->pack_start (*Gtk::manage (new Gtk::Label (M("TP_RAW_BORDER"))), Gtk::PACK_SHRINK, 0);
borderbox->pack_start (*border);
border->set_digits (0);
border->set_increments (1, 2);
border->set_value (4);
border->set_range (0, 16);
if (border->delay < options.adjusterMaxDelay) {
border->delay = options.adjusterMaxDelay;
}
border->show();
borderbox->pack_start (*border);
pack_start( *borderbox, Gtk::PACK_SHRINK, 4); pack_start( *borderbox, Gtk::PACK_SHRINK, 4);
imageNumberBox = Gtk::manage (new Gtk::HBox ()); imageNumberBox = Gtk::manage (new Gtk::HBox ());
@ -247,7 +247,6 @@ BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RA
imageNumber->connect(imageNumber->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::imageNumberChanged) )); imageNumber->connect(imageNumber->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::imageNumberChanged) ));
pixelShiftMotionMethod->connect(pixelShiftMotionMethod->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::pixelShiftMotionMethodChanged) )); pixelShiftMotionMethod->connect(pixelShiftMotionMethod->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::pixelShiftMotionMethodChanged) ));
pixelShiftDemosaicMethod->connect(pixelShiftDemosaicMethod->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::pixelShiftDemosaicMethodChanged) )); pixelShiftDemosaicMethod->connect(pixelShiftDemosaicMethod->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::pixelShiftDemosaicMethodChanged) ));
borderconn = border->signal_value_changed().connect ( sigc::mem_fun(*this, &BayerProcess::borderChanged), true);
} }
@ -257,11 +256,10 @@ void BayerProcess::read(const rtengine::procparams::ProcParams* pp, const Params
disableListener (); disableListener ();
method->block (true); method->block (true);
imageNumber->block (true); imageNumber->block (true);
borderconn.block(true);
pixelShiftDemosaicMethod->block(true); pixelShiftDemosaicMethod->block(true);
//allEnhconn.block (true); //allEnhconn.block (true);
border->set_value (pp->raw.bayersensor.border); border->setValue(pp->raw.bayersensor.border);
imageNumber->set_active(pp->raw.bayersensor.imageNum); imageNumber->set_active(pp->raw.bayersensor.imageNum);
for (size_t i = 0; i < procparams::RAWParams::BayerSensor::getMethodStrings().size(); ++i) { for (size_t i = 0; i < procparams::RAWParams::BayerSensor::getMethodStrings().size(); ++i) {
@ -311,6 +309,7 @@ void BayerProcess::read(const rtengine::procparams::ProcParams* pp, const Params
} }
if(pedited) { if(pedited) {
border->setEditedState (pedited->raw.bayersensor.border ? Edited : UnEdited);
ccSteps->setEditedState (pedited->raw.bayersensor.ccSteps ? Edited : UnEdited); ccSteps->setEditedState (pedited->raw.bayersensor.ccSteps ? Edited : UnEdited);
dcbIterations->setEditedState ( pedited->raw.bayersensor.dcbIterations ? Edited : UnEdited); dcbIterations->setEditedState ( pedited->raw.bayersensor.dcbIterations ? Edited : UnEdited);
dcbEnhance->setEdited (pedited->raw.bayersensor.dcbEnhance); dcbEnhance->setEdited (pedited->raw.bayersensor.dcbEnhance);
@ -373,7 +372,6 @@ void BayerProcess::read(const rtengine::procparams::ProcParams* pp, const Params
method->block (false); method->block (false);
imageNumber->block (false); imageNumber->block (false);
borderconn.block (false);
pixelShiftDemosaicMethod->block(false); pixelShiftDemosaicMethod->block(false);
//allEnhconn.block (false); //allEnhconn.block (false);
@ -385,7 +383,7 @@ void BayerProcess::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pe
pp->raw.bayersensor.ccSteps = ccSteps->getIntValue(); pp->raw.bayersensor.ccSteps = ccSteps->getIntValue();
pp->raw.bayersensor.dcb_iterations = dcbIterations->getIntValue(); pp->raw.bayersensor.dcb_iterations = dcbIterations->getIntValue();
pp->raw.bayersensor.dcb_enhance = dcbEnhance->getLastActive (); pp->raw.bayersensor.dcb_enhance = dcbEnhance->getLastActive ();
pp->raw.bayersensor.border = border->get_value (); pp->raw.bayersensor.border = border->getIntValue();
pp->raw.bayersensor.lmmse_iterations = lmmseIterations->getIntValue(); pp->raw.bayersensor.lmmse_iterations = lmmseIterations->getIntValue();
pp->raw.bayersensor.dualDemosaicContrast = dualDemosaicContrast->getValue(); pp->raw.bayersensor.dualDemosaicContrast = dualDemosaicContrast->getValue();
pp->raw.bayersensor.pixelShiftMotionCorrectionMethod = (RAWParams::BayerSensor::PSMotionCorrectionMethod)pixelShiftMotionMethod->get_active_row_number(); pp->raw.bayersensor.pixelShiftMotionCorrectionMethod = (RAWParams::BayerSensor::PSMotionCorrectionMethod)pixelShiftMotionMethod->get_active_row_number();
@ -419,6 +417,7 @@ void BayerProcess::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pe
if (pedited) { if (pedited) {
pedited->raw.bayersensor.border = border->getEditedState ();
pedited->raw.bayersensor.ccSteps = ccSteps->getEditedState (); pedited->raw.bayersensor.ccSteps = ccSteps->getEditedState ();
pedited->raw.bayersensor.method = method->get_active_text() != M("GENERAL_UNCHANGED"); pedited->raw.bayersensor.method = method->get_active_text() != M("GENERAL_UNCHANGED");
pedited->raw.bayersensor.imageNum = imageNumber->get_active_text() != M("GENERAL_UNCHANGED"); pedited->raw.bayersensor.imageNum = imageNumber->get_active_text() != M("GENERAL_UNCHANGED");
@ -446,6 +445,7 @@ void BayerProcess::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pe
void BayerProcess::setAdjusterBehavior (bool falsecoloradd, bool iteradd, bool dualdemozecontrastadd, bool pssigmaadd, bool pssmoothadd, bool pseperisoadd) void BayerProcess::setAdjusterBehavior (bool falsecoloradd, bool iteradd, bool dualdemozecontrastadd, bool pssigmaadd, bool pssmoothadd, bool pseperisoadd)
{ {
border->setAddMode(false);
ccSteps->setAddMode(falsecoloradd); ccSteps->setAddMode(falsecoloradd);
dcbIterations->setAddMode(iteradd); dcbIterations->setAddMode(iteradd);
lmmseIterations->setAddMode(iteradd); lmmseIterations->setAddMode(iteradd);
@ -457,6 +457,7 @@ void BayerProcess::setAdjusterBehavior (bool falsecoloradd, bool iteradd, bool d
void BayerProcess::trimValues (rtengine::procparams::ProcParams* pp) void BayerProcess::trimValues (rtengine::procparams::ProcParams* pp)
{ {
border->trimValue(pp->raw.bayersensor.border);
ccSteps->trimValue(pp->raw.bayersensor.ccSteps); ccSteps->trimValue(pp->raw.bayersensor.ccSteps);
dcbIterations->trimValue(pp->raw.bayersensor.dcb_iterations); dcbIterations->trimValue(pp->raw.bayersensor.dcb_iterations);
lmmseIterations->trimValue(pp->raw.bayersensor.lmmse_iterations); lmmseIterations->trimValue(pp->raw.bayersensor.lmmse_iterations);
@ -477,6 +478,7 @@ void BayerProcess::setBatchMode(bool batchMode)
imageNumber->append (M("GENERAL_UNCHANGED")); imageNumber->append (M("GENERAL_UNCHANGED"));
imageNumber->set_active_text (M("GENERAL_UNCHANGED")); imageNumber->set_active_text (M("GENERAL_UNCHANGED"));
ToolPanel::setBatchMode (batchMode); ToolPanel::setBatchMode (batchMode);
border->showEditedCB ();
ccSteps->showEditedCB (); ccSteps->showEditedCB ();
dcbIterations->showEditedCB (); dcbIterations->showEditedCB ();
lmmseIterations->showEditedCB (); lmmseIterations->showEditedCB ();
@ -492,6 +494,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams
dualDemosaicContrast->setDefault( defParams->raw.bayersensor.dualDemosaicContrast); dualDemosaicContrast->setDefault( defParams->raw.bayersensor.dualDemosaicContrast);
pixelShiftEperIso->setDefault( defParams->raw.bayersensor.pixelShiftEperIso); pixelShiftEperIso->setDefault( defParams->raw.bayersensor.pixelShiftEperIso);
pixelShiftSigma->setDefault( defParams->raw.bayersensor.pixelShiftSigma); pixelShiftSigma->setDefault( defParams->raw.bayersensor.pixelShiftSigma);
border->setDefault (defParams->raw.bayersensor.border);
ccSteps->setDefault (defParams->raw.bayersensor.ccSteps); ccSteps->setDefault (defParams->raw.bayersensor.ccSteps);
if (pedited) { if (pedited) {
@ -500,6 +503,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams
dualDemosaicContrast->setDefaultEditedState( pedited->raw.bayersensor.dualDemosaicContrast ? Edited : UnEdited); dualDemosaicContrast->setDefaultEditedState( pedited->raw.bayersensor.dualDemosaicContrast ? Edited : UnEdited);
pixelShiftEperIso->setDefaultEditedState( pedited->raw.bayersensor.pixelShiftEperIso ? Edited : UnEdited); pixelShiftEperIso->setDefaultEditedState( pedited->raw.bayersensor.pixelShiftEperIso ? Edited : UnEdited);
pixelShiftSigma->setDefaultEditedState( pedited->raw.bayersensor.pixelShiftSigma ? Edited : UnEdited); pixelShiftSigma->setDefaultEditedState( pedited->raw.bayersensor.pixelShiftSigma ? Edited : UnEdited);
border->setDefaultEditedState(pedited->raw.bayersensor.border ? Edited : UnEdited);
ccSteps->setDefaultEditedState(pedited->raw.bayersensor.ccSteps ? Edited : UnEdited); ccSteps->setDefaultEditedState(pedited->raw.bayersensor.ccSteps ? Edited : UnEdited);
} else { } else {
dcbIterations->setDefaultEditedState( Irrelevant ); dcbIterations->setDefaultEditedState( Irrelevant );
@ -507,6 +511,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams
dualDemosaicContrast->setDefaultEditedState( Irrelevant ); dualDemosaicContrast->setDefaultEditedState( Irrelevant );
pixelShiftEperIso->setDefaultEditedState( Irrelevant ); pixelShiftEperIso->setDefaultEditedState( Irrelevant );
pixelShiftSigma->setDefaultEditedState( Irrelevant ); pixelShiftSigma->setDefaultEditedState( Irrelevant );
border->setDefaultEditedState(Irrelevant);
ccSteps->setDefaultEditedState(Irrelevant ); ccSteps->setDefaultEditedState(Irrelevant );
} }
} }
@ -528,6 +533,8 @@ void BayerProcess::adjusterChanged (Adjuster* a, double newval)
listener->panelChanged (EvPixelShiftSigma, a->getTextValue() ); listener->panelChanged (EvPixelShiftSigma, a->getTextValue() );
} else if (a == pixelShiftSmooth) { } else if (a == pixelShiftSmooth) {
listener->panelChanged (EvPixelShiftSmooth, a->getTextValue() ); listener->panelChanged (EvPixelShiftSmooth, a->getTextValue() );
} else if (a == border) {
listener->panelChanged (EvDemosaicBorder, a->getTextValue() );
} }
} }
} }
@ -724,7 +731,3 @@ void BayerProcess::FrameCountChanged(int n, int frameNum)
// imageNumber->block (false); // imageNumber->block (false);
} }
void BayerProcess::borderChanged ()
{
listener->panelChanged (EvDemosaicBorder, Glib::ustring::format (border->get_value_as_int()));
}

View File

@ -32,7 +32,7 @@ protected:
MyComboBoxText* method; MyComboBoxText* method;
Gtk::HBox *imageNumberBox; Gtk::HBox *imageNumberBox;
MySpinButton* border; Adjuster* border;
MyComboBoxText* imageNumber; MyComboBoxText* imageNumber;
Adjuster* ccSteps; Adjuster* ccSteps;
Gtk::VBox *dcbOptions; Gtk::VBox *dcbOptions;
@ -61,7 +61,6 @@ protected:
int oldMethod; int oldMethod;
IdleRegister idle_register; IdleRegister idle_register;
sigc::connection borderconn;
rtengine::ProcEvent EvDemosaicBorder; rtengine::ProcEvent EvDemosaicBorder;
rtengine::ProcEvent EvDemosaicContrast; rtengine::ProcEvent EvDemosaicContrast;
@ -84,7 +83,6 @@ public:
void pixelShiftMotionMethodChanged(); void pixelShiftMotionMethodChanged();
void pixelShiftDemosaicMethodChanged(); void pixelShiftDemosaicMethodChanged();
void FrameCountChanged(int n, int frameNum); void FrameCountChanged(int n, int frameNum);
void borderChanged();
}; };
#endif #endif