Change Locallab tool members from pointers to obj.

Ensures the LocallabTools are destructed when Locallab is.
This commit is contained in:
Lawrence Lee
2021-08-27 22:17:41 -07:00
parent 5a49ea7b8c
commit d897116507
2 changed files with 29 additions and 44 deletions

View File

@@ -150,21 +150,6 @@ Locallab::Locallab():
// Tool list widget // Tool list widget
toollist(Gtk::manage(new LocallabToolList())), toollist(Gtk::manage(new LocallabToolList())),
// Create Locallab tools
expcolor(Gtk::manage(new LocallabColor())),
expexpose(Gtk::manage(new LocallabExposure())),
expshadhigh(Gtk::manage(new LocallabShadow())),
expvibrance(Gtk::manage(new LocallabVibrance())),
expsoft(Gtk::manage(new LocallabSoft())),
expblur(Gtk::manage(new LocallabBlur())),
exptonemap(Gtk::manage(new LocallabTone())),
expreti(Gtk::manage(new LocallabRetinex())),
expsharp(Gtk::manage(new LocallabSharp())),
expcontrast(Gtk::manage(new LocallabContrast())),
expcbdl(Gtk::manage(new LocallabCBDL())),
explog(Gtk::manage(new LocallabLog())),
expmask(Gtk::manage(new LocallabMask())),
// Other widgets // Other widgets
resetshowButton(Gtk::manage(new Gtk::Button(M("TP_LOCALLAB_RESETSHOW")))) resetshowButton(Gtk::manage(new Gtk::Button(M("TP_LOCALLAB_RESETSHOW"))))
{ {
@@ -190,19 +175,19 @@ Locallab::Locallab():
// Add Locallab tools to panel widget // Add Locallab tools to panel widget
ToolVBox* const toolpanel = Gtk::manage(new ToolVBox()); ToolVBox* const toolpanel = Gtk::manage(new ToolVBox());
toolpanel->set_name("LocallabToolPanel"); toolpanel->set_name("LocallabToolPanel");
addTool(toolpanel, expcolor); addTool(toolpanel, &expcolor);
addTool(toolpanel, expshadhigh); addTool(toolpanel, &expshadhigh);
addTool(toolpanel, expvibrance); addTool(toolpanel, &expvibrance);
addTool(toolpanel, explog); addTool(toolpanel, &explog);
addTool(toolpanel, expexpose); addTool(toolpanel, &expexpose);
addTool(toolpanel, expmask); addTool(toolpanel, &expmask);
addTool(toolpanel, expsoft); addTool(toolpanel, &expsoft);
addTool(toolpanel, expblur); addTool(toolpanel, &expblur);
addTool(toolpanel, exptonemap); addTool(toolpanel, &exptonemap);
addTool(toolpanel, expreti); addTool(toolpanel, &expreti);
addTool(toolpanel, expsharp); addTool(toolpanel, &expsharp);
addTool(toolpanel, expcontrast); addTool(toolpanel, &expcontrast);
addTool(toolpanel, expcbdl); addTool(toolpanel, &expcbdl);
panel->pack_start(*toolpanel, false, false); panel->pack_start(*toolpanel, false, false);
// Add separator // Add separator
@@ -689,7 +674,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
const double Tmin = retiMinMax.at(pp->locallab.selspot).Tmin; const double Tmin = retiMinMax.at(pp->locallab.selspot).Tmin;
const double Tmax = retiMinMax.at(pp->locallab.selspot).Tmax; const double Tmax = retiMinMax.at(pp->locallab.selspot).Tmax;
expreti->updateMinMax(cdma, cdmin, mini, maxi, Tmean, Tsigma, Tmin, Tmax); expreti.updateMinMax(cdma, cdmin, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
} }
// Update default values according to selected spot // Update default values according to selected spot
@@ -1056,14 +1041,14 @@ void Locallab::minmaxChanged(const std::vector<locallabRetiMinMax> &minmax, int
const double Tmin = retiMinMax.at(selspot).Tmin; const double Tmin = retiMinMax.at(selspot).Tmin;
const double Tmax = retiMinMax.at(selspot).Tmax; const double Tmax = retiMinMax.at(selspot).Tmax;
expreti->updateMinMax(cdma, cdmin, mini, maxi, Tmean, Tsigma, Tmin, Tmax); expreti.updateMinMax(cdma, cdmin, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
} }
} }
void Locallab::logencodChanged(const float blackev, const float whiteev, const float sourceg, const float sourceab, const float targetg) void Locallab::logencodChanged(const float blackev, const float whiteev, const float sourceg, const float sourceab, const float targetg)
{ {
// Update Locallab Log Encoding accordingly // Update Locallab Log Encoding accordingly
explog->updateAutocompute(blackev, whiteev, sourceg, sourceab, targetg); explog.updateAutocompute(blackev, whiteev, sourceg, sourceab, targetg);
} }
void Locallab::refChanged(const std::vector<locallabRef> &ref, int selspot) void Locallab::refChanged(const std::vector<locallabRef> &ref, int selspot)

View File

@@ -103,19 +103,19 @@ private:
LocallabToolList* const toollist; LocallabToolList* const toollist;
// Locallab tool widgets // Locallab tool widgets
LocallabColor* const expcolor; LocallabColor expcolor;
LocallabExposure* const expexpose; LocallabExposure expexpose;
LocallabShadow* const expshadhigh; LocallabShadow expshadhigh;
LocallabVibrance* const expvibrance; LocallabVibrance expvibrance;
LocallabSoft* const expsoft; LocallabSoft expsoft;
LocallabBlur* const expblur; LocallabBlur expblur;
LocallabTone* const exptonemap; LocallabTone exptonemap;
LocallabRetinex* const expreti; LocallabRetinex expreti;
LocallabSharp* const expsharp; LocallabSharp expsharp;
LocallabContrast* const expcontrast; LocallabContrast expcontrast;
LocallabCBDL* const expcbdl; LocallabCBDL expcbdl;
LocallabLog* const explog; LocallabLog explog;
LocallabMask* const expmask; LocallabMask expmask;
std::vector<LocallabTool*> locallabTools; std::vector<LocallabTool*> locallabTools;