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);
Gtk::HBox* borderbox = Gtk::manage (new Gtk::HBox ());
border = Gtk::manage (new MySpinButton ());
borderbox->set_spacing(3);
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);
border = Gtk::manage (new Adjuster (M("TP_RAW_BORDER"), 0, 16, 1, 4 ));
border->setAdjusterListener (this);
if (border->delay < options.adjusterMaxDelay) {
border->delay = options.adjusterMaxDelay;
}
border->show();
borderbox->pack_start (*border);
pack_start( *borderbox, Gtk::PACK_SHRINK, 4);
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) ));
pixelShiftMotionMethod->connect(pixelShiftMotionMethod->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::pixelShiftMotionMethodChanged) ));
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 ();
method->block (true);
imageNumber->block (true);
borderconn.block(true);
pixelShiftDemosaicMethod->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);
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) {
border->setEditedState (pedited->raw.bayersensor.border ? Edited : UnEdited);
ccSteps->setEditedState (pedited->raw.bayersensor.ccSteps ? Edited : UnEdited);
dcbIterations->setEditedState ( pedited->raw.bayersensor.dcbIterations ? Edited : UnEdited);
dcbEnhance->setEdited (pedited->raw.bayersensor.dcbEnhance);
@ -373,7 +372,6 @@ void BayerProcess::read(const rtengine::procparams::ProcParams* pp, const Params
method->block (false);
imageNumber->block (false);
borderconn.block (false);
pixelShiftDemosaicMethod->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.dcb_iterations = dcbIterations->getIntValue();
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.dualDemosaicContrast = dualDemosaicContrast->getValue();
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) {
pedited->raw.bayersensor.border = border->getEditedState ();
pedited->raw.bayersensor.ccSteps = ccSteps->getEditedState ();
pedited->raw.bayersensor.method = method->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)
{
border->setAddMode(false);
ccSteps->setAddMode(falsecoloradd);
dcbIterations->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)
{
border->trimValue(pp->raw.bayersensor.border);
ccSteps->trimValue(pp->raw.bayersensor.ccSteps);
dcbIterations->trimValue(pp->raw.bayersensor.dcb_iterations);
lmmseIterations->trimValue(pp->raw.bayersensor.lmmse_iterations);
@ -477,6 +478,7 @@ void BayerProcess::setBatchMode(bool batchMode)
imageNumber->append (M("GENERAL_UNCHANGED"));
imageNumber->set_active_text (M("GENERAL_UNCHANGED"));
ToolPanel::setBatchMode (batchMode);
border->showEditedCB ();
ccSteps->showEditedCB ();
dcbIterations->showEditedCB ();
lmmseIterations->showEditedCB ();
@ -492,6 +494,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams
dualDemosaicContrast->setDefault( defParams->raw.bayersensor.dualDemosaicContrast);
pixelShiftEperIso->setDefault( defParams->raw.bayersensor.pixelShiftEperIso);
pixelShiftSigma->setDefault( defParams->raw.bayersensor.pixelShiftSigma);
border->setDefault (defParams->raw.bayersensor.border);
ccSteps->setDefault (defParams->raw.bayersensor.ccSteps);
if (pedited) {
@ -500,6 +503,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams
dualDemosaicContrast->setDefaultEditedState( pedited->raw.bayersensor.dualDemosaicContrast ? Edited : UnEdited);
pixelShiftEperIso->setDefaultEditedState( pedited->raw.bayersensor.pixelShiftEperIso ? 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);
} else {
dcbIterations->setDefaultEditedState( Irrelevant );
@ -507,6 +511,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams
dualDemosaicContrast->setDefaultEditedState( Irrelevant );
pixelShiftEperIso->setDefaultEditedState( Irrelevant );
pixelShiftSigma->setDefaultEditedState( Irrelevant );
border->setDefaultEditedState(Irrelevant);
ccSteps->setDefaultEditedState(Irrelevant );
}
}
@ -528,6 +533,8 @@ void BayerProcess::adjusterChanged (Adjuster* a, double newval)
listener->panelChanged (EvPixelShiftSigma, a->getTextValue() );
} else if (a == pixelShiftSmooth) {
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);
}
void BayerProcess::borderChanged ()
{
listener->panelChanged (EvDemosaicBorder, Glib::ustring::format (border->get_value_as_int()));
}

View File

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