Merge branch 'dev' into spot-removal-tool (#2239)

This commit is contained in:
Hombre
2018-01-25 20:41:10 +01:00
183 changed files with 9182 additions and 5571 deletions

View File

@@ -36,11 +36,12 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
colorPanel = Gtk::manage (new ToolVBox ());
transformPanel = Gtk::manage (new ToolVBox ());
rawPanel = Gtk::manage (new ToolVBox ());
waveletPanel = Gtk::manage (new ToolVBox ());
advancedPanel = Gtk::manage (new ToolVBox ());
coarse = Gtk::manage (new CoarsePanel ());
toneCurve = Gtk::manage (new ToneCurve ());
shadowshighlights = Gtk::manage (new ShadowsHighlights ());
localContrast = Gtk::manage(new LocalContrast());
impulsedenoise = Gtk::manage (new ImpulseDenoise ());
defringe = Gtk::manage (new Defringe ());
spot = Gtk::manage (new Spot ());
@@ -71,10 +72,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
prsharpening = Gtk::manage (new PrSharpening());
crop = Gtk::manage (new Crop ());
icm = Gtk::manage (new ICMPanel ());
if(!batch) {
exifpanel = Gtk::manage (new ExifPanel ());
iptcpanel = Gtk::manage (new IPTCPanel ());
}
metadata = Gtk::manage(new MetaDataPanel());
wavelet = Gtk::manage (new Wavelet ());
dirpyrequalizer = Gtk::manage (new DirPyrEqualizer ());
hsvequalizer = Gtk::manage (new HSVEqualizer ());
@@ -107,6 +105,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
addPanel (colorPanel, vibrance);
addPanel (colorPanel, chmixer);
addPanel (colorPanel, blackwhite);
addPanel (exposurePanel, localContrast);
addPanel (exposurePanel, shadowshighlights);
addPanel (detailsPanel, spot);
addPanel (detailsPanel, sharpening);
@@ -118,16 +117,16 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
addPanel (colorPanel, colortoning);
addPanel (exposurePanel, epd);
addPanel (exposurePanel, fattal);
addPanel (exposurePanel, retinex);
addPanel (advancedPanel, retinex);
addPanel (exposurePanel, pcvignette);
addPanel (exposurePanel, gradient);
addPanel (exposurePanel, lcurve);
addPanel (exposurePanel, colorappearance);
addPanel (advancedPanel, colorappearance);
addPanel (detailsPanel, impulsedenoise);
addPanel (detailsPanel, dirpyrdenoise);
addPanel (detailsPanel, defringe);
addPanel (detailsPanel, dirpyrequalizer);
addPanel (waveletPanel, wavelet);
addPanel (advancedPanel, wavelet);
addPanel (transformPanel, crop);
addPanel (transformPanel, resize);
addPanel (resize->getPackBox(), prsharpening, 2);
@@ -153,17 +152,8 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
addPanel (rawPanel, flatfield);
toolPanels.push_back (coarse);
toolPanels.push_back(metadata);
if(!batch) {
toolPanels.push_back (exifpanel);
toolPanels.push_back (iptcpanel);
metadataPanel = Gtk::manage (new Gtk::Notebook ());
metadataPanel->set_name ("MetaPanelNotebook");
metadataPanel->append_page (*exifpanel, M ("MAIN_TAB_EXIF"));
metadataPanel->append_page (*iptcpanel, M ("MAIN_TAB_IPTC"));
} else {
metadataPanel = nullptr;
}
toolPanelNotebook = new Gtk::Notebook ();
toolPanelNotebook->set_name ("ToolPanelNotebook");
@@ -173,7 +163,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
colorPanelSW = Gtk::manage (new MyScrolledWindow ());
transformPanelSW = Gtk::manage (new MyScrolledWindow ());
rawPanelSW = Gtk::manage (new MyScrolledWindow ());
waveletPanelSW = Gtk::manage (new MyScrolledWindow ());
advancedPanelSW = Gtk::manage (new MyScrolledWindow ());
updateVScrollbars (options.hideTPVScrollbar);
// load panel endings
@@ -197,9 +187,9 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
colorPanel->pack_start (*Gtk::manage (new Gtk::HSeparator), Gtk::PACK_SHRINK, 0);
colorPanel->pack_start (*vbPanelEnd[2], Gtk::PACK_SHRINK, 4);
waveletPanelSW->add (*waveletPanel);
waveletPanel->pack_start (*Gtk::manage (new Gtk::HSeparator), Gtk::PACK_SHRINK, 0);
waveletPanel->pack_start (*vbPanelEnd[5], Gtk::PACK_SHRINK, 0);
advancedPanelSW->add (*advancedPanel);
advancedPanel->pack_start (*Gtk::manage (new Gtk::HSeparator), Gtk::PACK_SHRINK, 0);
advancedPanel->pack_start (*vbPanelEnd[5], Gtk::PACK_SHRINK, 0);
transformPanelSW->add (*transformPanel);
transformPanel->pack_start (*Gtk::manage (new Gtk::HSeparator), Gtk::PACK_SHRINK, 0);
@@ -216,24 +206,18 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), hasChan
toiE = Gtk::manage (new TextOrIcon ("exposure.png", M ("MAIN_TAB_EXPOSURE"), M ("MAIN_TAB_EXPOSURE_TOOLTIP"), type));
toiD = Gtk::manage (new TextOrIcon ("detail.png", M ("MAIN_TAB_DETAIL"), M ("MAIN_TAB_DETAIL_TOOLTIP"), type));
toiC = Gtk::manage (new TextOrIcon ("colour.png", M ("MAIN_TAB_COLOR"), M ("MAIN_TAB_COLOR_TOOLTIP"), type));
toiW = Gtk::manage (new TextOrIcon ("wavelet.png", M ("MAIN_TAB_WAVELET"), M ("MAIN_TAB_WAVELET_TOOLTIP"), type));
toiW = Gtk::manage (new TextOrIcon ("atom.png", M ("MAIN_TAB_ADVANCED"), M ("MAIN_TAB_ADVANCED_TOOLTIP"), type));
toiT = Gtk::manage (new TextOrIcon ("transform.png", M ("MAIN_TAB_TRANSFORM"), M ("MAIN_TAB_TRANSFORM_TOOLTIP"), type));
toiR = Gtk::manage (new TextOrIcon ("raw.png", M ("MAIN_TAB_RAW"), M ("MAIN_TAB_RAW_TOOLTIP"), type));
if(!batch) {
toiM = Gtk::manage (new TextOrIcon ("meta.png", M ("MAIN_TAB_METADATA"), M ("MAIN_TAB_METADATA_TOOLTIP"), type));
} else {
toiM = nullptr;
}
toiM = Gtk::manage (new TextOrIcon ("meta.png", M ("MAIN_TAB_METADATA"), M ("MAIN_TAB_METADATA_TOOLTIP"), type));
toolPanelNotebook->append_page (*exposurePanelSW, *toiE);
toolPanelNotebook->append_page (*detailsPanelSW, *toiD);
toolPanelNotebook->append_page (*colorPanelSW, *toiC);
toolPanelNotebook->append_page (*waveletPanelSW, *toiW);
toolPanelNotebook->append_page (*advancedPanelSW, *toiW);
toolPanelNotebook->append_page (*transformPanelSW, *toiT);
toolPanelNotebook->append_page (*rawPanelSW, *toiR);
if(!batch) {
toolPanelNotebook->append_page (*metadataPanel, *toiM);
}
toolPanelNotebook->append_page (*metadata, *toiM);
toolPanelNotebook->set_current_page (0);
@@ -315,7 +299,7 @@ void ToolPanelCoordinator::panelChanged (rtengine::ProcEvent event, const Glib::
return;
}
int changeFlags = refreshmap[ (int)event];
int changeFlags = rtengine::RefreshMapper::getInstance()->getAction(event);
ProcParams* params = ipc->beginUpdateParams ();
@@ -327,7 +311,7 @@ void ToolPanelCoordinator::panelChanged (rtengine::ProcEvent event, const Glib::
if (event == rtengine::EvCTHFlip || event == rtengine::EvCTVFlip) {
if (fabs (params->rotate.degree) > 0.001) {
params->rotate.degree *= -1;
changeFlags |= refreshmap[ (int)rtengine::EvROTDegree];
changeFlags |= rtengine::RefreshMapper::getInstance()->getAction(rtengine::EvROTDegree);
rotate->read (params);
}
}
@@ -446,7 +430,7 @@ void ToolPanelCoordinator::profileChange (const PartialProfile *nparams, rtengi
// start the IPC processing
if (filterRawRefresh) {
ipc->endUpdateParams ( refreshmap[ (int)event] & ALLNORAW );
ipc->endUpdateParams ( rtengine::RefreshMapper::getInstance()->getAction(event) & ALLNORAW );
} else {
ipc->endUpdateParams (event);
}
@@ -483,8 +467,7 @@ void ToolPanelCoordinator::initImage (rtengine::StagedImageProcessor* ipc_, bool
if (ipc) {
const rtengine::FramesMetaData* pMetaData = ipc->getInitialImage()->getMetaData();
exifpanel->setImageData (pMetaData);
iptcpanel->setImageData (pMetaData);
metadata->setImageData(pMetaData);
ipc->setAutoExpListener (toneCurve);
ipc->setAutoCamListener (colorappearance);
@@ -820,14 +803,12 @@ bool ToolPanelCoordinator::handleShortcutKey (GdkEventKey* event)
return true;
case GDK_KEY_w:
toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*waveletPanelSW));
toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*advancedPanelSW));
return true;
case GDK_KEY_m:
if (metadataPanel) {
toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*metadataPanel));
return true;
}
toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*metadata));
return true;
}
}
@@ -843,7 +824,7 @@ void ToolPanelCoordinator::updateVScrollbars (bool hide)
colorPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
transformPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
rawPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
waveletPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
advancedPanelSW->set_policy (Gtk::POLICY_AUTOMATIC, policy);
for (auto currExp : expList) {
currExp->updateVScrollbars (hide);