diff --git a/rtdata/languages/default b/rtdata/languages/default index d86b4f80b..f576937c5 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2270,6 +2270,7 @@ TP_LOCALLAB_EXPGRAD;Graduated Filter TP_LOCALLAB_EXPMETHOD_TOOLTIP;Standard : use an algorithm similar as main Exposure but in L*a*b* and taking account of deltaE.\n\nLaplacian & PDE : use another algorithm also with deltaE and with Poisson equation to solve Laplacian in Fourier space.\nPDE IPOL, PDE Fattal and Standard can be combined.\nFFTW Fourier Transform is optimized in size to reduce processing time.\nPDE reduce artifacts and noise. TP_LOCALLAB_EXPOSE;Exposure TP_LOCALLAB_EXPOSURE_TOOLTIP;In some cases (strong shadows ..) you can use the module "Shadows Highlights" +TP_LOCALLAB_EXPRETITOOLS;Advanced Retinex Tools TP_LOCALLAB_EXPTOOL;Tools exposure TP_LOCALLAB_EXPTRC;Tone Response Curve - TRC TP_LOCALLAB_FATAMOUNT;Amount diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc index b3a7ec50a..cc651a0b3 100644 --- a/rtgui/locallab.cc +++ b/rtgui/locallab.cc @@ -225,6 +225,7 @@ Locallab::Locallab(): expblur(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), exptonemap(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), expreti(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), + expretitools(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_EXPRETITOOLS")))), expsharp(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), expcontrast(Gtk::manage(new MyExpander(true, M("TP_LOCALLAB_LOC_CONTRAST")))), expcbdl(Gtk::manage(new MyExpander(true, Gtk::manage(new Gtk::HBox())))), @@ -2443,6 +2444,10 @@ pe(nullptr) expmaskreti->set_tooltip_markup(M("TP_LOCALLAB_MASK_TOOLTIP")); } + setExpandAlignProperties(expretitools, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); + expretitools->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Locallab::foldAllButMe), expretitools)); + expretitools->setLevel(2); + retinexMethod->append(M("TP_RETINEX_LOW")); retinexMethod->append(M("TP_RETINEX_UNIFORM")); retinexMethod->append(M("TP_RETINEX_HIGH")); @@ -2659,27 +2664,35 @@ pe(nullptr) ToolParamBlock* const genBox = Gtk::manage(new ToolParamBlock()); genBox->pack_start(*auxBox); + ToolParamBlock* const toolretiBox = Gtk::manage(new ToolParamBlock()); retiBox->pack_start(*retinexMethod); retiBox->pack_start(*fftwreti); retiBox->pack_start(*equilret); - retiBox->pack_start(*chrrt); retiBox->pack_start(*neigh); retiBox->pack_start(*vart); retiBox->pack_start(*scalereti); - retiBox->pack_start(*darkness); - retiBox->pack_start(*lightnessreti); - retiBox->pack_start(*softradiusret); retiBox->pack_start(*limd); - retiBox->pack_start(*cliptm); retiBox->pack_start(*offs); - retiBox->pack_start(*mMLabels); - retiBox->pack_start(*transLabels); - retiBox->pack_start(*transLabels2); - retiBox->pack_start(*LocalcurveEditortransT, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor - retiBox->pack_start(*LocalcurveEditorgainT, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor + + toolretiBox->pack_start(*chrrt); + toolretiBox->pack_start(*darkness); + toolretiBox->pack_start(*lightnessreti); + toolretiBox->pack_start(*cliptm); + toolretiBox->pack_start(*softradiusret); + toolretiBox->pack_start(*LocalcurveEditortransT, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor + + toolretiBox->pack_start(*mMLabels); + toolretiBox->pack_start(*transLabels); + toolretiBox->pack_start(*transLabels2); + toolretiBox->pack_start(*LocalcurveEditorgainT, Gtk::PACK_SHRINK, 4); + expretitools->add(*toolretiBox, false); + retiBox->pack_start(*expretitools, false, false); + + retiBox->pack_start(*expmaskreti, false, false); // retiBox->pack_start(*inversret); + retitoolFrame->add(*retiBox); genBox->pack_start(*retitoolFrame); expreti->add(*genBox, false); @@ -2687,6 +2700,7 @@ pe(nullptr) panel->pack_start(*expreti, false, false); + // Sharpening Gtk::HBox* const sharpTitleHBox = Gtk::manage(new Gtk::HBox()); Gtk::Label* const sharpLabel = Gtk::manage(new Gtk::Label()); @@ -3530,6 +3544,7 @@ void Locallab::foldAllButMe(GdkEventButton* event, MyExpander *expander) expmaskexp->set_expanded(expmaskexp == expander); expmasksh->set_expanded(expmasksh == expander); expmaskcb->set_expanded(expmaskcb == expander); + expretitools->set_expanded(expretitools == expander); expmaskreti->set_expanded(expmaskreti == expander); expmasktm->set_expanded(expmasktm == expander); expmaskbl->set_expanded(expmaskbl == expander); @@ -3635,6 +3650,7 @@ void Locallab::writeOptions(std::vector &tpOpen) tpOpen.push_back(expshadhigh->get_expanded()); tpOpen.push_back(expmaskcb->get_expanded()); tpOpen.push_back(expcbdl->get_expanded()); + tpOpen.push_back(expretitools->get_expanded()); tpOpen.push_back(expmaskreti->get_expanded()); tpOpen.push_back(expreti->get_expanded()); tpOpen.push_back(expmasktm->get_expanded()); @@ -3818,7 +3834,7 @@ void Locallab::refChanged(double huer, double lumar, double chromar) void Locallab::updateToolState(std::vector &tpOpen) { - if (tpOpen.size() >= 30) { + if (tpOpen.size() >= 31) { expsettings->setExpanded(tpOpen.at(0)); expmaskcol->set_expanded(tpOpen.at(1)); expmaskcol1->set_expanded(tpOpen.at(2)); @@ -3835,20 +3851,21 @@ void Locallab::updateToolState(std::vector &tpOpen) expshadhigh->set_expanded(tpOpen.at(13)); expmaskcb->set_expanded(tpOpen.at(14)); expcbdl->set_expanded(tpOpen.at(15)); - expmaskreti->set_expanded(tpOpen.at(16)); - expreti->set_expanded(tpOpen.at(17)); - expmasktm->set_expanded(tpOpen.at(18)); - exptonemap->set_expanded(tpOpen.at(19)); - expmaskbl->set_expanded(tpOpen.at(20)); - expgradvib->set_expanded(tpOpen.at(21)); - expmaskvib->set_expanded(tpOpen.at(22)); - expvibrance->set_expanded(tpOpen.at(23)); - expsoft->set_expanded(tpOpen.at(24)); - expblur->set_expanded(tpOpen.at(25)); - expsharp->set_expanded(tpOpen.at(26)); - expcontrast->set_expanded(tpOpen.at(27)); - expdenoi->set_expanded(tpOpen.at(28)); - explog->set_expanded(tpOpen.at(29)); + expretitools->set_expanded(tpOpen.at(16)); + expmaskreti->set_expanded(tpOpen.at(17)); + expreti->set_expanded(tpOpen.at(18)); + expmasktm->set_expanded(tpOpen.at(19)); + exptonemap->set_expanded(tpOpen.at(20)); + expmaskbl->set_expanded(tpOpen.at(21)); + expgradvib->set_expanded(tpOpen.at(22)); + expmaskvib->set_expanded(tpOpen.at(23)); + expvibrance->set_expanded(tpOpen.at(24)); + expsoft->set_expanded(tpOpen.at(25)); + expblur->set_expanded(tpOpen.at(26)); + expsharp->set_expanded(tpOpen.at(27)); + expcontrast->set_expanded(tpOpen.at(28)); + expdenoi->set_expanded(tpOpen.at(29)); + explog->set_expanded(tpOpen.at(30)); } } diff --git a/rtgui/locallab.h b/rtgui/locallab.h index 7ca97757e..dba2a6092 100644 --- a/rtgui/locallab.h +++ b/rtgui/locallab.h @@ -59,6 +59,7 @@ private: MyExpander* const expblur; MyExpander* const exptonemap; MyExpander* const expreti; + MyExpander* const expretitools; MyExpander* const expsharp; MyExpander* const expcontrast; MyExpander* const expcbdl;