From 0ffc7d9617de17cfc69c82b79db8c5cdf29838e7 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sun, 25 Nov 2018 08:47:39 +0100 Subject: [PATCH 01/42] Add frames to lensprofile.cc --- rtgui/lensprofile.cc | 48 +++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index e110792ec..b2043963a 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -65,18 +65,19 @@ LensProfilePanel::LensProfilePanel() : } // Main containers: + + Gtk::Frame *nodesFrame = Gtk::manage(new Gtk::Frame(M("TP_LENSPROFILE_MODE_HEADER"))); modesGrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(modesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + Gtk::Frame *distFrame = Gtk::manage(new Gtk::Frame(M("TP_LENSPROFILE_USE_HEADER"))); distGrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(distGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); // Mode choice widgets: - Gtk::Label* const corrHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_MODE_HEADER"))); - setExpandAlignProperties(corrHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - corrUnchangedRB->hide(); corrGroup = corrUnchangedRB->get_group(); @@ -133,37 +134,34 @@ LensProfilePanel::LensProfilePanel() : // Choice of properties to correct, applicable to all modes: - Gtk::Label* const useHeaderLbl = Gtk::manage(new Gtk::Label(M("TP_LENSPROFILE_USE_HEADER"))); - setExpandAlignProperties(useHeaderLbl, true, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - // Populate modes grid: - modesGrid->attach(*corrHeaderLbl, 0, 0, 2, 1); - modesGrid->attach(*corrUnchangedRB, 0, 1, 2, 1); - modesGrid->attach(*corrOffRB, 0, 2, 2, 1); - modesGrid->attach(*corrLensfunAutoRB, 0, 3, 2, 1); - modesGrid->attach(*corrLensfunManualRB, 0, 4, 2, 1); + modesGrid->attach(*corrUnchangedRB, 0, 0, 3, 1); + modesGrid->attach(*corrOffRB, 0, 1, 3, 1); + modesGrid->attach(*corrLensfunAutoRB, 0, 2, 3, 1); + modesGrid->attach(*corrLensfunManualRB, 0, 3, 3, 1); - modesGrid->attach(*lensfunCamerasLbl, 0, 5, 1, 1); - modesGrid->attach(*lensfunCameras, 1, 5, 1, 1); - modesGrid->attach(*lensfunLensesLbl, 0, 6, 1, 1); - modesGrid->attach(*lensfunLenses, 1, 6, 1, 1); - modesGrid->attach(*warning, 2, 6, 1, 1); + modesGrid->attach(*lensfunCamerasLbl, 0, 4, 1, 1); + modesGrid->attach(*lensfunCameras, 1, 4, 1, 1); + modesGrid->attach(*lensfunLensesLbl, 0, 5, 1, 1); + modesGrid->attach(*lensfunLenses, 1, 5, 1, 1); + modesGrid->attach(*warning, 2, 4, 1, 2); - modesGrid->attach(*corrLcpFileRB, 0, 7, 1, 1); - modesGrid->attach(*corrLcpFileChooser, 1, 7, 1, 1); + modesGrid->attach(*corrLcpFileRB, 0, 6, 1, 1); + modesGrid->attach(*corrLcpFileChooser, 1, 6, 2, 1); // Populate distortions grid: - distGrid->attach(*useHeaderLbl, 0, 0, 1, 1); - distGrid->attach(*ckbUseDist, 0, 1, 1, 1); - distGrid->attach(*ckbUseVign, 0, 2, 1, 1); - distGrid->attach(*ckbUseCA, 0, 3, 1, 1); + distGrid->attach(*ckbUseDist, 0, 0, 1, 1); + distGrid->attach(*ckbUseVign, 0, 1, 1, 1); + distGrid->attach(*ckbUseCA, 0, 2, 1, 1); // Attach grids: - - pack_start(*modesGrid); - pack_start(*distGrid); + nodesFrame->add(*modesGrid); + distFrame->add(*distGrid); + + pack_start(*nodesFrame, Gtk::PACK_EXPAND_WIDGET); + pack_start(*distFrame, Gtk::PACK_EXPAND_WIDGET); // Signals: From 0f6edfe8ddbf4cf9e4ac5bf826f2e995179ab37b Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sun, 25 Nov 2018 18:06:45 +0100 Subject: [PATCH 02/42] Profiled Lens Correction Buf fix Fixed bug https://github.com/Beep6581/RawTherapee/issues/5002 Profiled Lens Correction does not seem to use (Unchanged) mode in Batch Edit --- rtgui/lensprofile.cc | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index b2043963a..66857dc79 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -78,9 +78,6 @@ LensProfilePanel::LensProfilePanel() : // Mode choice widgets: - corrUnchangedRB->hide(); - corrGroup = corrUnchangedRB->get_group(); - setExpandAlignProperties(corrLcpFileChooser, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); // Manually-selected profile widgets: @@ -136,19 +133,18 @@ LensProfilePanel::LensProfilePanel() : // Populate modes grid: - modesGrid->attach(*corrUnchangedRB, 0, 0, 3, 1); - modesGrid->attach(*corrOffRB, 0, 1, 3, 1); - modesGrid->attach(*corrLensfunAutoRB, 0, 2, 3, 1); - modesGrid->attach(*corrLensfunManualRB, 0, 3, 3, 1); + modesGrid->attach(*corrOffRB, 0, 0, 3, 1); + modesGrid->attach(*corrLensfunAutoRB, 0, 1, 3, 1); + modesGrid->attach(*corrLensfunManualRB, 0, 2, 3, 1); - modesGrid->attach(*lensfunCamerasLbl, 0, 4, 1, 1); - modesGrid->attach(*lensfunCameras, 1, 4, 1, 1); - modesGrid->attach(*lensfunLensesLbl, 0, 5, 1, 1); - modesGrid->attach(*lensfunLenses, 1, 5, 1, 1); - modesGrid->attach(*warning, 2, 4, 1, 2); + modesGrid->attach(*lensfunCamerasLbl, 0, 3, 1, 1); + modesGrid->attach(*lensfunCameras, 1, 3, 1, 1); + modesGrid->attach(*lensfunLensesLbl, 0, 4, 1, 1); + modesGrid->attach(*lensfunLenses, 1, 4, 1, 1); + modesGrid->attach(*warning, 2, 3, 1, 2); - modesGrid->attach(*corrLcpFileRB, 0, 6, 1, 1); - modesGrid->attach(*corrLcpFileChooser, 1, 6, 2, 1); + modesGrid->attach(*corrLcpFileRB, 0, 5, 1, 1); + modesGrid->attach(*corrLcpFileChooser, 1, 5, 1, 1); // Populate distortions grid: @@ -183,10 +179,6 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa disableListener(); conUseDist.block(true); - if (!batchMode) { - corrUnchangedRB->hide(); - } - corrLensfunAutoRB->set_sensitive(true); switch (pp->lensProf.lcMode) { @@ -397,10 +389,9 @@ void LensProfilePanel::setBatchMode(bool yes) FoldableToolPanel::setBatchMode(yes); if (yes) { - corrUnchangedRB->show(); + corrUnchangedRB->set_group(corrGroup); + modesGrid->attach_next_to(*corrUnchangedRB, Gtk::POS_TOP, 3, 1); corrUnchangedRB->set_active(true); - } else { - corrUnchangedRB->hide(); } } From 66e90142389b0bc5fbfd8fa9d815bfec18866cb2 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Mon, 26 Nov 2018 23:15:21 +0100 Subject: [PATCH 03/42] Batch mode fixed --- rtgui/lensprofile.cc | 55 ++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index 66857dc79..787cb2cad 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -179,7 +179,7 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa disableListener(); conUseDist.block(true); - corrLensfunAutoRB->set_sensitive(true); + // corrLensfunAutoRB->set_sensitive(true); switch (pp->lensProf.lcMode) { case procparams::LensProfParams::LcMode::LCP: { @@ -190,6 +190,9 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa case procparams::LensProfParams::LcMode::LENSFUNAUTOMATCH: { corrLensfunAutoRB->set_active(true); + if (batchMode) { + setManualParamsVisibility(false); + } break; } @@ -204,6 +207,10 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa break; } } + + if (multiImage) { + corrUnchangedRB->set_active(true); + } if (pp->lensProf.lcpFile.empty()) { const Glib::ustring lastFolder = corrLcpFileChooser->get_current_folder(); @@ -227,24 +234,29 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa const LFDatabase* const db = LFDatabase::getInstance(); LFCamera c; - if (!setLensfunCamera(pp->lensProf.lfCameraMake, pp->lensProf.lfCameraModel) && !pp->lensProf.lfManual()) { + if (pp->lensProf.lfAutoMatch()) { if (metadata) { c = db->findCamera(metadata->getMake(), metadata->getModel()); setLensfunCamera(c.getMake(), c.getModel()); } + } else if (pp->lensProf.lfManual()) { + setLensfunCamera(pp->lensProf.lfCameraMake, pp->lensProf.lfCameraModel); } - if (!setLensfunLens(pp->lensProf.lfLens) && !pp->lensProf.lfManual()) { + if (pp->lensProf.lfAutoMatch()) { if (metadata) { const LFLens l = db->findLens(c, metadata->getLens()); setLensfunLens(l.getLens()); } + } else if (pp->lensProf.lfManual()) { + setLensfunLens(pp->lensProf.lfLens); } lcModeChanged = lcpFileChanged = useDistChanged = useVignChanged = useCAChanged = false; useLensfunChanged = lensfunAutoChanged = lensfunCameraChanged = lensfunLensChanged = false; - if (!batchMode && !checkLensfunCanCorrect(true)) { + /* + if (!batchMode && !checkLensfunCanCorrect(true)) { if (corrLensfunAutoRB->get_active()) { corrOffRB->set_active(true); } @@ -252,9 +264,10 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa corrLensfunAutoRB->set_sensitive(false); } - if (corrLensfunManualRB->get_active() && !checkLensfunCanCorrect(false)) { + if (!batchMode && corrLensfunManualRB->get_active() && !checkLensfunCanCorrect(true)) { corrOffRB->set_active(true); - } + } + */ updateLensfunWarning(); @@ -293,7 +306,7 @@ void LensProfilePanel::write(rtengine::procparams::ProcParams* pp, ParamsEdited* const auto itc = lensfunCameras->get_active(); - if (itc) { + if (itc && !corrLensfunAutoRB->get_active()) { pp->lensProf.lfCameraMake = (*itc)[lf->lensfunModelCam.make]; pp->lensProf.lfCameraModel = (*itc)[lf->lensfunModelCam.model]; } else { @@ -303,7 +316,7 @@ void LensProfilePanel::write(rtengine::procparams::ProcParams* pp, ParamsEdited* const auto itl = lensfunLenses->get_active(); - if (itl) { + if (itl && !corrLensfunAutoRB->get_active()) { pp->lensProf.lfLens = (*itl)[lf->lensfunModelLens.lens]; } else { pp->lensProf.lfLens = ""; @@ -386,13 +399,13 @@ void LensProfilePanel::onUseCAChanged() void LensProfilePanel::setBatchMode(bool yes) { - FoldableToolPanel::setBatchMode(yes); - if (yes) { - corrUnchangedRB->set_group(corrGroup); - modesGrid->attach_next_to(*corrUnchangedRB, Gtk::POS_TOP, 3, 1); - corrUnchangedRB->set_active(true); - } + FoldableToolPanel::setBatchMode(yes); + + corrUnchangedRB->set_group(corrGroup); + modesGrid->attach_next_to(*corrUnchangedRB, Gtk::POS_TOP, 3, 1); + corrUnchangedRB->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrUnchangedRB)); + corrUnchangedRB->set_active(true); } void LensProfilePanel::onLensfunCameraChanged() @@ -454,15 +467,21 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) } else if (rbChanged == corrLensfunAutoRB) { useLensfunChanged = true; lensfunAutoChanged = true; + lensfunCameraChanged = true; + lensfunLensChanged = true; lcpFileChanged = true; useDistChanged = true; useVignChanged = true; ckbUseDist->set_sensitive(true); ckbUseVign->set_sensitive(true); - ckbUseCA->set_sensitive(false); + ckbUseCA->set_sensitive(true); - if (metadata) { + + if (batchMode) { + setLensfunCamera("", ""); + setLensfunLens(""); + } else if (metadata) { const bool disabled = disableListener(); const LFDatabase* const db = LFDatabase::getInstance(); const LFCamera c = db->findCamera(metadata->getMake(), metadata->getModel()); @@ -479,6 +498,8 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) } else if (rbChanged == corrLensfunManualRB) { useLensfunChanged = true; lensfunAutoChanged = true; + lensfunCameraChanged = true; + lensfunLensChanged = true; lcpFileChanged = true; useDistChanged = true; useVignChanged = true; @@ -515,7 +536,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) lcModeChanged = true; updateLensfunWarning(); - if (rbChanged == corrLensfunManualRB || rbChanged == corrLensfunAutoRB) { + if (rbChanged == corrLensfunManualRB || (!batchMode && rbChanged == corrLensfunAutoRB)) { setManualParamsVisibility(true); } else { setManualParamsVisibility(false); From 90122c419eb21ab9aca41f7947f2cf1b7a5f9d28 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Tue, 27 Nov 2018 20:17:52 +0100 Subject: [PATCH 04/42] Added inconsitent status to checkboxes and radio buttons --- rtgui/lensprofile.cc | 68 +++++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 20 deletions(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index 787cb2cad..544093984 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -207,10 +207,6 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa break; } } - - if (multiImage) { - corrUnchangedRB->set_active(true); - } if (pp->lensProf.lcpFile.empty()) { const Glib::ustring lastFolder = corrLcpFileChooser->get_current_folder(); @@ -264,17 +260,34 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa corrLensfunAutoRB->set_sensitive(false); } - if (!batchMode && corrLensfunManualRB->get_active() && !checkLensfunCanCorrect(true)) { + if (!batchMode && corrLensfunManualRB->get_active() && !checkLensfunCanCorrect(false)) { corrOffRB->set_active(true); } */ + + ckbUseDist->set_active(pp->lensProf.useDist); + ckbUseVign->set_active(pp->lensProf.useVign); + ckbUseCA->set_active(pp->lensProf.useCA); + + if (pedited) { + corrUnchangedRB->set_active(!pedited->lensProf.lcMode); + ckbUseDist->set_inconsistent(!pedited->lensProf.useDist); + ckbUseVign->set_inconsistent(!pedited->lensProf.useVign); + ckbUseCA->set_inconsistent(!pedited->lensProf.useCA); + + if (!pedited->lensProf.lfCameraMake || !pedited->lensProf.lfCameraModel) { + setLensfunCamera("", ""); + } + if (!pedited->lensProf.lfLens) { + setLensfunLens(""); + } + + ckbUseDist->set_sensitive(true); + ckbUseVign->set_sensitive(true); + ckbUseCA->set_sensitive(true); + } updateLensfunWarning(); - - ckbUseDist->set_active(pp->lensProf.useDist); - ckbUseVign->set_active(pp->lensProf.useVign && isRaw); - ckbUseCA->set_active(pp->lensProf.useCA && isRaw && ckbUseCA->get_sensitive()); - enableListener(); conUseDist.block(false); } @@ -338,7 +351,7 @@ void LensProfilePanel::write(rtengine::procparams::ProcParams* pp, ParamsEdited* void LensProfilePanel::setRawMeta(bool raw, const rtengine::FramesMetaData* pMeta) { - if (!raw || pMeta->getFocusDist() <= 0) { + if ((!raw || pMeta->getFocusDist() <= 0) && !batchMode) { disableListener(); // CA is very focus layer dependent, otherwise it might even worsen things @@ -373,6 +386,10 @@ void LensProfilePanel::onLCPFileChanged() void LensProfilePanel::onUseDistChanged() { useDistChanged = true; + if (ckbUseDist->get_inconsistent()) { + ckbUseDist->set_inconsistent(false); + ckbUseDist->set_active(false); + } if (listener) { listener->panelChanged(EvLCPUseDist, ckbUseDist->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); @@ -382,6 +399,10 @@ void LensProfilePanel::onUseDistChanged() void LensProfilePanel::onUseVignChanged() { useVignChanged = true; + if (ckbUseVign->get_inconsistent()) { + ckbUseVign->set_inconsistent(false); + ckbUseVign->set_active(false); + } if (listener) { listener->panelChanged(EvLCPUseVign, ckbUseVign->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); @@ -391,6 +412,10 @@ void LensProfilePanel::onUseVignChanged() void LensProfilePanel::onUseCAChanged() { useCAChanged = true; + if (ckbUseCA->get_inconsistent()) { + ckbUseCA->set_inconsistent(false); + ckbUseCA->set_active(false); + } if (listener) { listener->panelChanged(EvLCPUseCA, ckbUseCA->get_active() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); @@ -464,6 +489,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) ckbUseCA->set_sensitive(false); mode = M("GENERAL_NONE"); + } else if (rbChanged == corrLensfunAutoRB) { useLensfunChanged = true; lensfunAutoChanged = true; @@ -478,23 +504,21 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) ckbUseCA->set_sensitive(true); + disableListener(); if (batchMode) { setLensfunCamera("", ""); setLensfunLens(""); } else if (metadata) { - const bool disabled = disableListener(); const LFDatabase* const db = LFDatabase::getInstance(); const LFCamera c = db->findCamera(metadata->getMake(), metadata->getModel()); const LFLens l = db->findLens(c, metadata->getLens()); setLensfunCamera(c.getMake(), c.getModel()); setLensfunLens(l.getLens()); - - if (disabled) { - enableListener(); - } } - + enableListener(); + mode = M("TP_LENSPROFILE_CORRECTION_AUTOMATCH"); + } else if (rbChanged == corrLensfunManualRB) { useLensfunChanged = true; lensfunAutoChanged = true; @@ -509,6 +533,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) ckbUseCA->set_sensitive(false); mode = M("TP_LENSPROFILE_CORRECTION_MANUAL"); + } else if (rbChanged == corrLcpFileRB) { useLensfunChanged = true; lensfunAutoChanged = true; @@ -519,6 +544,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) updateDisabled(true); mode = M("TP_LENSPROFILE_CORRECTION_LCPFILE"); + } else if (rbChanged == corrUnchangedRB) { useLensfunChanged = false; lensfunAutoChanged = false; @@ -644,9 +670,11 @@ void LensProfilePanel::LFDbHelper::fillLensfunLenses() void LensProfilePanel::updateDisabled(bool enable) { - ckbUseDist->set_sensitive(enable); - ckbUseVign->set_sensitive(enable && isRaw); - ckbUseCA->set_sensitive(enable && allowFocusDep); + if (!batchMode) { + ckbUseDist->set_sensitive(enable); + ckbUseVign->set_sensitive(enable && isRaw); + ckbUseCA->set_sensitive(enable && allowFocusDep); + } } bool LensProfilePanel::setLensfunCamera(const Glib::ustring& make, const Glib::ustring& model) From 6b0558c9e3e0329c09bacc8f06556b83bfa2160c Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Wed, 28 Nov 2018 07:44:28 +0100 Subject: [PATCH 05/42] Listener fix --- rtgui/lensprofile.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index 544093984..ae8bbb7fe 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -424,7 +424,6 @@ void LensProfilePanel::onUseCAChanged() void LensProfilePanel::setBatchMode(bool yes) { - FoldableToolPanel::setBatchMode(yes); corrUnchangedRB->set_group(corrGroup); @@ -504,7 +503,7 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) ckbUseCA->set_sensitive(true); - disableListener(); + const bool disabled = disableListener(); if (batchMode) { setLensfunCamera("", ""); setLensfunLens(""); @@ -515,7 +514,9 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) setLensfunCamera(c.getMake(), c.getModel()); setLensfunLens(l.getLens()); } - enableListener(); + if (disabled) { + enableListener(); + } mode = M("TP_LENSPROFILE_CORRECTION_AUTOMATCH"); From b63b411beee3c1551fd7294e2efecac702107b24 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 29 Nov 2018 13:51:04 +0100 Subject: [PATCH 06/42] findMinMaxPercentile(): clamp minOut and maxOut, #5030 --- rtengine/rt_algo.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtengine/rt_algo.cc b/rtengine/rt_algo.cc index ae385508a..22ea5c76b 100644 --- a/rtengine/rt_algo.cc +++ b/rtengine/rt_algo.cc @@ -172,6 +172,7 @@ void findMinMaxPercentile(const float* data, size_t size, float minPrct, float& // go back to original range minOut /= scale; minOut += minVal; + minOut = rtengine::LIM(minOut, minVal, maxVal); // find (maxPrct*size) smallest value const float threshmax = maxPrct * size; @@ -190,6 +191,7 @@ void findMinMaxPercentile(const float* data, size_t size, float minPrct, float& // go back to original range maxOut /= scale; maxOut += minVal; + maxOut = rtengine::LIM(maxOut, minVal, maxVal); } void buildBlendMask(float** luminance, float **blend, int W, int H, float &contrastThreshold, float amount, bool autoContrast) { From f21f9cae9c01c99b222b6f7c3de97aee77735b43 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 29 Nov 2018 20:38:07 +0100 Subject: [PATCH 07/42] Added Franz Trischberger to 'Other contributors' section. --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index a9f501919..15e3e13d4 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -63,4 +63,5 @@ Other contributors (profiles, ideas, mockups, testing, forum activity, translati Johan Thor Vitalis Tiknius TooWaBoo + Franz Trischberger Colin Walker From a6a6fa26da5ec0d2d18003a9ad4242583b17dd78 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 29 Nov 2018 21:11:30 +0100 Subject: [PATCH 08/42] Added "restart required" label for theme #4968 --- rtgui/preferences.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 9141b0e3f..19fa41d2b 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1002,6 +1002,8 @@ Gtk::Widget* Preferences::getGeneralPanel () Gtk::Label* themeLbl = Gtk::manage(new Gtk::Label(M("PREFERENCES_APPEARANCE_THEME") + ":")); setExpandAlignProperties(themeLbl, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + Gtk::Label* themeRestartLbl = Gtk::manage ( new Gtk::Label (Glib::ustring (" (") + M ("PREFERENCES_APPLNEXTSTARTUP") + ")") ); + setExpandAlignProperties(themeRestartLbl, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); themeCBT = Gtk::manage(new Gtk::ComboBoxText()); themeCBT->set_active(0); @@ -1048,7 +1050,8 @@ Gtk::Widget* Preferences::getGeneralPanel () appearanceGrid->attach(*themeLbl, 0, 0, 1, 1); appearanceGrid->attach(*themeCBT, 1, 0, 1, 1); - appearanceGrid->attach(*vSep, 2, 0, 1, 3); + appearanceGrid->attach(*themeRestartLbl, 2, 0, 2, 1); + appearanceGrid->attach(*vSep, 2, 1, 1, 3); appearanceGrid->attach(*mainFontLbl, 0, 1, 1, 1); appearanceGrid->attach(*mainFontFB, 1, 1, 1, 1); appearanceGrid->attach(*cropMaskColorLbl, 3, 1, 1, 1); From d0fe52c3eac74ee34e62d7d87acc2ac6a0f074a1 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 30 Nov 2018 11:24:55 +0100 Subject: [PATCH 09/42] Japanese updated by firefly, closes #5044 --- rtdata/languages/Japanese | 90 +++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 47 deletions(-) diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 568d7c842..abc8ae4e7 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -765,13 +765,18 @@ HISTORY_MSG_493;L*a*b*調整 HISTORY_MSG_CLAMPOOG;色域外の色を切り取る HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - カラー補正 HISTORY_MSG_COLORTONING_LABREGION_AB;CT - 色の補正 +HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - 色チャンネル HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - 色度のマスク HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - 色相のマスク HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - 明度 HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - 輝度のマスク HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - リスト +HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - マスクぼかし +HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - オフセット +HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - 強化 HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - 彩度 HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - マスクの表示 +HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - スロープ HISTORY_MSG_DEHAZE_DEPTH;霞除去 - 深度 HISTORY_MSG_DEHAZE_ENABLED;霞除去 HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;霞除去 - 深度マップの表示 @@ -1065,9 +1070,15 @@ PARTIALPASTE_VIBRANCE;自然な彩度 PARTIALPASTE_VIGNETTING;周辺光量補正 PARTIALPASTE_WHITEBALANCE;ホワイトバランス PREFERENCES_ADD;追加 +PREFERENCES_APPEARANCE;外観 +PREFERENCES_APPEARANCE_COLORPICKERFONT;カラーピッカーのフォント +PREFERENCES_APPEARANCE_CROPMASKCOLOR;切り抜きのマスクカラー +PREFERENCES_APPEARANCE_MAINFONT;メインフォント PREFERENCES_APPEARANCE_NAVGUIDECOLOR;ナビゲーターのガイドカラー +PREFERENCES_APPEARANCE_THEME;テーマ PREFERENCES_APPLNEXTSTARTUP;要再起動 PREFERENCES_AUTOMONPROFILE;OSのメインモニター・プロファイルを使用 +PREFERENCES_AUTOSAVE_TP_OPEN;プログラム終了時の機能パネルの開閉状態を保存 PREFERENCES_BATCH_PROCESSING;バッチ処理 PREFERENCES_BEHADDALL;すべて '追加' PREFERENCES_BEHADDALLHINT;すべてのパラメータを 追加モードにします\nバッチツールパネルで設定される調整値が、各画像の既定値に加算されます @@ -1080,12 +1091,12 @@ PREFERENCES_CACHECLEAR_ALL;cacheに入れられたファイルを全てクリア PREFERENCES_CACHECLEAR_ALLBUTPROFILES;cacheに入れた処理プロファイル以外をクリア: PREFERENCES_CACHECLEAR_ONLYPROFILES;cacheに入れた処理プロファイルだけをクリア: PREFERENCES_CACHECLEAR_SAFETY;casheに入れたファイルだけをクリア。元画像に付随した処理プロファイルはそのまま -PREFERENCES_CACHEMAXENTRIES;キャッシュエントリーの最大数 +PREFERENCES_CACHEMAXENTRIES;cacheに入れるファイルの最大数 PREFERENCES_CACHEOPTS;cache オプション PREFERENCES_CACHETHUMBHEIGHT;サムネイル縦の最大値 PREFERENCES_CLIPPINGIND;クリッピング領域の表示 PREFERENCES_CLUTSCACHE;HaldCLUT cache -PREFERENCES_CLUTSCACHE_LABEL;cacheに置けるHaldCLUTの最大数 +PREFERENCES_CLUTSCACHE_LABEL;cacheに入れるHaldCLUTの最大数 PREFERENCES_CLUTSDIR;HaldCLUTのディレクトリー PREFERENCES_CMMBPC;ブラックポイントの補正 PREFERENCES_CROP;切り抜き画像の編集 @@ -1126,6 +1137,7 @@ PREFERENCES_EDITORCMDLINE;カスタムコマンドライン PREFERENCES_EDITORLAYOUT;編集 レイアウト PREFERENCES_EXTERNALEDITOR;外部エディタ PREFERENCES_FBROWSEROPTS;ファイルブラウザ/サムネイルのオプション +PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;ファイルブラウザのツールバーを圧縮 PREFERENCES_FILEFORMAT;ファイル形式 PREFERENCES_FLATFIELDFOUND;検出 PREFERENCES_FLATFIELDSDIR;フラットフィールド・ディレクトリ @@ -1223,13 +1235,13 @@ PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;現在の画像のズームレベルとパ PREFERENCES_SAVE_TP_OPEN_NOW;機能パネルの今の開閉状態を保存する PREFERENCES_SELECTLANG;言語選択 PREFERENCES_SERIALIZE_TIFF_READ;TIFFファイルの読み込み設定 -PREFERENCES_SERIALIZE_TIFF_READ_LABEL;TIFFファイルのシリアル化 +PREFERENCES_SERIALIZE_TIFF_READ_LABEL;TIFFファイルの読み込みをシリアライズ PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;画像フォルダーが多数の非圧縮のTIFFファイルで閉められている場合、このオプションを有効にすることで、サムネイル画像生成の効率が上がります PREFERENCES_SET;設定 PREFERENCES_SHOWBASICEXIF;基本Exif情報を表示 PREFERENCES_SHOWDATETIME;日付表示 PREFERENCES_SHOWEXPOSURECOMPENSATION;露光補正追加 -PREFERENCES_SHOWFILMSTRIPTOOLBAR;画像スライドのツールバーを表示する +PREFERENCES_SHOWFILMSTRIPTOOLBAR;画像スライドにツールバーを表示する PREFERENCES_SHTHRESHOLD;シャドウ・クリッピング領域のしきい値 PREFERENCES_SINGLETAB;シングルタブモードモード PREFERENCES_SINGLETABVERTAB;シングル編集タブモード, 垂直タブ @@ -1407,6 +1419,7 @@ TP_COARSETRAF_TOOLTIP_HFLIP;左右反転 TP_COARSETRAF_TOOLTIP_ROTLEFT;90度左回転\nショートカット: [\n\nシングル・エディタ・タブのショートカット: Alt-[ TP_COARSETRAF_TOOLTIP_ROTRIGHT;90度右回転\nショートカット: ]\n\nシングル・エディタ・タブのショートカット: Alt-] TP_COARSETRAF_TOOLTIP_VFLIP;上下反転 +TP_COLORAPP_ABSOLUTELUMINANCE;絶対輝度 TP_COLORAPP_ALGO;アルゴリズム TP_COLORAPP_ALGO_ALL;すべて TP_COLORAPP_ALGO_JC;明度 + 色度 (JC) @@ -1417,6 +1430,7 @@ TP_COLORAPP_BADPIXSL;ホット/バッドピクセルフィルター TP_COLORAPP_BADPIXSL_TOOLTIP;明るい部分のホット/バッドピクセルを圧縮します\n 0は効果なし 1は中間 2はガウスほかし\n\nこれらアーティファクトはCIECAM02の限界に起因するものです。色域を抑制する代わりに、イメージに暗い影が現れるのを防ぎます TP_COLORAPP_BRIGHT;明るさ (Q) TP_COLORAPP_BRIGHT_TOOLTIP;CIECAM02の明るさは L*a*b*やRGBとは異なり、白の輝度を計算に入れます +TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;設定を手動で行う場合、65以上の設定値を推奨 TP_COLORAPP_CHROMA;色度 (C) TP_COLORAPP_CHROMA_M;鮮やかさ (M) TP_COLORAPP_CHROMA_M_TOOLTIP;CIECAM02の鮮やかさは L*a*b*やRGBの鮮やかさとは異なります @@ -1447,6 +1461,7 @@ TP_COLORAPP_LABEL_SCENE;撮影環境条件 TP_COLORAPP_LABEL_VIEWING;観視条件 TP_COLORAPP_LIGHT;明度 (J) TP_COLORAPP_LIGHT_TOOLTIP;CIECAM02の明度は L*a*b*やRGBの明度とは異なります +TP_COLORAPP_MEANLUMINANCE;中間輝度 (Yb%) TP_COLORAPP_MODEL;ホワイトポイント・モデル TP_COLORAPP_MODEL_TOOLTIP;WB [RT] + [出力]:\nRTのホワイトバランスは、撮影環境に使用されます。CIECAM02はD50の設定, 出力デバイスのホワイトバランスは「環境設定」の「カラーマネジメント」の設定\n\nWB [RT+CAT02] + [出力]:\nRTのホワイトバランス設定は、CAT02で使用され、出力デバイスのホワイトバランスは環境設定の値を使用します TP_COLORAPP_NEUTRAL;リセット @@ -1490,14 +1505,23 @@ TP_COLORTONING_LABGRID;L*a*b*カラー補正グリッド TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 TP_COLORTONING_LABREGIONS;L*a*b*の補正領域 TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +TP_COLORTONING_LABREGION_CHANNEL;色チャンネル +TP_COLORTONING_LABREGION_CHANNEL_ALL;全ての色チャンネル +TP_COLORTONING_LABREGION_CHANNEL_B;ブルー +TP_COLORTONING_LABREGION_CHANNEL_G;グリーン +TP_COLORTONING_LABREGION_CHANNEL_R;レッド TP_COLORTONING_LABREGION_CHROMATICITYMASK;色度 TP_COLORTONING_LABREGION_HUEMASK;色相 TP_COLORTONING_LABREGION_LIGHTNESS;明度 TP_COLORTONING_LABREGION_LIGHTNESSMASK;明度 TP_COLORTONING_LABREGION_LIST_TITLE;補正 TP_COLORTONING_LABREGION_MASK;マスク +TP_COLORTONING_LABREGION_MASKBLUR;マスクぼかし +TP_COLORTONING_LABREGION_OFFSET;オフセット +TP_COLORTONING_LABREGION_POWER;強化 TP_COLORTONING_LABREGION_SATURATION;彩度 TP_COLORTONING_LABREGION_SHOWMASK;マスクの表示 +TP_COLORTONING_LABREGION_SLOPE;スロープ TP_COLORTONING_LUMA;明度 TP_COLORTONING_LUMAMODE;明度を維持 TP_COLORTONING_LUMAMODE_TOOLTIP;カラー(レッド、グリーン、シアン、ブルーなど)を変える際に、これを有効にすると、各ピクセルの明度は維持されます。 @@ -1537,6 +1561,8 @@ TP_CROP_GUIDETYPE;ガイドタイプ: TP_CROP_H;高さ TP_CROP_LABEL;切り抜き TP_CROP_PPI;PPI= +TP_CROP_RESETCROP;リセット +TP_CROP_SELECTCROP;セレクト TP_CROP_W;W 幅 TP_CROP_X;X TP_CROP_Y;Y @@ -1782,7 +1808,16 @@ TP_LABCURVE_RSTPRO_TOOLTIP;色度スライダーとCCカーブを使用するこ TP_LENSGEOM_AUTOCROP;自動的に切り抜き選択 TP_LENSGEOM_FILL;オートフィル TP_LENSGEOM_LABEL;レンズ / ジオメトリ +TP_LENSPROFILE_CORRECTION_AUTOMATCH;自動で +TP_LENSPROFILE_CORRECTION_LCPFILE;LCPファイル +TP_LENSPROFILE_CORRECTION_MANUAL;手動で TP_LENSPROFILE_LABEL;レンズ補正 プロファイル +TP_LENSPROFILE_LENS_WARNING;注意:レンズプロファイルに使われるクロップファクターはカメラのクロップファクターより大きいので、誤った結果になる可能性があります。 +TP_LENSPROFILE_MODE_HEADER;レンズプロファイルを選択 +TP_LENSPROFILE_USE_CA;色収差 +TP_LENSPROFILE_USE_GEOMETRIC;歪曲収差 +TP_LENSPROFILE_USE_HEADER;補正する収差を選択: +TP_LENSPROFILE_USE_VIGNETTING;周辺光量 TP_LOCALCONTRAST_AMOUNT;量 TP_LOCALCONTRAST_DARKNESS;暗い部分のレベル TP_LOCALCONTRAST_LABEL;ローカルコントラスト @@ -1825,6 +1860,7 @@ TP_PRSHARPENING_LABEL;リサイズ後のシャープ化 TP_PRSHARPENING_TOOLTIP;リサイズ後の画像をシャープ化します。但し、リサイズの方式がランチョスの場合に限ります。プレビュー画面でこの機能の効果を見ることは出来ません。使用法に関してはRawPediaを参照して下さい。 TP_RAWCACORR_AUTO;自動補正 TP_RAWCACORR_AUTOIT;繰り返し +TP_RAWCACORR_AUTOIT_TOOLTIP;”自動補正”が有効になっている場合にこの設定が可能です。\n自動補正の作用は控えめなため、全ての色収差が常に補正されるとは限りません。\n残りの色収差を補正するためには、自動色収差補正の繰り返しを最大5回行います。\n繰り返すたびに、直前の繰り返しで残った色収差を軽減しますが、その分処理時間は増えます。 TP_RAWCACORR_AVOIDCOLORSHIFT;色ずれを回避 TP_RAWCACORR_CABLUE;ブルー TP_RAWCACORR_CARED;レッド @@ -1929,6 +1965,7 @@ TP_RESIZE_WIDTH;幅 TP_RETINEX_CONTEDIT_HSL;ヒストグラムイコライザ HSL TP_RETINEX_CONTEDIT_LAB;ヒストグラムイコライザ L*a*b* TP_RETINEX_CONTEDIT_LH;色相イコライザ +TP_RETINEX_CONTEDIT_MAP;イコライザ TP_RETINEX_CURVEEDITOR_CD;輝度=f(輝度) TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;輝度に応じた輝度の関数 L=f(L)\nハロとアーティファクトを減らすためにrawデータを補正します TP_RETINEX_CURVEEDITOR_LH;強さ=f(色相) @@ -1966,6 +2003,7 @@ TP_RETINEX_LABEL;レティネックス TP_RETINEX_LABEL_MASK;マスク TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;低 +TP_RETINEX_MAP;方式 TP_RETINEX_MAP_GAUS;ガウシアンマスク TP_RETINEX_MAP_MAPP;シャープマスク (一部ウェーブレット) TP_RETINEX_MAP_MAPT;シャープマスク (全てウェーブレット) @@ -2275,6 +2313,7 @@ TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 TP_WBALANCE_LED_HEADER;LED TP_WBALANCE_LED_LSI;LSI Lumelex 2040 TP_WBALANCE_METHOD;モード +TP_WBALANCE_PICKER;ピック TP_WBALANCE_SHADE;日陰 TP_WBALANCE_SIZE;サイズ: TP_WBALANCE_SOLUX35;Solux 3500K @@ -2297,46 +2336,3 @@ ZOOMPANEL_ZOOMFITSCREEN;画像全体を画面に合わせる\nショートカッ ZOOMPANEL_ZOOMIN;ズームイン\nショートカット: + ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel -!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur -!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset -!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power -!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope -!PREFERENCES_APPEARANCE;Appearance -!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font -!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color -!PREFERENCES_APPEARANCE_MAINFONT;Main font -!PREFERENCES_APPEARANCE_THEME;Theme -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORTONING_LABREGION_CHANNEL;Channel -!TP_COLORTONING_LABREGION_CHANNEL_ALL;All -!TP_COLORTONING_LABREGION_CHANNEL_B;Blue -!TP_COLORTONING_LABREGION_CHANNEL_G;Green -!TP_COLORTONING_LABREGION_CHANNEL_R;Red -!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur -!TP_COLORTONING_LABREGION_OFFSET;Offset -!TP_COLORTONING_LABREGION_POWER;Power -!TP_COLORTONING_LABREGION_SLOPE;Slope -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually -!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. -!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric -!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: -!TP_LENSPROFILE_USE_VIGNETTING;Vignetting -!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. -!TP_RETINEX_CONTEDIT_MAP;Equalizer -!TP_RETINEX_MAP;Method -!TP_WBALANCE_PICKER;Pick From 9362f13fccfe0ac0f80ae8bfcd37073c3507b37b Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 1 Dec 2018 13:20:30 +0100 Subject: [PATCH 10/42] Wrong border interpolation when using DCB with raw border = 0, fixes #5047 --- rtengine/demosaic_algos.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index a324a7ca6..8e726738e 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -3083,6 +3083,7 @@ BENCHFUN free(buffer0); } + border_interpolate2(W, H, 1, rawData, red, green, blue); if(plistener) { plistener->setProgress (1.0); } From 4673ae3b24baf966054c6b22ba0bf99924eb4a96 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 1 Dec 2018 13:32:51 +0100 Subject: [PATCH 11/42] Wrong border interpolation when using IGV, fixes #5048 --- rtengine/demosaic_algos.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index 8e726738e..aa763f01f 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -1425,8 +1425,6 @@ void RawImageSource::igv_interpolate(int winw, int winh) chr[2] = hdif; chr[3] = vdif; - border_interpolate2(winw, winh, 7, rawData, red, green, blue); - if (plistener) { plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::IGV))); plistener->setProgress (0.0); @@ -1781,6 +1779,7 @@ void RawImageSource::igv_interpolate(int winw, int winh) } } }// End of parallelization + border_interpolate2(winw, winh, 8, rawData, red, green, blue); if (plistener) { plistener->setProgress (1.0); @@ -1815,8 +1814,6 @@ void RawImageSource::igv_interpolate(int winw, int winh) vdif = (float (*)) calloc(width * height / 2, sizeof * vdif); hdif = (float (*)) calloc(width * height / 2, sizeof * hdif); - border_interpolate2(winw, winh, 7, rawData, red, green, blue); - if (plistener) { plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::IGV))); plistener->setProgress (0.0); @@ -2045,6 +2042,8 @@ void RawImageSource::igv_interpolate(int winw, int winh) blue [row][col] = CLIP(rgb[1][indx] - 65535.f * chr[1][indx]); } }// End of parallelization + border_interpolate2(winw, winh, 8, rawData, red, green, blue); + if (plistener) { plistener->setProgress (1.0); From 89f09b6ad6afae89ba98b81e6a15b86dbe9f7854 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 1 Dec 2018 14:00:51 +0100 Subject: [PATCH 12/42] better raw crop for Canon PowerShot A3100 IS --- rtengine/camconst.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 2113c5532..637a3a61d 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1131,6 +1131,10 @@ Camera constants: }, // Canon Powershot + { // Quality C, CHDK DNGs, raw frame correction + "make_model": "Canon PowerShot A3100 IS", + "raw_crop": [ 24, 12, 4032, 3024 ] // full size 4036X3026 + }, { // Quality C, CHDK DNGs, raw frame corrections, experimental infrared support commented out "make_model": "Canon PowerShot A480", From 5c73de9f83b6d35dc85e215f5debacc2311afe04 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 1 Dec 2018 14:20:31 +0100 Subject: [PATCH 13/42] better raw crop for Canon PowerShot SX150 IS --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 637a3a61d..022ca6e86 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1217,6 +1217,11 @@ Camera constants: "ranges": { "white": 4050 } // nominal 4080-4093 }, + { // Quality C + "make_model": "Canon PowerShot SX150 IS", + "raw_crop": [ 26, 10, 4364, 3254 ] // cut 2pix left and right + }, + { // Quality C "make_model": "Canon PowerShot SX220 HS", "raw_crop": [ 92, 16, 4072, 3042 ] // Cut 2pix at lower border because of too high values in blue channel From e29ff3cce2ab5c8922b1468aa0e6a88255a1486f Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sat, 1 Dec 2018 11:47:47 +0100 Subject: [PATCH 14/42] crop: added new locked ratio "Current" --- rtdata/languages/default | 1 + rtgui/crop.cc | 79 +++++++++++++++++++++++++++++++++++----- rtgui/crop.h | 4 +- 3 files changed, 73 insertions(+), 11 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 10c8ed730..da79ec3ac 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -223,6 +223,7 @@ GENERAL_AUTO;Automatic GENERAL_BEFORE;Before GENERAL_CANCEL;Cancel GENERAL_CLOSE;Close +GENERAL_CURRENT;Current GENERAL_DISABLE;Disable GENERAL_DISABLED;Disabled GENERAL_ENABLE;Enable diff --git a/rtgui/crop.cc b/rtgui/crop.cc index a6b418bd7..a06965840 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -52,12 +52,29 @@ int notifyListenerUI (void* data) return 0; } + +inline void get_custom_ratio(int w, int h, double &rw, double &rh) +{ + if (w < h) { + double r = double(h) / double(w); + int rr = r * 100 + 0.5; + rw = 1.0; + rh = rr / 100.0; + } else { + double r = double(w) / double(h); + int rr = r * 100 + 0.5; + rw = rr / 100.0; + rh = 1.0; + } } +} // namespace + Crop::Crop(): FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true), crop_ratios{ {M("GENERAL_ASIMAGE"), 0.0}, + {M("GENERAL_CURRENT"), -1.0}, {"3:2", 3.0 / 2.0}, // L1.5, P0.666... {"4:3", 4.0 / 3.0}, // L1.333..., P0.75 {"16:9", 16.0 / 9.0}, // L1.777..., P0.5625 @@ -176,10 +193,17 @@ Crop::Crop(): guide = Gtk::manage (new MyComboBoxText ()); setExpandAlignProperties(guide, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - + + customRatioLabel = Gtk::manage(new Gtk::Label("")); + customRatioLabel->hide(); + Gtk::HBox *hb = Gtk::manage(new Gtk::HBox()); + hb->pack_start(*orientation); + hb->pack_start(*customRatioLabel); + + settingsgrid->set_column_homogeneous(true); settingsgrid->attach (*fixr, 0, 0, 1, 1); settingsgrid->attach (*ratio, 1, 0, 1, 1); - settingsgrid->attach (*orientation, 2, 0, 1, 1); + settingsgrid->attach (*hb, 2, 0, 1, 1); settingsgrid->attach (*guidelab, 0, 1, 1, 1); settingsgrid->attach (*guide, 1, 1, 2, 1); pack_start (*settingsgrid, Gtk::PACK_SHRINK, 0 ); @@ -349,13 +373,6 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) setDimensions (pp->crop.x + pp->crop.w, pp->crop.y + pp->crop.h); } - if (pp->crop.ratio == "As Image") { - ratio->set_active(0); - } else { - ratio->set_active_text (pp->crop.ratio); - } - fixr->set_active (pp->crop.fixratio); - const bool flip_orientation = pp->crop.fixratio && crop_ratios[ratio->get_active_row_number()].value > 0 && crop_ratios[ratio->get_active_row_number()].value < 1.0; if (pp->crop.orientation == "Landscape") { @@ -396,6 +413,20 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) nw = pp->crop.w; nh = pp->crop.h; + customRatioLabel->hide(); + orientation->show(); + if (pp->crop.ratio == "As Image") { + ratio->set_active(0); + } else if (pp->crop.ratio == "Current") { + ratio->set_active(1); + updateCurrentRatio(); + customRatioLabel->show(); + orientation->hide(); + } else { + ratio->set_active_text (pp->crop.ratio); + } + fixr->set_active (pp->crop.fixratio); + lastRotationDeg = pp->coarse.rotate; wDirty = false; @@ -448,7 +479,13 @@ void Crop::write (ProcParams* pp, ParamsEdited* pedited) pp->crop.w = nw; pp->crop.h = nh; pp->crop.fixratio = fixr->get_active (); - pp->crop.ratio = ratio->get_active_text (); + if (ratio->get_active_row_number() == 0) { + pp->crop.ratio = "As Image"; + } else if (ratio->get_active_row_number() == 1) { + pp->crop.ratio = "Current"; + } else { + pp->crop.ratio = ratio->get_active_text (); + } // for historical reasons we store orientation different if ratio is written as 2:3 instead of 3:2, but in GUI 'landscape' is always long side horizontal regardless of the ratio is written short or long side first. const bool flip_orientation = fixr->get_active() && crop_ratios[ratio->get_active_row_number()].value > 0 && crop_ratios[ratio->get_active_row_number()].value < 1.0; @@ -701,6 +738,15 @@ void Crop::ratioFixedChanged () // change to orientation or ration void Crop::ratioChanged () { + if (ratio->get_active_row_number() == 1) { + orientation->hide(); + updateCurrentRatio(); + customRatioLabel->show(); + } else { + orientation->show(); + customRatioLabel->hide(); + } + if (!fixr->get_active ()) { fixr->set_active(true); // will adjust ratio anyway } else { @@ -880,6 +926,10 @@ bool Crop::refreshSpins (bool notify) wconn.block (false); hconn.block (false); + if (ratio->get_active_row_number() == 1 && !fixr->get_active()) { + updateCurrentRatio(); + } + refreshSize (); if (notify) { @@ -1405,3 +1455,12 @@ void Crop::setBatchMode (bool batchMode) removeIfThere (methodgrid, selectCrop); removeIfThere (methodgrid, resetCrop); } + + +void Crop::updateCurrentRatio() +{ + double rw, rh; + get_custom_ratio(w->get_value(), h->get_value(), rw, rh); + customRatioLabel->set_text(Glib::ustring::compose("%1:%2", rw, rh)); + crop_ratios[1].value = double(w->get_value())/double(h->get_value()); +} diff --git a/rtgui/crop.h b/rtgui/crop.h index a16683d1b..ed0661598 100644 --- a/rtgui/crop.h +++ b/rtgui/crop.h @@ -95,9 +95,10 @@ private: double value; }; - const std::vector crop_ratios; + std::vector crop_ratios; void adjustCropToRatio(); + void updateCurrentRatio(); Gtk::CheckButton* fixr; MyComboBoxText* ratio; @@ -117,6 +118,7 @@ private: Gtk::Label* sizein; Gtk::Grid* ppigrid; Gtk::Grid* methodgrid; + Gtk::Label *customRatioLabel; int maxw, maxh; double nx, ny; From 96715ba7b387b476f444032e58159c32cc7f34bd Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 1 Dec 2018 09:44:19 -0800 Subject: [PATCH 15/42] macOS: Update lensfun version, copy some libs Copies 2 libs not picked up by the routine and bumps the lensfun dylib version. --- tools/osx/macosx_bundle.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index e5c9d0bd3..7dd6f212c 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -152,12 +152,18 @@ done ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/icons/Adwaita/index.theme "${GTK_PREFIX}/bin/gtk-update-icon-cache-3.0" "${RESOURCES}/share/icons/Adwaita" +# Copy libjpeg-turbo into the app bundle +cp /opt/local/lib/libjpeg.62.dylib "${RESOURCES}/../Frameworks" + +# Copy libtiff into the app bundle +cp /opt/local/lib/libtiff.5.dylib "${RESOURCES}/../Frameworks" + # Copy the Lensfun database into the app bundle mkdir -p "${RESOURCES}/share/lensfun" cp /opt/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" # Copy liblensfun to Frameworks -cp /opt/local/lib/liblensfun.1.dylib "${RESOURCES}/../Frameworks" +cp /opt/local/lib/liblensfun.2.dylib "${RESOURCES}/../Frameworks" # Copy libiomp5 to Frameworks cp /opt/local/lib/libomp/libiomp5.dylib "${RESOURCES}/../Frameworks" From 96c53ca566a8bfffaed5d10bdc5c4856ae517d80 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 1 Dec 2018 11:37:59 -0800 Subject: [PATCH 16/42] mac: specify HFS+ filesystem for dmg Fixes incompatibility between generated dmg on macos 10.14 and trying to open in 10.11. --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 7dd6f212c..1413b5d76 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -234,7 +234,7 @@ function CreateDmg { fi msg "Creating disk image:" - hdiutil create -format UDBZ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" + hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" # Sign disk image codesign --deep --force -v -s "${CODESIGNID}" "${dmg_name}.dmg" From bb428421f2549944623a75cce88990c985d13011 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 1 Dec 2018 21:00:26 +0100 Subject: [PATCH 17/42] better raw crop for LG mobile LG-H815 --- rtengine/camconst.json | 1 + 1 file changed, 1 insertion(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 022ca6e86..1b2d0cdfa 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1352,6 +1352,7 @@ Camera constants: "make_model": "LG mobile LG-H815", "dcraw_matrix": [ 5859,547,-1250,-6484,15547,547,-2422,5625,3906 ], // DNG D65 //"dcraw_matrix": [ 11563,-2891,-3203,-5313,15625,625,-781,2813,5625 ], // DNG A + "raw_crop": [ 0, 0, 5312, 2986 ], // cropped last two rows because last row was garbage "ranges": { "white": 1000 } }, { // Quality C From f38f0b0ef77f7808100ea8bb52a4d2d95c089ae0 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 1 Dec 2018 21:18:12 +0100 Subject: [PATCH 18/42] Be less restrictive regarding variance in pass 2 of dual demosaic auto contrast threshold calculation --- rtengine/rt_algo.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/rt_algo.cc b/rtengine/rt_algo.cc index 22ea5c76b..3925fc1ec 100644 --- a/rtengine/rt_algo.cc +++ b/rtengine/rt_algo.cc @@ -282,7 +282,7 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr Lum[i][j] = luminance[i + minY][j + minX]; } } - contrastThreshold = (pass == 0 || minvar <= 2.f) ? calcContrastThreshold(Lum, Blend, tilesize, tilesize) / 100.f : 0.f; + contrastThreshold = (pass == 0 || minvar <= 4.f) ? calcContrastThreshold(Lum, Blend, tilesize, tilesize) / 100.f : 0.f; break; } } From c75a0d6bd7bf53b6a48ec0d6a62447c0cd25c939 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sat, 1 Dec 2018 22:30:11 +0100 Subject: [PATCH 19/42] do not apply "filmlike_clip" in rgbProc when clampOOG is false --- rtengine/improcfun.cc | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index d368eb0cd..bf35bee70 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -2450,20 +2450,6 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer btemp[ti * TS + tj] = b; } } - } else { - for (int i = istart, ti = 0; i < tH; i++, ti++) { - for (int j = jstart, tj = 0; j < tW; j++, tj++) { - // clip out of gamut colors, without distorting colour too bad - float r = std::max(rtemp[ti * TS + tj], 0.f); - float g = std::max(gtemp[ti * TS + tj], 0.f); - float b = std::max(btemp[ti * TS + tj], 0.f); - - if (OOG(max(r, g, b)) && !OOG(min(r, g, b))) { - filmlike_clip(&r, &g, &b); - } - setUnlessOOG(rtemp[ti * TS + tj], gtemp[ti * TS + tj], btemp[ti * TS + tj], r, g, b); - } - } } if (histToneCurveThr) { From d7d823e41b4550745358bf8a8e53af0a00185da5 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Dec 2018 01:27:41 +0100 Subject: [PATCH 20/42] Added support for Panasonic DC-LX100M2 Preliminary support, no white frames available yet. Issue #5049 --- rtengine/camconst.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 1b2d0cdfa..7aab3b0bd 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1694,6 +1694,13 @@ Camera constants: "global_green_equilibration" : true }, + { // Quality X + "make_model": [ "Panasonic DC-LX100M2" ], + "dcraw_matrix": [ 11577, -4230, -1106, -3967, 12211, 1957, -758, 1762, 5610 ], // Adobe DNG Converter 11.0 ColorMatrix2 + "raw_crop": [ 0, 0, 0, 0 ], + "ranges": { "black": 15 } + }, + { // Quality C, proper ISO 100-125-160 samples missing, pixelshift files have no black offset etc. #4574 "make_model": [ "Panasonic DC-G9" ], "dcraw_matrix": [ 7685, -2375, -634, -3687, 11700, 2249, -748, 1546, 5111 ], // Adobe DNG Converter 10.3 ColorMatrix2 From 15638548154a5514f983578fe48beea1e15f0c07 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Dec 2018 02:02:53 +0100 Subject: [PATCH 21/42] Lensfun crop factor warning icon Replaced inconsistnent stock "dialog-warning" icon with custom warning.png --- rtdata/images/themed/png/dark/warning.png | Bin 0 -> 560 bytes rtdata/images/themed/png/light/warning.png | Bin 0 -> 579 bytes rtdata/images/themed/svg/warning.svg | 134 +++++++++++++++++++++ rtgui/lensprofile.cc | 7 +- 4 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 rtdata/images/themed/png/dark/warning.png create mode 100644 rtdata/images/themed/png/light/warning.png create mode 100644 rtdata/images/themed/svg/warning.svg diff --git a/rtdata/images/themed/png/dark/warning.png b/rtdata/images/themed/png/dark/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..8bc60b95a74a7a08ded216959f195f7210830a9c GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaA1(mo)lsM-XR2F5XXOu8FJ1aPr zloVwqm6l}Y=jjG#Bo?JQ=4584DrA(D6jnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}ub5#STz>R#Y;=FFK(mo5RxvuDr# z|NkGzfUqHqbLY<8x^)Z421-EyG8-oLzh=rhRiK#?B|(0{46z&wi=XvwR$JpB!S5}m zs@b$I%wzAJ#gh+iF9oWZ=jq}YqH%udq}xKx3Op`>2Y9)(;{N~l_s((E*i$l#J)tbI zSgl#$f5`Q#rR+OqnBy}7ANYP=o#oA4oPAKnl1}6-6gd+xhS&$WFSLOVtGhLYEfcAYN|qJa(lV!_B$IXpd!u!kH}&M2EHR8%s5q>PZ}r~7~m7)>R#X@Cnu+>s;Z)*0wn+c z{|{jR+3M=*5OFm%HMkT|0R#Y*!I&UgNl6L9O}k@!8ECk4NswPK1INPr)z5l2tBJbA zR|K!vAf~F>#Ix7qj!kIz_q~z=KxIokT^vI+&M%#GlCRl-$Ax{B*uG=3lT{zuhI*&wP@{tRBS-8P6qF*6BUUemxVj7A#Bo@0OaF8+b|V z_3ofjuhOgU>KA75c=28^{M2{q-iw2Vn-;KrSlsZevu4`b*H>lwo&+*x*VZY-YrMbC zTCrHJKeh9fQ~vvva+42l%bd4-^3lp^YPK&O&rjiHJ3UA5=lA&^88^&fJDMY_dmQLs N22WQ%mvv4FO#pM3 + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index ae8bbb7fe..a3dbc2e63 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -55,7 +55,7 @@ LensProfilePanel::LensProfilePanel() : lensfunCameras(Gtk::manage((new MyComboBox()))), lensfunLensesLbl(Gtk::manage((new Gtk::Label(M("EXIFFILTER_LENS"))))), lensfunLenses(Gtk::manage((new MyComboBox()))), - warning(Gtk::manage((new Gtk::Image()))), + warning(Gtk::manage(new RTImage("warning.png"))), ckbUseDist(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_GEOMETRIC"))))), ckbUseVign(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_VIGNETTING"))))), ckbUseCA(Gtk::manage((new Gtk::CheckButton(M("TP_LENSPROFILE_USE_CA"))))) @@ -65,12 +65,12 @@ LensProfilePanel::LensProfilePanel() : } // Main containers: - + Gtk::Frame *nodesFrame = Gtk::manage(new Gtk::Frame(M("TP_LENSPROFILE_MODE_HEADER"))); modesGrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(modesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - + Gtk::Frame *distFrame = Gtk::manage(new Gtk::Frame(M("TP_LENSPROFILE_USE_HEADER"))); distGrid->get_style_context()->add_class("grid-spacing"); @@ -104,7 +104,6 @@ LensProfilePanel::LensProfilePanel() : lensesCellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE; lensesCellRenderer->property_ellipsize_set() = true; - warning->set_from_icon_name("dialog-warning", Gtk::ICON_SIZE_LARGE_TOOLBAR); warning->set_tooltip_text(M("TP_LENSPROFILE_LENS_WARNING")); warning->hide(); From d6bdce3417bbd55e02c6cc2aebaba68aeadf1b2d Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sun, 2 Dec 2018 13:29:48 +0100 Subject: [PATCH 22/42] Lens profile bug fix When changed distortion the profile changed too. Fixed --- rtgui/lensprofile.cc | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index a3dbc2e63..d421632a9 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -247,8 +247,6 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa setLensfunLens(pp->lensProf.lfLens); } - lcModeChanged = lcpFileChanged = useDistChanged = useVignChanged = useCAChanged = false; - useLensfunChanged = lensfunAutoChanged = lensfunCameraChanged = lensfunLensChanged = false; /* if (!batchMode && !checkLensfunCanCorrect(true)) { @@ -286,6 +284,9 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa ckbUseCA->set_sensitive(true); } + lcModeChanged = lcpFileChanged = useDistChanged = useVignChanged = useCAChanged = false; + useLensfunChanged = lensfunAutoChanged = lensfunCameraChanged = lensfunLensChanged = false; + updateLensfunWarning(); enableListener(); conUseDist.block(false); @@ -478,9 +479,10 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) Glib::ustring mode; if (rbChanged == corrOffRB) { + lcModeChanged = true; useLensfunChanged = true; lensfunAutoChanged = true; - lcpFileChanged = true; + lcpFileChanged = false; ckbUseDist->set_sensitive(false); ckbUseVign->set_sensitive(false); @@ -489,13 +491,12 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) mode = M("GENERAL_NONE"); } else if (rbChanged == corrLensfunAutoRB) { + lcModeChanged = true; useLensfunChanged = true; lensfunAutoChanged = true; lensfunCameraChanged = true; lensfunLensChanged = true; - lcpFileChanged = true; - useDistChanged = true; - useVignChanged = true; + lcpFileChanged = false; ckbUseDist->set_sensitive(true); ckbUseVign->set_sensitive(true); @@ -514,19 +515,18 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) setLensfunLens(l.getLens()); } if (disabled) { - enableListener(); + enableListener(); } mode = M("TP_LENSPROFILE_CORRECTION_AUTOMATCH"); } else if (rbChanged == corrLensfunManualRB) { + lcModeChanged = true; useLensfunChanged = true; lensfunAutoChanged = true; lensfunCameraChanged = true; lensfunLensChanged = true; - lcpFileChanged = true; - useDistChanged = true; - useVignChanged = true; + lcpFileChanged = false; ckbUseDist->set_sensitive(true); ckbUseVign->set_sensitive(true); @@ -535,17 +535,17 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) mode = M("TP_LENSPROFILE_CORRECTION_MANUAL"); } else if (rbChanged == corrLcpFileRB) { + lcModeChanged = true; useLensfunChanged = true; lensfunAutoChanged = true; lcpFileChanged = true; - useDistChanged = true; - useVignChanged = true; updateDisabled(true); mode = M("TP_LENSPROFILE_CORRECTION_LCPFILE"); } else if (rbChanged == corrUnchangedRB) { + lcModeChanged = false; useLensfunChanged = false; lensfunAutoChanged = false; lcpFileChanged = false; @@ -559,7 +559,6 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) mode = M("GENERAL_UNCHANGED"); } - lcModeChanged = true; updateLensfunWarning(); if (rbChanged == corrLensfunManualRB || (!batchMode && rbChanged == corrLensfunAutoRB)) { From 61c84b9ee746de9c99151de7b86814dba7d781ba Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 2 Dec 2018 20:29:11 +0100 Subject: [PATCH 23/42] Get rid of windirmonitor --- rtgui/CMakeLists.txt | 2 +- rtgui/dirbrowser.cc | 15 ------ rtgui/dirbrowser.h | 14 ++---- rtgui/filecatalog.cc | 35 ------------- rtgui/filecatalog.h | 14 ------ rtgui/windirmonitor.cc | 109 ----------------------------------------- rtgui/windirmonitor.h | 57 --------------------- 7 files changed, 4 insertions(+), 242 deletions(-) delete mode 100644 rtgui/windirmonitor.cc delete mode 100644 rtgui/windirmonitor.h diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 434e8187e..6ea768a03 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -170,7 +170,7 @@ endif() if(WIN32) set(EXTRA_SRC_CLI myicon.rc) - set(EXTRA_SRC_NONCLI myicon.rc windirmonitor.cc) + set(EXTRA_SRC_NONCLI myicon.rc) set(EXTRA_LIB_RTGUI winmm) include_directories(${EXTRA_INCDIR} ${GIOMM_INCLUDE_DIRS} diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index 81ee85fed..e1acbad3e 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -246,16 +246,6 @@ int updateVolumesUI (void* br) return 1; } -void DirBrowser::winDirChanged () -{ - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->updateDirTreeRoot(); - - return FALSE; - }; - - idle_register.add(func, this); -} #endif void DirBrowser::fillRoot () @@ -333,14 +323,9 @@ void DirBrowser::row_expanded (const Gtk::TreeModel::iterator& iter, const Gtk:: expandSuccess = true; } -#ifdef WIN32 - Glib::RefPtr monitor = Glib::RefPtr(new WinDirMonitor (iter->get_value (dtColumns.dirname), this)); - iter->set_value (dtColumns.monitor, monitor); -#else Glib::RefPtr monitor = dir->monitor_directory (); iter->set_value (dtColumns.monitor, monitor); monitor->signal_changed().connect (sigc::bind(sigc::mem_fun(*this, &DirBrowser::file_changed), iter, dir->get_parse_name())); -#endif } void DirBrowser::updateDir (const Gtk::TreeModel::iterator& iter) diff --git a/rtgui/dirbrowser.h b/rtgui/dirbrowser.h index 9d004f5f9..15b6dd201 100644 --- a/rtgui/dirbrowser.h +++ b/rtgui/dirbrowser.h @@ -21,16 +21,13 @@ #include #include -#ifdef WIN32 -#include "windirmonitor.h" -#endif #include "guiutils.h" +#ifdef WIN32 +#include "windows.h" +#endif class DirBrowser : public Gtk::VBox -#ifdef WIN32 - , public WinDirChangeListener -#endif { public: typedef sigc::signal DirSelectionSignal; @@ -45,11 +42,7 @@ private: Gtk::TreeModelColumn > icon1; Gtk::TreeModelColumn > icon2; Gtk::TreeModelColumn dirname; -#ifdef WIN32 - Gtk::TreeModelColumn > monitor; -#else Gtk::TreeModelColumn > monitor; -#endif DirTreeColumns() { @@ -89,7 +82,6 @@ public: void updateVolumes (); void updateDirTree (const Gtk::TreeModel::iterator& iter); void updateDirTreeRoot (); - void winDirChanged () override; private: void addRoot (char letter); #endif diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 0b45d3e3d..305b3985e 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -459,9 +459,6 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : } selectedDirectory = ""; -#ifdef WIN32 - wdMonitor = NULL; -#endif } FileCatalog::~FileCatalog() @@ -540,21 +537,10 @@ void FileCatalog::closeDir () exportPanel->set_sensitive (false); } -#ifndef WIN32 - if (dirMonitor) { dirMonitor->cancel (); } -#else - - if (wdMonitor) { - delete wdMonitor; - wdMonitor = NULL; - } - -#endif - // ignore old requests ++selectedDirectoryId; @@ -671,12 +657,8 @@ void FileCatalog::dirSelected (const Glib::ustring& dirname, const Glib::ustring filepanel->loadingThumbs(M("PROGRESSBAR_LOADINGTHUMBS"), 0); } -#ifdef WIN32 - wdMonitor = new WinDirMonitor (selectedDirectory, this); -#else dirMonitor = dir->monitor_directory (); dirMonitor->signal_changed().connect (sigc::bind(sigc::mem_fun(*this, &FileCatalog::on_dir_changed), false)); -#endif } catch (Glib::Exception& ex) { std::cout << ex.what(); } @@ -1748,21 +1730,6 @@ void FileCatalog::reparseDirectory () fileNameList = nfileNameList; } -#ifdef WIN32 - -void FileCatalog::winDirChanged () -{ - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->reparseDirectory(); - - return FALSE; - }; - - idle_register.add(func, this); -} - -#else - void FileCatalog::on_dir_changed (const Glib::RefPtr& file, const Glib::RefPtr& other_file, Gio::FileMonitorEvent event_type, bool internal) { @@ -1777,8 +1744,6 @@ void FileCatalog::on_dir_changed (const Glib::RefPtr& file, const Gli } } -#endif - void FileCatalog::checkAndAddFile (Glib::RefPtr file) { diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 407535ba0..7e613a2b4 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -19,9 +19,6 @@ #ifndef _FILECATALOG_ #define _FILECATALOG_ -#ifdef WIN32 -#include "windirmonitor.h" -#endif #include "filebrowser.h" #include "exiffiltersettings.h" #include @@ -48,9 +45,6 @@ class FileCatalog : public Gtk::VBox, public FilterPanelListener, public FileBrowserListener, public ExportPanelListener -#ifdef WIN32 - , public WinDirChangeListener -#endif { public: typedef sigc::slot DirSelectionSlot; @@ -142,11 +136,7 @@ private: std::set editedFiles; guint modifierKey; // any modifiers held when rank button was pressed -#ifndef _WIN32 Glib::RefPtr dirMonitor; -#else - WinDirMonitor* wdMonitor; -#endif IdleRegister idle_register; @@ -288,11 +278,7 @@ public: void showToolBar(); void hideToolBar(); -#ifndef _WIN32 void on_dir_changed (const Glib::RefPtr& file, const Glib::RefPtr& other_file, Gio::FileMonitorEvent event_type, bool internal); -#else - void winDirChanged (); -#endif }; diff --git a/rtgui/windirmonitor.cc b/rtgui/windirmonitor.cc deleted file mode 100644 index 1888d9405..000000000 --- a/rtgui/windirmonitor.cc +++ /dev/null @@ -1,109 +0,0 @@ -/* - * This file is part of RawTherapee. - * - * Copyright (c) 2004-2010 Gabor Horvath - * - * RawTherapee is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * RawTherapee is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with RawTherapee. If not, see . - */ -#include "windirmonitor.h" -#include "options.h" - -static void CALLBACK current_directory_monitor_callback (DWORD error, DWORD nBytes, LPOVERLAPPED lpOverlapped) -{ - DWORD dwOffset = 0; - FILE_NOTIFY_INFORMATION* pInfo = NULL; - - WinDirMonitor::MonitorData* monData = (WinDirMonitor::MonitorData*)lpOverlapped; - - if (!nBytes) { - delete monData; - return; - } - - bool notify = false; - - // Analysis of the modifications. Let only parsed file extensions emit a notify, not PP3 changes - do { - // Get a pointer to the first change record... - pInfo = (FILE_NOTIFY_INFORMATION*) &monData->file_notify_buffer[dwOffset]; - - char fnameC[(MAX_PATH + 1) * 2] = {0}; - int strLen = WideCharToMultiByte(CP_UTF8, 0, pInfo->FileName, pInfo->FileNameLength / sizeof(WCHAR), fnameC, sizeof(fnameC), 0, 0); - fnameC[strLen] = 0; - Glib::ustring fname = fnameC; - - if (options.has_retained_extention(fname)) { - notify = true; - } - - // More than one change may happen at the same time. Load the next change and continue... - dwOffset += pInfo->NextEntryOffset; - } while (!notify && pInfo->NextEntryOffset != 0); - - // ReadDirectoryChangesW sometimes emits multiple events per change (one for each change type) - // To make sure it's not flooding update, this gets filtered. - DWORD curTick = GetTickCount(); - - if (notify && monData->listener && (curTick - monData->lastTimeUpdateTick) > 500) { - monData->lastTimeUpdateTick = curTick; - monData->listener->winDirChanged (); - } - - ReadDirectoryChangesW (monData->hDirectory, - monData->file_notify_buffer, - monData->buffer_allocated_bytes, - FALSE, - FILE_NOTIFY_CHANGE_FILE_NAME | - FILE_NOTIFY_CHANGE_DIR_NAME | - FILE_NOTIFY_CHANGE_LAST_WRITE, - &monData->buffer_filled_bytes, - &monData->overlapped, - current_directory_monitor_callback); -} - -WinDirMonitor::WinDirMonitor (Glib::ustring dirName, WinDirChangeListener* listener) : monData(NULL) -{ - wchar_t* wdirname = (wchar_t*)g_utf8_to_utf16 (dirName.c_str(), -1, NULL, NULL, NULL); - HANDLE hDirectory = CreateFileW (wdirname, FILE_LIST_DIRECTORY, FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, NULL); - g_free (wdirname); - - if (hDirectory != INVALID_HANDLE_VALUE) { - - monData = new MonitorData (); - monData->listener = listener; - monData->buffer_allocated_bytes = 32768; - monData->file_notify_buffer = new char [monData->buffer_allocated_bytes]; - monData->hDirectory = hDirectory; - monData->lastTimeUpdateTick = GetTickCount(); - - ReadDirectoryChangesW (monData->hDirectory, - monData->file_notify_buffer, - monData->buffer_allocated_bytes, - FALSE, - FILE_NOTIFY_CHANGE_FILE_NAME | - FILE_NOTIFY_CHANGE_DIR_NAME | - FILE_NOTIFY_CHANGE_LAST_WRITE, - &monData->buffer_filled_bytes, - &monData->overlapped, - current_directory_monitor_callback); - } -} - -WinDirMonitor::~WinDirMonitor () -{ - - if (monData && monData->hDirectory != INVALID_HANDLE_VALUE) { - CloseHandle (monData->hDirectory); - } -} diff --git a/rtgui/windirmonitor.h b/rtgui/windirmonitor.h deleted file mode 100644 index 8e18b7914..000000000 --- a/rtgui/windirmonitor.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * This file is part of RawTherapee. - * - * Copyright (c) 2004-2010 Gabor Horvath - * - * RawTherapee is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * RawTherapee is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with RawTherapee. If not, see . - */ -#ifndef _WINDIRMONITOR_ -#define _WINDIRMONITOR_ - -#include -#include - -class WinDirChangeListener -{ -public: - virtual ~WinDirChangeListener() = default; - - virtual void winDirChanged() = 0; -}; - -class WinDirMonitor : public Glib::Object -{ - -public: - struct MonitorData { - OVERLAPPED overlapped; - DWORD buffer_allocated_bytes; - char *file_notify_buffer; - DWORD buffer_filled_bytes; - HANDLE hDirectory; - WinDirChangeListener* listener; - int bigyo; - DWORD lastTimeUpdateTick; // for filtering multiple updates events - }; - -private: - MonitorData* monData; - -public: - WinDirMonitor (Glib::ustring dirName, WinDirChangeListener* listener); - ~WinDirMonitor (); -}; - -#endif - From 562ed3b22a964b6561fcb2bc18dd5a0322a580ce Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 2 Dec 2018 21:07:54 +0100 Subject: [PATCH 24/42] MultiLangMgr::getOSUserLanguage (): get rid of special windows code --- rtgui/multilangmgr.cc | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/rtgui/multilangmgr.cc b/rtgui/multilangmgr.cc index 8d2985436..a439c0602 100644 --- a/rtgui/multilangmgr.cc +++ b/rtgui/multilangmgr.cc @@ -209,27 +209,6 @@ Glib::ustring MultiLangMgr::getOSUserLanguage () { Glib::ustring langName ("default"); -#if defined (WIN32) - - const LCID localeID = GetUserDefaultLCID (); - TCHAR localeName[18]; - - const int langLen = GetLocaleInfo (localeID, LOCALE_SISO639LANGNAME, localeName, 9); - if (langLen <= 0) { - return langName; - } - - localeName[langLen - 1] = '-'; - - const int countryLen = GetLocaleInfo (localeID, LOCALE_SISO3166CTRYNAME, &localeName[langLen], 9); - if (countryLen <= 0) { - return langName; - } - - langName = localeToLang (localeName); - -#elif defined (__linux__) || defined (__APPLE__) - // Query the current locale and force decimal point to dot. const char *locale = getenv("LANG"); if (locale || (locale = setlocale (LC_CTYPE, ""))) { @@ -238,7 +217,5 @@ Glib::ustring MultiLangMgr::getOSUserLanguage () setlocale (LC_NUMERIC, "C"); -#endif - return langName; } From c9e848a896ce546480df9b80700f9307e773da8a Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Dec 2018 21:33:21 +0100 Subject: [PATCH 25/42] Updated rtexif using ExifTool-11.20 --- rtexif/nikonattribs.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/rtexif/nikonattribs.cc b/rtexif/nikonattribs.cc index 888bebe5a..84ebd22be 100644 --- a/rtexif/nikonattribs.cc +++ b/rtexif/nikonattribs.cc @@ -1074,6 +1074,7 @@ const std::map NALensDataInterpreter::lenses = { {"C3 34 68 98 38 40 4B 4E", "Sigma 100-400mm f/5-6.3 DG OS HSM | C"}, {"C8 54 62 62 0C 0C 4B 46", "Sigma 85mm f/1.4 DG HSM | A"}, {"C9 48 37 5C 24 24 4B 4E", "Sigma 24-70mm f/2.8 DG OS HSM | A"}, + {"CA 48 27 3E 24 24 DF 4E", "Tamron SP 15-30mm f/2.8 Di VC USD G2 (A041)"}, {"CC 4C 50 68 14 14 4B 06", "Sigma 50-100mm f/1.8 DC HSM | A"}, {"CD 3D 2D 70 2E 3C 4B 0E", "Sigma 18-125mm f/3.8-5.6 DC OS HSM"}, {"CE 34 76 A0 38 40 4B 0E", "Sigma 150-500mm f/5-6.3 DG OS APO HSM"}, From 4aed2ab1039598694d4602c0bf62c9f44024f32e Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Dec 2018 21:55:47 +0100 Subject: [PATCH 26/42] generateTranslationDiffs --- rtdata/languages/Catala | 1 + rtdata/languages/Chinese (Simplified) | 1 + rtdata/languages/Chinese (Traditional) | 1 + rtdata/languages/Czech | 1 + rtdata/languages/Dansk | 1 + rtdata/languages/Deutsch | 5 +++++ rtdata/languages/English (UK) | 1 + rtdata/languages/English (US) | 1 + rtdata/languages/Espanol | 1 + rtdata/languages/Euskara | 1 + rtdata/languages/Francais | 1 + rtdata/languages/Greek | 1 + rtdata/languages/Hebrew | 1 + rtdata/languages/Italiano | 1 + rtdata/languages/Japanese | 5 +++++ rtdata/languages/Latvian | 1 + rtdata/languages/Magyar | 1 + rtdata/languages/Nederlands | 1 + rtdata/languages/Norsk BM | 1 + rtdata/languages/Polish | 1 + rtdata/languages/Polish (Latin Characters) | 1 + rtdata/languages/Portugues (Brasil) | 1 + rtdata/languages/Russian | 1 + rtdata/languages/Serbian (Cyrilic Characters) | 1 + rtdata/languages/Serbian (Latin Characters) | 1 + rtdata/languages/Slovak | 1 + rtdata/languages/Suomi | 1 + rtdata/languages/Swedish | 1 + rtdata/languages/Turkish | 1 + 29 files changed, 37 insertions(+) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index bf1a12876..97a973c02 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1001,6 +1001,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !GENERAL_ASIMAGE;As Image !GENERAL_AUTO;Automatic !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 38c4a37fe..fcbaa3275 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1016,6 +1016,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 +!GENERAL_CURRENT;Current !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 4c4e727c1..2f04282e4 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -574,6 +574,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !GENERAL_ASIMAGE;As Image !GENERAL_AUTO;Automatic !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 51873b391..0d23d40c4 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2168,6 +2168,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !DYNPROFILEEDITOR_IMGTYPE_STD;Standard !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!GENERAL_CURRENT;Current !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index beb4f2711..acc41f01d 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -568,6 +568,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !GENERAL_AUTO;Automatic !GENERAL_BEFORE;Before !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 8cc1bc000..a53ab991e 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2405,3 +2405,8 @@ ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen.\nTaste: Alt + f ZOOMPANEL_ZOOMIN;Hineinzoomen\nTaste: + ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!GENERAL_CURRENT;Current diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 648eca675..76103b42c 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -339,6 +339,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !GENERAL_BEFORE;Before !GENERAL_CANCEL;Cancel !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_DISABLE;Disable !GENERAL_DISABLED;Disabled !GENERAL_ENABLE;Enable diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index ead6f7abb..cbeccac41 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -224,6 +224,7 @@ !GENERAL_BEFORE;Before !GENERAL_CANCEL;Cancel !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_DISABLE;Disable !GENERAL_DISABLED;Disabled !GENERAL_ENABLE;Enable diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index dfd0bc84b..079f87c1d 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -1493,6 +1493,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !FILECHOOSER_FILTER_TIFF;TIFF files !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 33cb478a3..f1c1b3a3c 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -569,6 +569,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !GENERAL_AUTO;Automatic !GENERAL_BEFORE;Before !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 94f0f3fc9..50fb21046 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -2298,6 +2298,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!GENERAL_CURRENT;Current !HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel !HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur !HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index d930c3948..1d5ee7fee 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -568,6 +568,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !GENERAL_AUTO;Automatic !GENERAL_BEFORE;Before !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index 64b29759a..2bb35e982 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -569,6 +569,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !GENERAL_AUTO;Automatic !GENERAL_BEFORE;Before !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 6b3e6ef4d..14ac71ae7 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1328,6 +1328,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !FILECHOOSER_FILTER_TIFF;TIFF files !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index abc8ae4e7..3681fca15 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -2336,3 +2336,8 @@ ZOOMPANEL_ZOOMFITSCREEN;画像全体を画面に合わせる\nショートカッ ZOOMPANEL_ZOOMIN;ズームイン\nショートカット: + ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!GENERAL_CURRENT;Current diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 45d06fdd8..2b56c2937 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -569,6 +569,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !GENERAL_AUTO;Automatic !GENERAL_BEFORE;Before !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 9a459d5be..a2a9afd96 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -927,6 +927,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !GENERAL_ASIMAGE;As Image !GENERAL_AUTO;Automatic !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index e9b05ab7f..24d50791d 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -2058,6 +2058,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !EXIFPANEL_SHOWALL;Show all !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!GENERAL_CURRENT;Current !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 3db05ead0..aec6c8256 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -568,6 +568,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !GENERAL_AUTO;Automatic !GENERAL_BEFORE;Before !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 1026e9bd1..72d35b7db 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1450,6 +1450,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !FILECHOOSER_FILTER_TIFF;TIFF files !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index 7f3271885..909154913 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -1450,6 +1450,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !FILECHOOSER_FILTER_TIFF;TIFF files !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index b8d85ed59..ccabad796 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2225,6 +2225,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !DYNPROFILEEDITOR_IMGTYPE_STD;Standard !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!GENERAL_CURRENT;Current !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_489;DRC - Detail !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index c930b43d8..6c211244c 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1447,6 +1447,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILECHOOSER_FILTER_PP;Processing profiles !FILECHOOSER_FILTER_SAME;Same format as current photo +!GENERAL_CURRENT;Current !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_235;B&W - CM - Auto diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index fe64675c8..accfb139e 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1301,6 +1301,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !FILECHOOSER_FILTER_TIFF;TIFF files !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index 9cffebc2f..f0ce781c3 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -1301,6 +1301,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !FILECHOOSER_FILTER_TIFF;TIFF files !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index 09c4d83db..66debb12b 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -641,6 +641,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !GENERAL_ASIMAGE;As Image !GENERAL_AUTO;Automatic !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index 9e05dc05b..8f6ebdc15 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -570,6 +570,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !GENERAL_AUTO;Automatic !GENERAL_BEFORE;Before !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index a063f0516..626afc38b 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1826,6 +1826,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default +!GENERAL_CURRENT;Current !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index 36e5033c4..a62704a92 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -569,6 +569,7 @@ TP_WBALANCE_TEMPERATURE;Isı !GENERAL_AUTO;Automatic !GENERAL_BEFORE;Before !GENERAL_CLOSE;Close +!GENERAL_CURRENT;Current !GENERAL_FILE;File !GENERAL_NONE;None !GENERAL_OPEN;Open From e7923aa5e8ef2a72b6473344765148f0a9483e48 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sun, 2 Dec 2018 22:13:48 +0100 Subject: [PATCH 27/42] Update Deutsch locale --- rtdata/languages/Deutsch | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index a53ab991e..09736d74f 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -73,6 +73,7 @@ #72 05.10.2018 Korrekturen (TooWaBoo) RT 5.5 #73 21.11.2018 Erweiterung (TooWaBoo) RT 5.5 #74 24.11.2018 Erweiterung (TooWaBoo) RT 5.5 +#75 02.12.2018 Erweiterung (TooWaBoo) RT 5.5 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -2409,4 +2410,4 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!GENERAL_CURRENT;Current +!GENERAL_CURRENT;Aktuell From 07867aa53b8cd01f72f0c54bb0341ea4c487752a Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Dec 2018 22:21:50 +0100 Subject: [PATCH 28/42] Added missing semicolon to bundled processing profiles --- rtdata/profiles/Auto-Matched Curve - ISO High.pp3 | 4 ++-- rtdata/profiles/Auto-Matched Curve - ISO Medium.pp3 | 4 ++-- rtdata/profiles/Standard Film Curve - ISO High.pp3 | 4 ++-- rtdata/profiles/Standard Film Curve - ISO Medium.pp3 | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rtdata/profiles/Auto-Matched Curve - ISO High.pp3 b/rtdata/profiles/Auto-Matched Curve - ISO High.pp3 index 36dd66908..a3075cfe3 100644 --- a/rtdata/profiles/Auto-Matched Curve - ISO High.pp3 +++ b/rtdata/profiles/Auto-Matched Curve - ISO High.pp3 @@ -37,8 +37,8 @@ Redchro=0 Bluechro=0 Gamma=1.7 Passes=1 -LCurve=0 -CCCurve=0 +LCurve=0; +CCCurve=0; [LensProfile] LcMode=lfauto diff --git a/rtdata/profiles/Auto-Matched Curve - ISO Medium.pp3 b/rtdata/profiles/Auto-Matched Curve - ISO Medium.pp3 index a391a7d2c..620fdc582 100644 --- a/rtdata/profiles/Auto-Matched Curve - ISO Medium.pp3 +++ b/rtdata/profiles/Auto-Matched Curve - ISO Medium.pp3 @@ -38,8 +38,8 @@ Redchro=0 Bluechro=0 Gamma=1.7 Passes=1 -LCurve=0 -CCCurve=0 +LCurve=0; +CCCurve=0; [LensProfile] LcMode=lfauto diff --git a/rtdata/profiles/Standard Film Curve - ISO High.pp3 b/rtdata/profiles/Standard Film Curve - ISO High.pp3 index bedc931ee..c3480ec19 100644 --- a/rtdata/profiles/Standard Film Curve - ISO High.pp3 +++ b/rtdata/profiles/Standard Film Curve - ISO High.pp3 @@ -38,8 +38,8 @@ Redchro=0 Bluechro=0 Gamma=1.7 Passes=1 -LCurve=0 -CCCurve=0 +LCurve=0; +CCCurve=0; [LensProfile] LcMode=lfauto diff --git a/rtdata/profiles/Standard Film Curve - ISO Medium.pp3 b/rtdata/profiles/Standard Film Curve - ISO Medium.pp3 index 6e00d6705..7fad5b3e8 100644 --- a/rtdata/profiles/Standard Film Curve - ISO Medium.pp3 +++ b/rtdata/profiles/Standard Film Curve - ISO Medium.pp3 @@ -38,8 +38,8 @@ Redchro=0 Bluechro=0 Gamma=1.7 Passes=1 -LCurve=0 -CCCurve=0 +LCurve=0; +CCCurve=0; [LensProfile] LcMode=lfauto From eb24230d0840b44bd5658501f498ab5dde959645 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sun, 2 Dec 2018 22:32:18 +0100 Subject: [PATCH 29/42] Update Deutsch (Forgot to remove the "!" sign --- rtdata/languages/Deutsch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 09736d74f..462fe922a 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2410,4 +2410,4 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!GENERAL_CURRENT;Aktuell +GENERAL_CURRENT;Aktuell From 4e79d688074410184f95b4641e4a8bc967a6d4c3 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Dec 2018 23:00:29 +0100 Subject: [PATCH 30/42] CMake file cleanup --- CMakeLists.txt | 52 ++++++++++++++++++------------------ UpdateInfo.cmake | 58 ++++++++++++++++++++--------------------- rtengine/CMakeLists.txt | 2 +- win.cmake | 2 +- 4 files changed, 57 insertions(+), 57 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f2739c4da..9dab10f0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,11 @@ if(APPLE) cmake_minimum_required(VERSION 3.3) - CMAKE_POLICY(SET CMP0025 NEW) + cmake_policy(SET CMP0025 NEW) else() cmake_minimum_required(VERSION 2.8.8) endif() -# Must stay before the PROJECT() command: +# Must stay before the project() command: if(${CMAKE_EXTRA_GENERATOR} MATCHES "Eclipse CDT4") set(CMAKE_CXX_COMPILER_ARG1 "-std=c++11" CACHE STRING "C++ version for eclipse" FORCE) # Users building with Eclipse should set CMAKE_ECLIPSE_VERSION through the @@ -13,18 +13,18 @@ if(${CMAKE_EXTRA_GENERATOR} MATCHES "Eclipse CDT4") #set(CMAKE_ECLIPSE_VERSION "4.6.0" CACHE STRING "Eclipse version" FORCE) endif() -PROJECT(RawTherapee) +project(RawTherapee) # The default target is Debug: if(CMAKE_BUILD_TYPE STREQUAL "") - set (CMAKE_BUILD_TYPE Debug CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel" FORCE) + set(CMAKE_BUILD_TYPE Debug CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel" FORCE) endif() string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) # Set required C and C++ standards and check GCC version: -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9") message(FATAL_ERROR "Building RawTherapee requires using GCC version 4.9 or higher!") @@ -32,14 +32,14 @@ endif() # We might want to build using the old C++ ABI, even when using a new GCC version: if(USE_OLD_CXX_ABI) - add_definitions (-D_GLIBCXX_USE_CXX11_ABI=0) + add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) endif() if(UPPER_CMAKE_BUILD_TYPE STREQUAL "DEBUG") - add_definitions (-D_DEBUG) + add_definitions(-D_DEBUG) else() - add_definitions (-DNDEBUG) - add_definitions (-D_DNDEBUG) + add_definitions(-DNDEBUG) + add_definitions(-D_DNDEBUG) endif() message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") @@ -141,7 +141,7 @@ if(WIN32 OR APPLE) if(BUILD_BUNDLE) message(STATUS "You have set BUILD_BUNDLE=ON but this is not necessary - the option is forced to ON for Windows and macOS.") endif() - set (BUILD_BUNDLE ON FORCE) + set(BUILD_BUNDLE ON FORCE) endif() if(NOT DEFINED BUNDLE_BASE_INSTALL_DIR) @@ -262,7 +262,7 @@ endif() if(NOT BUILD_BUNDLE) foreach(path BINDIR DATADIR LIBDIR DOCDIR CREDITSDIR LICENCEDIR) if(NOT (IS_ABSOLUTE "${${path}}")) - message (FATAL_ERROR "The ${path} path has to be absolute when using -DBUILD_BUNDLE=OFF") + message(FATAL_ERROR "The ${path} path has to be absolute when using -DBUILD_BUNDLE=OFF") endif() endforeach() endif() @@ -342,35 +342,35 @@ endif() if(WITH_LTO) # Using LTO with older versions of binutils requires setting extra flags - SET(BINUTILS_VERSION_MININUM "2.29") + set(BINUTILS_VERSION_MININUM "2.29") execute_process(COMMAND ar --version OUTPUT_VARIABLE BINUTILS_VERSION_DETECTED) string(REGEX REPLACE ".* ([0-9.]+)\n.*" "\\1" BINUTILS_VERSION_DETECTED "${BINUTILS_VERSION_DETECTED}") if("${BINUTILS_VERSION_DETECTED}" VERSION_LESS "${BINUTILS_VERSION_MININUM}") if(APPLE) - SET(CMAKE_AR "/opt/local/bin/ar") - SET(CMAKE_RANLIB "/opt/local/bin/ranlib") + set(CMAKE_AR "/opt/local/bin/ar") + set(CMAKE_RANLIB "/opt/local/bin/ranlib") else() - SET(CMAKE_AR "/usr/bin/gcc-ar") - SET(CMAKE_RANLIB "/usr/bin/gcc-ranlib") + set(CMAKE_AR "/usr/bin/gcc-ar") + set(CMAKE_RANLIB "/usr/bin/gcc-ranlib") endif() message(STATUS "Binutils version detected as less than " ${BINUTILS_VERSION_MININUM} " - setting CMake parameters to enable LTO linking:\n CMAKE_AR=\"" ${CMAKE_AR} "\"\n CMAKE_RANLIB=\"" ${CMAKE_RANLIB} "\"") endif() - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto") endif() if(WITH_SAN) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=${WITH_SAN}") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=${WITH_SAN}") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${WITH_SAN}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=${WITH_SAN}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=${WITH_SAN}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${WITH_SAN}") endif() if(WITH_PROF) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pg") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pg") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") endif() if(OPTION_OMP) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index 8ffaf0636..d1f532506 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -2,25 +2,25 @@ # If we find ReleaseInfo.cmake we use the info from there and don't need Git to be installed find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${PROJECT_SOURCE_DIR}" NO_DEFAULT_PATH) -if (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) +if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) # we look for the git command in this paths by order of preference - if (WIN32) + if(WIN32) find_program(GIT_CMD git.exe HINTS ENV Path PATH_SUFFIXES ../) - elseif (APPLE) + elseif(APPLE) find_program(GIT_CMD git PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") find_program(GIT_CMD git) - set (SHELL "/bin/bash") - else (WIN32) # Linux + set(SHELL "/bin/bash") + else(WIN32) # Linux find_program(GIT_CMD git) - set (SHELL "/bin/bash") - endif (WIN32) + set(SHELL "/bin/bash") + endif(WIN32) # Fail if Git is not installed - if (GIT_CMD STREQUAL GIT_CMD-NOTFOUND) + if(GIT_CMD STREQUAL GIT_CMD-NOTFOUND) message(FATAL_ERROR "git command not found!") - else () + else() message(STATUS "git command found: ${GIT_CMD}") - endif () + endif() # Get version description. # Depending on whether you checked out a branch (dev) or a tag (release), @@ -50,19 +50,19 @@ if (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not --tags OUTPUT_VARIABLE GIT_COMMITS_SINCE_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # If user checked-out something which is not a branch, use the description as branch name. - if (GIT_BRANCH STREQUAL "") - set (GIT_BRANCH "${GIT_DESCRIBE}") + if(GIT_BRANCH STREQUAL "") + set(GIT_BRANCH "${GIT_DESCRIBE}") endif() # Create numeric version. # This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. # Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). - if (GIT_COMMITS_SINCE_TAG STREQUAL "") - set (GIT_NUMERIC_VERSION_BS "0.0.0") - else () + if(GIT_COMMITS_SINCE_TAG STREQUAL "") + set(GIT_NUMERIC_VERSION_BS "0.0.0") + else() string(REGEX REPLACE "-.*" "" GIT_NUMERIC_VERSION_BS ${GIT_DESCRIBE}) set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") - endif () + endif() message(STATUS "Git checkout information:") message(STATUS " Commit description: ${GIT_DESCRIBE}") @@ -73,38 +73,38 @@ if (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") - if (NOT DEFINED CACHE_NAME_SUFFIX) + if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") message(STATUS "CACHE_NAME_SUFFIX was not defined, it is now \"${CACHE_NAME_SUFFIX}\"") - else () + else() message(STATUS "CACHE_NAME_SUFFIX is \"${CACHE_NAME_SUFFIX}\"") - endif () + endif() -else (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) +else(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) include("${PROJECT_SOURCE_DIR}/ReleaseInfo.cmake") -endif (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) +endif(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) -if (WIN32) - if (BIT_DEPTH EQUAL 4) +if(WIN32) + if(BIT_DEPTH EQUAL 4) set(BUILD_BIT_DEPTH 32) # 32 bits builds has to be installable on 64 bits system, to support WinXP/64. set(ARCHITECTURE_ALLOWED "x86 x64 ia64") # installing in 32 bits mode even on 64 bits OS and architecture set(INSTALL_MODE "") - elseif (BIT_DEPTH EQUAL 8) + elseif(BIT_DEPTH EQUAL 8) set(BUILD_BIT_DEPTH 64) # Restricting the 64 bits builds to 64 bits systems only set(ARCHITECTURE_ALLOWED "x64 ia64") # installing in 64 bits mode for all 64 bits processors, even for itanium architecture set(INSTALL_MODE "x64 ia64") - endif (BIT_DEPTH EQUAL 4) + endif(BIT_DEPTH EQUAL 4) # set part of the output archive name set(SYSTEM_NAME "WinVista") - configure_file ("${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") -endif (WIN32) + configure_file("${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") +endif(WIN32) # build version.h from template -configure_file ("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") +configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") # build AboutThisBuild.txt from template -configure_file ("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") +configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 7bb35ad01..4ffad24a1 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -164,7 +164,7 @@ add_dependencies(rtengine UpdateInfo) # It may be nice to store library version too if(BUILD_SHARED_LIBS) - install (TARGETS rtengine DESTINATION ${LIBDIR}) + install(TARGETS rtengine DESTINATION ${LIBDIR}) endif() set_target_properties(rtengine PROPERTIES COMPILE_FLAGS "${RTENGINE_CXX_FLAGS}") diff --git a/win.cmake b/win.cmake index 3b330ebe0..9c292b2df 100644 --- a/win.cmake +++ b/win.cmake @@ -24,7 +24,7 @@ set(PROC_TARGET_NUMBER 0 CACHE STRING "Target Processor") # If you want to force the target processor name when PROC_TARGET_NUMBER = 0 or 2, # uncomment the next line and replace labelWithoutQuotes by its value -#set (PROC_LABEL labelWithoutQuotes CACHE STRING "Target Processor label") +#set(PROC_LABEL labelWithoutQuotes CACHE STRING "Target Processor label") # Important: MinGW-w64 user may need to specify the -m32 or -m64 flag in CMAKE_CXX_FLAGS, # CMAKE_C_FLAGS and CMAKE_EXE_LINKER_FLAGS to select between 32/64bit build From e2490e5381ce97cc1d77034b65ea15cd1c73dc1c Mon Sep 17 00:00:00 2001 From: Hombre Date: Mon, 3 Dec 2018 01:56:10 +0100 Subject: [PATCH 31/42] Updated French translation --- rtdata/languages/Francais | 154 +++++++++++++++++++------------------- 1 file changed, 75 insertions(+), 79 deletions(-) diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 50fb21046..9779e4145 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -221,6 +221,7 @@ GENERAL_AUTO;Automatique GENERAL_BEFORE;Avant GENERAL_CANCEL;Annuler GENERAL_CLOSE;Fermer +GENERAL_CURRENT;Actuel GENERAL_DISABLE;Désactiver GENERAL_DISABLED;Désactivé GENERAL_ENABLE;Activer @@ -509,33 +510,33 @@ HISTORY_MSG_254;CpND - Teinte chair HISTORY_MSG_255;Réd. de bruit - Filtre médian HISTORY_MSG_256;Réd. de bruit - Médian - Type HISTORY_MSG_257;Virage Partiel -HISTORY_MSG_258;Virage Partiel - Couleur -HISTORY_MSG_259;Virage Partiel - Opacité -HISTORY_MSG_260;Virage Partiel - Opacité 'a[b]' -HISTORY_MSG_261;Virage Partiel - Méthode -HISTORY_MSG_262;Virage Partiel - Opacité 'b' -HISTORY_MSG_263;Virage Partiel - Ombres - Rouge -HISTORY_MSG_264;Virage Partiel - Ombres - Vert -HISTORY_MSG_265;Virage Partiel - Ombres - Bleu -HISTORY_MSG_266;Virage Partiel - Moyen - Rouge -HISTORY_MSG_267;Virage Partiel - Moyen - Vert -HISTORY_MSG_268;Virage Partiel - Moyen - Bleu -HISTORY_MSG_269;Virage Partiel - HL - Rouge -HISTORY_MSG_270;Virage Partiel - HL - Vert -HISTORY_MSG_271;Virage Partiel - HL - Bleu -HISTORY_MSG_272;Virage Partiel - Balance -HISTORY_MSG_273;Virage Partiel - Balance Couleur O/TM/HL -HISTORY_MSG_274;Virage Partiel - Saturation des ombres -HISTORY_MSG_275;Virage Partiel - Saturation des HL -HISTORY_MSG_276;Virage Partiel - Opacité +HISTORY_MSG_258;VP - Couleur +HISTORY_MSG_259;VP - Opacité +HISTORY_MSG_260;VP - Opacité 'a[b]' +HISTORY_MSG_261;VP - Méthode +HISTORY_MSG_262;VP - Opacité 'b' +HISTORY_MSG_263;VP - Ombres - Rouge +HISTORY_MSG_264;VP - Ombres - Vert +HISTORY_MSG_265;VP - Ombres - Bleu +HISTORY_MSG_266;VP - Moyen - Rouge +HISTORY_MSG_267;VP - Moyen - Vert +HISTORY_MSG_268;VP - Moyen - Bleu +HISTORY_MSG_269;VP - HL - Rouge +HISTORY_MSG_270;VP - HL - Vert +HISTORY_MSG_271;VP - HL - Bleu +HISTORY_MSG_272;VP - Balance +HISTORY_MSG_273;VP - Balance Couleur O/TM/HL +HISTORY_MSG_274;VP - Saturation des ombres +HISTORY_MSG_275;VP - Saturation des HL +HISTORY_MSG_276;VP - Opacité HISTORY_MSG_277;--inutilisé-- -HISTORY_MSG_278;Virage Partiel - Préserver luminance -HISTORY_MSG_279;Virage partiel - Ombres -HISTORY_MSG_280;Virage partiel - Hautes lumières -HISTORY_MSG_281;Virage partiel - Protect. Saturé -HISTORY_MSG_282;Virage partiel - Seuil de protection -HISTORY_MSG_283;Virage partiel - Force -HISTORY_MSG_284;Virage partiel - Protect. saturé auto +HISTORY_MSG_278;VP - Préserver luminance +HISTORY_MSG_279;VP - Ombres +HISTORY_MSG_280;VP - Hautes lumières +HISTORY_MSG_281;VP - Protect. Saturé +HISTORY_MSG_282;VP - Seuil de protection +HISTORY_MSG_283;VP - Force +HISTORY_MSG_284;VP - Protect. saturé auto HISTORY_MSG_285;Réd. de bruit - Médiane - Méthode HISTORY_MSG_286;Réd. de bruit - Médiane - Type HISTORY_MSG_287;Réd. de bruit - Médiane - Itérations @@ -730,15 +731,20 @@ HISTORY_MSG_491;Balances des Blancs HISTORY_MSG_492;Courbes RVB HISTORY_MSG_493;Ajustements L*a*b* HISTORY_MSG_CLAMPOOG;Tronquer les couleurs hors gamut -HISTORY_MSG_COLORTONING_LABGRID_VALUE;Virage Partiel - Correction couleur -HISTORY_MSG_COLORTONING_LABREGION_AB;Virage Partiel - Correction couleur -HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;Virage Partiel - Masque C -HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;Virage Partiel - Masque T -HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;Virage Partiel - Luminosité -HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;Virage Partiel - Masque L -HISTORY_MSG_COLORTONING_LABREGION_LIST;Virage Partiel - Liste -HISTORY_MSG_COLORTONING_LABREGION_SATURATION;Virage Partiel - Saturation -HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;Virage Partiel - Montrer le masque +HISTORY_MSG_COLORTONING_LABGRID_VALUE;VP - Correction couleur +HISTORY_MSG_COLORTONING_LABREGION_AB;VP - Correction couleur +HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;VP - Canal +HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;VP - Masque C +HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;VP - Masque T +HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;VP - Luminosité +HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;VP - Masque L +HISTORY_MSG_COLORTONING_LABREGION_LIST;VP - Liste +HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;VP - Masque flou local +HISTORY_MSG_COLORTONING_LABREGION_OFFSET;VP - Offset local +HISTORY_MSG_COLORTONING_LABREGION_POWER;VP - Puissance locale +HISTORY_MSG_COLORTONING_LABREGION_SATURATION;VP - Saturation +HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;VP - Montrer le masque +HISTORY_MSG_COLORTONING_LABREGION_SLOPE;VP - Pente locale HISTORY_MSG_DEHAZE_DEPTH;EB - Profondeur HISTORY_MSG_DEHAZE_ENABLED;Élimination de la Brume HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;EB - Montrer carte de profondeur @@ -1036,9 +1042,15 @@ PARTIALPASTE_VIGNETTING;Correction du vignettage PARTIALPASTE_WAVELETGROUP;Niveaux d'ondelette PARTIALPASTE_WHITEBALANCE;Balance des blancs PREFERENCES_ADD;Ajoute +PREFERENCES_APPEARANCE;Apparence +PREFERENCES_APPEARANCE_COLORPICKERFONT;Police des ancres de vérification couleur +PREFERENCES_APPEARANCE_CROPMASKCOLOR;Couleur du masque de recadrage +PREFERENCES_APPEARANCE_MAINFONT;Police principale PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Couleur du cadre dans le Navigateur +PREFERENCES_APPEARANCE_THEME;Thème PREFERENCES_APPLNEXTSTARTUP;appliqué au prochain lancement PREFERENCES_AUTOMONPROFILE;Utiliser automatiquement le profil de l'écran principal +PREFERENCES_AUTOSAVE_TP_OPEN;Sauvegarder l'état ouvert/fermé des outils en quittant PREFERENCES_BATCH_PROCESSING;Traitement par lot PREFERENCES_BEHADDALL;Tout à 'Ajoute' PREFERENCES_BEHADDALLHINT;Règle tous les paramètres sur le mode Ajoute.\nLa modification des paramètres dans le panneau d'édition en par lot sera des deltas par-rapport aux valeurs existantes @@ -1097,6 +1109,7 @@ PREFERENCES_EDITORCMDLINE;Ligne de commande personnelle PREFERENCES_EDITORLAYOUT;Disposition de l'éditeur PREFERENCES_EXTERNALEDITOR;Éditeur externe PREFERENCES_FBROWSEROPTS;Options du navigateur de fichiers et de vignettes +PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barre d'outil compact dans le Navigateur de Fichiers PREFERENCES_FILEFORMAT;Format du fichier PREFERENCES_FLATFIELDFOUND;Trouvé PREFERENCES_FLATFIELDSDIR;Dossier des images de Champ Uniforme @@ -1379,6 +1392,7 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Symétriser / axe vertical TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotation vers la gauche\nRaccourci: [\n\nRaccourci en mode Éditeur unique: Alt-[ TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotation vers la droite\nRaccourci: ]\n\nRaccourci en mode Éditeur unique: Alt-] TP_COARSETRAF_TOOLTIP_VFLIP;Symétriser / axe horizontal +TP_COLORAPP_ABSOLUTELUMINANCE;Luminance absolue TP_COLORAPP_ALGO;Algorithme TP_COLORAPP_ALGO_ALL;Tout TP_COLORAPP_ALGO_JC;Luminosité + Chroma (JC) @@ -1389,6 +1403,7 @@ TP_COLORAPP_BADPIXSL;Filtrer les pixels chauds/morts TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression des pixels chauds/morts (colorés de manière intense).\n0=Aucun effet 1=Médian 2=Gaussien.\n\nCes artefacts sont dus aux limitations de CIECAM02. Vous pouvez également adjuster l'image afin d'éviter les ombres très sombres. TP_COLORAPP_BRIGHT;Brillance (Q) TP_COLORAPP_BRIGHT_TOOLTIP;Brillance dans CIECAM02 est différent de Lab et RVB, prend en compte la luminosité du blanc +TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;Lorsque réglé manuellement, les valeurs au-dessus de 65 sont recommandées. TP_COLORAPP_CHROMA;Chroma (C) TP_COLORAPP_CHROMA_M;Niveau de couleurs (M) TP_COLORAPP_CHROMA_M_TOOLTIP;Niveau de couleurs dans CIECAM02 est différent de Lab et RVB @@ -1419,6 +1434,7 @@ TP_COLORAPP_LABEL_SCENE;Conditions de la scène TP_COLORAPP_LABEL_VIEWING;Conditions de visionnage TP_COLORAPP_LIGHT;Luminosité (J) TP_COLORAPP_LIGHT_TOOLTIP;Luminosité dans CIECAM02 est différent de celui de Lab et RVB +TP_COLORAPP_MEANLUMINANCE;Luminance moyenne (Yb%) TP_COLORAPP_MODEL;Modèle de Point Blanc TP_COLORAPP_MODEL_TOOLTIP;Modèle de Point Blanc\n\nBB [RT] + [sortie]:\nLa BB de RT est utilisée pour la scène, CIECAM est réglé sur D50, le blanc du périphérique de sortie utilise la valeur réglée dans Préférences\n\nBB [RT+CAT02] + [sortie]:\nLes réglages de BB de RT sont utilisés par CAT02 et le blanc du périphérique de sortie utilise la valeur réglée dans Préférences TP_COLORAPP_NEUTRAL;Résinitialiser @@ -1462,14 +1478,23 @@ TP_COLORTONING_LABGRID;Grille de correction L*a*b* TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nO: a=%3 b=%4 TP_COLORTONING_LABREGIONS;Régions de correction L*a*b* TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +TP_COLORTONING_LABREGION_CHANNEL;Canal +TP_COLORTONING_LABREGION_CHANNEL_ALL;Tous +TP_COLORTONING_LABREGION_CHANNEL_B;Bleu +TP_COLORTONING_LABREGION_CHANNEL_G;Vert +TP_COLORTONING_LABREGION_CHANNEL_R;Rouge TP_COLORTONING_LABREGION_CHROMATICITYMASK;C TP_COLORTONING_LABREGION_HUEMASK;T TP_COLORTONING_LABREGION_LIGHTNESS;Luminosité TP_COLORTONING_LABREGION_LIGHTNESSMASK;L TP_COLORTONING_LABREGION_LIST_TITLE;Correction TP_COLORTONING_LABREGION_MASK;Masque +TP_COLORTONING_LABREGION_MASKBLUR;Masque Flou +TP_COLORTONING_LABREGION_OFFSET;Décalage +TP_COLORTONING_LABREGION_POWER;Puissance TP_COLORTONING_LABREGION_SATURATION;Saturation TP_COLORTONING_LABREGION_SHOWMASK;Montrer le masque +TP_COLORTONING_LABREGION_SLOPE;Pente TP_COLORTONING_LUMA;Luminance TP_COLORTONING_LUMAMODE;Préserver la luminance TP_COLORTONING_LUMAMODE_TOOLTIP;Si activé, lorsque vous changez la couleur (rouge, vert, cyan, bleu, etc.), la luminance de chaque pixel est préservé @@ -1509,6 +1534,8 @@ TP_CROP_GUIDETYPE;Type de guide: TP_CROP_H;H TP_CROP_LABEL;Recadrage TP_CROP_PPI;PPI= +TP_CROP_RESETCROP;Réinitialiser +TP_CROP_SELECTCROP;Sélectionner TP_CROP_W;L TP_CROP_X;X TP_CROP_Y;Y @@ -1760,7 +1787,16 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Peut être utilisé avec le curseur Chromaticité et TP_LENSGEOM_AUTOCROP;Recadrage auto TP_LENSGEOM_FILL;Remplir TP_LENSGEOM_LABEL;Objectif / Géométrie +TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatiquement +TP_LENSPROFILE_CORRECTION_LCPFILE;Fichier LCP +TP_LENSPROFILE_CORRECTION_MANUAL;Manuellement TP_LENSPROFILE_LABEL;Profil de correction d'objectif +TP_LENSPROFILE_LENS_WARNING;Attention: le facteur de recadrage utilisé pour la caractérisation d'un objectif est plus grand que le facteur de recadrage de l'appareil photo, les résultats pourraient être faux. +TP_LENSPROFILE_MODE_HEADER;Sélectionner le profil d'objectif: +TP_LENSPROFILE_USE_CA;Aberration chromatique +TP_LENSPROFILE_USE_GEOMETRIC;Géometrique +TP_LENSPROFILE_USE_HEADER;Sélectionner les distortions à corriger: +TP_LENSPROFILE_USE_VIGNETTING;Vignetage TP_LOCALCONTRAST_AMOUNT;Quantité TP_LOCALCONTRAST_DARKNESS;Niveau des ombres TP_LOCALCONTRAST_LABEL;Contraste Local @@ -1803,6 +1839,7 @@ TP_PRSHARPENING_LABEL;Netteté post-redimensionnement TP_PRSHARPENING_TOOLTIP;Augmente la netteté de l'image après le redimentionnement. Ne fonctionne que si la méthode de redimensionnement "Lanczos" est utilisé. Il est impossible de prévisualiser les effets de cet outil. Cf. RawPedia pour les instructions d'utilisation. TP_RAWCACORR_AUTO;Correction automatique TP_RAWCACORR_AUTOIT;Itérations +TP_RAWCACORR_AUTOIT_TOOLTIP;Ce réglage est disponible si "Correction-auto" est activé.\nCorrection-auto est conservatif, signifiant qu'il ne corrige souvent pas toute l'aberration chromatique.\nPour corriger l'aberration restante, vous pouvez uttiliser jusqu'à cinq itérations de de la correction automatique de l'aberration chromatique.\nChaque itération réduira l'aberration restante de l'itération précédente avec un prix d'un temps de traitement plus long. TP_RAWCACORR_AVOIDCOLORSHIFT;Éviter les dérives couleurs TP_RAWCACORR_CABLUE;Bleu TP_RAWCACORR_CARED;Rouge @@ -1926,6 +1963,7 @@ TP_RESIZE_WIDTH;Largeur TP_RETINEX_CONTEDIT_HSL;Égaliseur d'histogramme TSV TP_RETINEX_CONTEDIT_LAB;Égaliseur d'histogramme L*a*b* TP_RETINEX_CONTEDIT_LH;Égaliseur de teinte +TP_RETINEX_CONTEDIT_MAP;Égaliseur TP_RETINEX_CURVEEDITOR_CD;L=f(L) TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance en fonction de la luminance L=f(L)\nCorrige les données raw pour réduire halos et artéfacts. TP_RETINEX_CURVEEDITOR_LH;Force=f(T) @@ -1963,6 +2001,7 @@ TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL_MASK;Masque TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;Bas +TP_RETINEX_MAP;Méthode TP_RETINEX_MAP_GAUS;Masque gaussien TP_RETINEX_MAP_MAPP;Masque pointu (ondelettes partielles) TP_RETINEX_MAP_MAPT;Masque pointu (ondelettes totales) @@ -2272,6 +2311,7 @@ TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 TP_WBALANCE_LED_HEADER;LED TP_WBALANCE_LED_LSI;LSI Lumelex 2040 TP_WBALANCE_METHOD;Méthode +TP_WBALANCE_PICKER;Sélectionner TP_WBALANCE_SHADE;Ombre TP_WBALANCE_SIZE;Taille: TP_WBALANCE_SOLUX35;Solux 3500K @@ -2294,47 +2334,3 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: Alt-f ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: + ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!GENERAL_CURRENT;Current -!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel -!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur -!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset -!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power -!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope -!PREFERENCES_APPEARANCE;Appearance -!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font -!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color -!PREFERENCES_APPEARANCE_MAINFONT;Main font -!PREFERENCES_APPEARANCE_THEME;Theme -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORTONING_LABREGION_CHANNEL;Channel -!TP_COLORTONING_LABREGION_CHANNEL_ALL;All -!TP_COLORTONING_LABREGION_CHANNEL_B;Blue -!TP_COLORTONING_LABREGION_CHANNEL_G;Green -!TP_COLORTONING_LABREGION_CHANNEL_R;Red -!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur -!TP_COLORTONING_LABREGION_OFFSET;Offset -!TP_COLORTONING_LABREGION_POWER;Power -!TP_COLORTONING_LABREGION_SLOPE;Slope -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually -!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. -!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric -!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: -!TP_LENSPROFILE_USE_VIGNETTING;Vignetting -!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. -!TP_RETINEX_CONTEDIT_MAP;Equalizer -!TP_RETINEX_MAP;Method -!TP_WBALANCE_PICKER;Pick From 7cfd9dc8f4269a2bf774385275161839e708fd77 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Mon, 3 Dec 2018 00:55:54 +0100 Subject: [PATCH 32/42] colortoning: fixed bug in setting method in batch mode --- rtgui/colortoning.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index ec89118df..effd76eca 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -640,7 +640,7 @@ void ColorToning::read (const ProcParams* pp, const ParamsEdited* pedited) labgrid->setParams(pp->colorToning.labgridALow / ColorToningParams::LABGRID_CORR_MAX, pp->colorToning.labgridBLow / ColorToningParams::LABGRID_CORR_MAX, pp->colorToning.labgridAHigh / ColorToningParams::LABGRID_CORR_MAX, pp->colorToning.labgridBHigh / ColorToningParams::LABGRID_CORR_MAX, false); if (pedited && !pedited->colorToning.method) { - method->set_active (5); + method->set_active (7); } else if (pp->colorToning.method == "Lab") { method->set_active (0); } else if (pp->colorToning.method == "RGBSliders") { From 2ec094b1ce3fec7965dd2f8938171038578b29e2 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 3 Dec 2018 13:30:51 +0100 Subject: [PATCH 33/42] remove special windows code, #5058 --- rtgui/thumbbrowserbase.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 5f75967e6..6c15411a1 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -1009,9 +1009,6 @@ void ThumbBrowserBase::zoomChanged (bool zoomIn) } redraw (); -#ifdef WIN32 - gdk_window_process_updates (get_window()->gobj(), true); -#endif } void ThumbBrowserBase::refreshThumbImages () From bd665e7133110d8c6ab27ff48f480c97dfaffa44 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 3 Dec 2018 16:18:16 +0100 Subject: [PATCH 34/42] Updated language keys in Preferences, closes #5061 Commit bba0f7 cleaned up some language keys. Two of them were consolidated into one as they had an identical label but belonged to a different section of the CIECAM02 tool. As a result, Preferences needed to be updated. --- rtgui/preferences.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 19fa41d2b..4151eacd4 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -268,17 +268,17 @@ Gtk::Widget* Preferences::getBatchProcPanel () mi = behModel->append (); mi->set_value (behavColumns.label, M ("TP_COLORAPP_LABEL")); - appendBehavList (mi, M ("TP_COLORAPP_ADAPTSCENE"), ADDSET_CAT_ADAPTSCENE, true); + appendBehavList (mi, M("TP_COLORAPP_LABEL_SCENE") + " - " + M("TP_COLORAPP_ABSOLUTELUMINANCE"), ADDSET_CAT_ADAPTSCENE, true); + appendBehavList (mi, M("TP_COLORAPP_LABEL_VIEWING") + " - " + M("TP_COLORAPP_ABSOLUTELUMINANCE"), ADDSET_CAT_ADAPTVIEWING, true); appendBehavList (mi, M ("TP_COLORAPP_LIGHT"), ADDSET_CAT_LIGHT, true); appendBehavList (mi, M ("TP_COLORAPP_BRIGHT"), ADDSET_CAT_BRIGHT, true); appendBehavList (mi, M ("TP_COLORAPP_CHROMA"), ADDSET_CAT_CHROMA, true); + appendBehavList (mi, M ("TP_COLORAPP_CHROMA_S"), ADDSET_CAT_CHROMA_S, true); + appendBehavList (mi, M ("TP_COLORAPP_CHROMA_M"), ADDSET_CAT_CHROMA_M, true); appendBehavList (mi, M ("TP_COLORAPP_RSTPRO"), ADDSET_CAT_RSTPRO, true); appendBehavList (mi, M ("TP_COLORAPP_CONTRAST"), ADDSET_CAT_CONTRAST, true); appendBehavList (mi, M ("TP_COLORAPP_CONTRAST_Q"), ADDSET_CAT_CONTRAST_Q, true); - appendBehavList (mi, M ("TP_COLORAPP_CHROMA_S"), ADDSET_CAT_CHROMA_S, true); - appendBehavList (mi, M ("TP_COLORAPP_CHROMA_M"), ADDSET_CAT_CHROMA_M, true); appendBehavList (mi, M ("TP_COLORAPP_HUE"), ADDSET_CAT_HUE, true); - appendBehavList (mi, M ("TP_COLORAPP_ADAPTVIEWING"), ADDSET_CAT_ADAPTVIEWING, true); appendBehavList (mi, M ("TP_COLORAPP_BADPIXSL"), ADDSET_CAT_BADPIX, true); mi = behModel->append (); From 4a949685ca64422ad64af3213689ad14dbeb82c5 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 3 Dec 2018 16:24:41 +0100 Subject: [PATCH 35/42] generateTranslationDiffs --- rtdata/languages/Deutsch | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 462fe922a..33bec128f 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -296,6 +296,7 @@ GENERAL_AUTO;Automatisch GENERAL_BEFORE;Vorher GENERAL_CANCEL;Abbrechen GENERAL_CLOSE;Schließen +GENERAL_CURRENT;Aktuell GENERAL_DISABLE;Deaktivieren GENERAL_DISABLED;Deaktiviert GENERAL_ENABLE;Aktivieren @@ -2406,8 +2407,3 @@ ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen.\nTaste: Alt + f ZOOMPANEL_ZOOMIN;Hineinzoomen\nTaste: + ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -GENERAL_CURRENT;Aktuell From 75a34ef87ee1f5faa5286dc7817d14b0cfc1a7b9 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 4 Dec 2018 14:51:13 +0100 Subject: [PATCH 36/42] Improve caclulation of dual demosaic contrast threshold --- rtengine/rt_algo.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rtengine/rt_algo.cc b/rtengine/rt_algo.cc index 3925fc1ec..4552593cc 100644 --- a/rtengine/rt_algo.cc +++ b/rtengine/rt_algo.cc @@ -207,15 +207,16 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr if (autoContrast) { for (int pass = 0; pass < 2; ++pass) { const int tilesize = 80 / (pass + 1); - const int numTilesW = W / tilesize; - const int numTilesH = H / tilesize; + const int skip = pass < 1 ? tilesize : tilesize / 4; + const int numTilesW = W / skip - 3 * pass; + const int numTilesH = H / skip - 3 * pass; std::vector>> variances(numTilesH, std::vector>(numTilesW)); #pragma omp parallel for for (int i = 0; i < numTilesH; ++i) { - int tileY = i * tilesize; + int tileY = i * skip; for (int j = 0; j < numTilesW; ++j) { - int tileX = j * tilesize; + int tileX = j * skip; #ifdef __SSE2__ vfloat avgv = ZEROV; for (int y = tileY; y < tileY + tilesize; ++y) { @@ -268,10 +269,9 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr } } - const int minY = tilesize * minI; - const int minX = tilesize * minJ; + const int minY = skip * minI; + const int minX = skip * minJ; -// std::cout << pass << ": minvar : " << minvar << std::endl; if (minvar <= 1.f || pass == 1) { // a variance <= 1 means we already found a flat region and can skip second pass // in second pass we allow a variance of 2 From 09c55ca6eccae42892139791cc560643f7368c25 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 4 Dec 2018 23:13:20 +0100 Subject: [PATCH 37/42] Small speedup and code cleanup for autocontrast calculation --- rtengine/rt_algo.cc | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/rtengine/rt_algo.cc b/rtengine/rt_algo.cc index 4552593cc..a258287bf 100644 --- a/rtengine/rt_algo.cc +++ b/rtengine/rt_algo.cc @@ -203,20 +203,19 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr } } } else { - constexpr float scale = 0.0625f / 327.68f; if (autoContrast) { for (int pass = 0; pass < 2; ++pass) { const int tilesize = 80 / (pass + 1); const int skip = pass < 1 ? tilesize : tilesize / 4; const int numTilesW = W / skip - 3 * pass; const int numTilesH = H / skip - 3 * pass; - std::vector>> variances(numTilesH, std::vector>(numTilesW)); + std::vector> variances(numTilesH, std::vector(numTilesW)); - #pragma omp parallel for + #pragma omp parallel for schedule(dynamic) for (int i = 0; i < numTilesH; ++i) { - int tileY = i * skip; + const int tileY = i * skip; for (int j = 0; j < numTilesW; ++j) { - int tileX = j * skip; + const int tileX = j * skip; #ifdef __SSE2__ vfloat avgv = ZEROV; for (int y = tileY; y < tileY + tilesize; ++y) { @@ -226,7 +225,7 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr } float avg = vhadd(avgv); #else - float avg = 0.; + float avg = 0.f; for (int y = tileY; y < tileY + tilesize; ++y) { for (int x = tileX; x < tileX + tilesize; ++x) { avg += luminance[y][x]; @@ -234,6 +233,11 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr } #endif avg /= SQR(tilesize); + if (avg < 2000.f || avg > 20000.f) { + // too dark or too bright => skip the tile + variances[i][j] = RT_INFINITY_F; + continue; + } #ifdef __SSE2__ vfloat varv = ZEROV; avgv = F2V(avg); @@ -244,16 +248,15 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr } float var = vhadd(varv); #else - float var = 0.0; + float var = 0.f; for (int y = tileY; y < tileY + tilesize; ++y) { for (int x = tileX; x < tileX + tilesize; ++x) { var += SQR(luminance[y][x] - avg); } } - #endif +#endif var /= (SQR(tilesize) * avg); - variances[i][j].first = var; - variances[i][j].second = avg; + variances[i][j] = var; } } @@ -261,8 +264,8 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr int minI = 0, minJ = 0; for (int i = 0; i < numTilesH; ++i) { for (int j = 0; j < numTilesW; ++j) { - if (variances[i][j].first < minvar && variances[i][j].second > 2000.f && variances[i][j].second < 20000.f) { - minvar = variances[i][j].first; + if (variances[i][j] < minvar) { + minvar = variances[i][j]; minI = i; minJ = j; } @@ -295,6 +298,7 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr } } } else { + constexpr float scale = 0.0625f / 327.68f; #ifdef _OPENMP #pragma omp parallel #endif From 1b0baf78ff8fb2e4830a76444128066736df23a3 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 5 Dec 2018 15:17:12 +0100 Subject: [PATCH 38/42] buildBlendMask() cleanup --- rtengine/rt_algo.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/rt_algo.cc b/rtengine/rt_algo.cc index a258287bf..af2083d8e 100644 --- a/rtengine/rt_algo.cc +++ b/rtengine/rt_algo.cc @@ -22,8 +22,6 @@ #include #include #include -#include -#include #ifdef _OPENMP #include #endif @@ -206,12 +204,14 @@ void buildBlendMask(float** luminance, float **blend, int W, int H, float &contr if (autoContrast) { for (int pass = 0; pass < 2; ++pass) { const int tilesize = 80 / (pass + 1); - const int skip = pass < 1 ? tilesize : tilesize / 4; + const int skip = pass == 0 ? tilesize : tilesize / 4; const int numTilesW = W / skip - 3 * pass; const int numTilesH = H / skip - 3 * pass; std::vector> variances(numTilesH, std::vector(numTilesW)); +#ifdef _OPENMP #pragma omp parallel for schedule(dynamic) +#endif for (int i = 0; i < numTilesH; ++i) { const int tileY = i * skip; for (int j = 0; j < numTilesW; ++j) { From feb718adb522cfe1f3a37a27ab05da2ae9e4e8d5 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 5 Dec 2018 15:40:14 +0100 Subject: [PATCH 39/42] Some changes to CMakeLists.txt, closes #5066 --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9dab10f0b..ff221ffef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -373,10 +373,11 @@ if(WITH_PROF) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") endif() +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wno-deprecated-declarations") if(OPTION_OMP) find_package(OpenMP) if(OPENMP_FOUND) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -Werror=unknown-pragmas -Wall -Wno-unused-result -Wno-deprecated-declarations") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -Werror=unknown-pragmas") endif() endif() From d51e9b9bd46b40f525aeb9ab4834053fe623ab05 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 5 Dec 2018 19:20:57 +0100 Subject: [PATCH 40/42] Remove obsolete MSR() in imagesource.h --- rtengine/dcrop.cc | 2 +- rtengine/imagesource.h | 1 - rtengine/improccoordinator.cc | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 778f29fe8..e49e03329 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -869,7 +869,7 @@ void Crop::update(int todo) bool cclutili = parent->cclutili; LUTu dummy; - // parent->ipf.MSR(labnCrop, labnCrop->W, labnCrop->H, 1); + parent->ipf.chromiLuminanceCurve(this, 1, labnCrop, labnCrop, parent->chroma_acurve, parent->chroma_bcurve, parent->satcurve, parent->lhskcurve, parent->clcurve, parent->lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy); parent->ipf.vibrance(labnCrop); parent->ipf.labColorCorrectionRegions(labnCrop); diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index c87ce4b0d..6c39d8d42 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -76,7 +76,6 @@ public: virtual void flushRGB () {}; virtual void HLRecovery_Global (const ToneCurveParams &hrp) {}; virtual void HLRecovery_inpaint (float** red, float** green, float** blue) {}; - virtual void MSR (LabImage* lab, LUTf & mapcurve, bool &mapcontlutili, int width, int height, int skip, RetinexParams deh, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax) {}; virtual bool isRGBSourceModified () const = 0; // tracks whether cached rgb output of demosaic has been modified diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 851f78ed8..24107ea1f 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -706,7 +706,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) nprevl->CopyFrom(oprevl); progress("Applying Color Boost...", 100 * readyphase / numofphases); - // ipf.MSR(nprevl, nprevl->W, nprevl->H, 1); + histCCurve.clear(); histLCurve.clear(); ipf.chromiLuminanceCurve(nullptr, pW, nprevl, nprevl, chroma_acurve, chroma_bcurve, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, histCCurve, histLCurve); From 04d5ba3f918f49b89b5b1f4bf95fa190e48e3bcc Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 8 Dec 2018 01:30:09 +0100 Subject: [PATCH 41/42] reduce silencing of warnings for dcraw code --- rtengine/dcraw.cc | 6 ++---- rtengine/dcraw.h | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 7d4ec4376..180eed1c0 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -1,12 +1,9 @@ #ifdef __GNUC__ #pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Warray-bounds" #pragma GCC diagnostic ignored "-Wsign-compare" -#pragma GCC diagnostic ignored "-Wparentheses" #if (__GNUC__ >= 6) #pragma GCC diagnostic ignored "-Wmisleading-indentation" #if (__GNUC__ >= 7) -#pragma GCC diagnostic ignored "-Wdangling-else" #endif #endif #endif @@ -1045,10 +1042,11 @@ void CLASS canon_sraw_load_raw() for (row=0; row < height; row++, ip+=width) { if (row & (jh.sraw >> 1)) for (col=0; col < width; col+=2) - for (c=1; c < 3; c++) + for (c=1; c < 3; c++) { if (row == height-1) ip[col][c] = ip[col-width][c]; else ip[col][c] = (ip[col-width][c] + ip[col+width][c] + 1) >> 1; + } for (col=1; col < width; col+=2) for (c=1; c < 3; c++) if (col == width-1) diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h index 923d6190f..96d778815 100644 --- a/rtengine/dcraw.h +++ b/rtengine/dcraw.h @@ -343,7 +343,7 @@ void parse_qt (int end); // ph1_bithuff(int nbits, ushort *huff); class ph1_bithuff_t { public: - ph1_bithuff_t(DCraw *p, IMFILE *i, short &o):parent(p),order(o),ifp(i),bitbuf(0),vbits(0){} + ph1_bithuff_t(DCraw *p, IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){} unsigned operator()(int nbits, ushort *huff); unsigned operator()(int nbits); unsigned operator()(); @@ -376,7 +376,6 @@ private: } } - DCraw *parent; short ℴ IMFILE* const ifp; UINT64 bitbuf; From 033b021b9b04997d1fe228fc85ff076997cd5a6b Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 8 Dec 2018 01:45:55 +0100 Subject: [PATCH 42/42] removed useless #if --- rtengine/dcraw.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 180eed1c0..660d65385 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -3,8 +3,6 @@ #pragma GCC diagnostic ignored "-Wsign-compare" #if (__GNUC__ >= 6) #pragma GCC diagnostic ignored "-Wmisleading-indentation" -#if (__GNUC__ >= 7) -#endif #endif #endif