Committing patch from issue 1240: "Partial profile handling"
This commit is contained in:
@@ -85,7 +85,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) {
|
||||
addPanel (detailsPanel, sharpenEdge, M("TP_SHARPENEDGE_LABEL")); toolPanels.push_back (sharpenEdge);
|
||||
addPanel (detailsPanel, sharpenMicro, M("TP_SHARPENMICRO_LABEL")); toolPanels.push_back (sharpenMicro);
|
||||
addPanel (colorPanel, hsvequalizer, M("TP_HSVEQUALIZER_LABEL")); toolPanels.push_back (hsvequalizer);
|
||||
addPanel (colorPanel, rgbcurves, M("TP_RGBCURVES_LABEL")); toolPanels.push_back (rgbcurves);
|
||||
addPanel (colorPanel, rgbcurves, M("TP_RGBCURVES_LABEL")); toolPanels.push_back (rgbcurves);
|
||||
addPanel (exposurePanel, edgePreservingDecompositionUI, M("TP_EPD_LABEL")); toolPanels.push_back (edgePreservingDecompositionUI);
|
||||
addPanel (exposurePanel, lcurve, M("TP_LABCURVE_LABEL")); toolPanels.push_back (lcurve);
|
||||
addPanel (detailsPanel, impulsedenoise, M("TP_IMPULSEDENOISE_LABEL")); toolPanels.push_back (impulsedenoise);
|
||||
@@ -263,26 +263,40 @@ void ToolPanelCoordinator::panelChanged (rtengine::ProcEvent event, const Glib::
|
||||
paramcListeners[i]->procParamsChanged (params, event, descr);
|
||||
}
|
||||
|
||||
void ToolPanelCoordinator::profileChange (const ProcParams *nparams, rtengine::ProcEvent event, const Glib::ustring& descr, const ParamsEdited* paramsEdited) {
|
||||
void ToolPanelCoordinator::profileChange (const PartialProfile *nparams, rtengine::ProcEvent event, const Glib::ustring& descr, const ParamsEdited* paramsEdited) {
|
||||
|
||||
int fw, fh, tr;
|
||||
|
||||
if (!ipc) return;
|
||||
ProcParams *params = ipc->beginUpdateParams ();
|
||||
ProcParams *mergedParams = new ProcParams();
|
||||
|
||||
// Copy the current params as default values for the fusion
|
||||
*mergedParams = *params;
|
||||
|
||||
// Reset IPTC values when switching procparams from the History
|
||||
if (event == rtengine::EvHistoryBrowsed) {
|
||||
mergedParams->iptc.clear();
|
||||
mergedParams->exif.clear();
|
||||
}
|
||||
|
||||
// And apply the partial profile nparams to mergedParams
|
||||
nparams->applyTo(mergedParams);
|
||||
|
||||
// Derive the effective changes, if it's a profile change, to prevent slow RAW rerendering if not necessary
|
||||
bool filterRawRefresh=false;
|
||||
if (event!=rtengine::EvPhotoLoaded) {
|
||||
ParamsEdited pe;
|
||||
std::vector<rtengine::procparams::ProcParams> lParams(2);
|
||||
lParams[0]=*params; lParams[1]=*nparams;
|
||||
lParams[0]=*params; lParams[1]=*mergedParams;
|
||||
pe.set(true);
|
||||
pe.initFrom (lParams);
|
||||
|
||||
filterRawRefresh=pe.raw.isUnchanged();
|
||||
}
|
||||
|
||||
*params = *nparams;
|
||||
*params = *mergedParams;
|
||||
delete mergedParams;
|
||||
|
||||
tr = TR_NONE;
|
||||
if (params->coarse.rotate==90) tr |= TR_R90;
|
||||
|
Reference in New Issue
Block a user