From 00cc9372d82107bb742a41218f4a67b935b5ca62 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 28 Jun 2018 14:49:07 +0200 Subject: [PATCH] Changed raw border from spinbox to adjuster --- rtgui/bayerprocess.cc | 37 ++++++++++++++++++++----------------- rtgui/bayerprocess.h | 4 +--- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/rtgui/bayerprocess.cc b/rtgui/bayerprocess.cc index 6af86a1b8..683a05403 100644 --- a/rtgui/bayerprocess.cc +++ b/rtgui/bayerprocess.cc @@ -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())); -} \ No newline at end of file diff --git a/rtgui/bayerprocess.h b/rtgui/bayerprocess.h index 996a4be90..253494e58 100644 --- a/rtgui/bayerprocess.h +++ b/rtgui/bayerprocess.h @@ -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