<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/52b8d97f980a0c42ca00f0b3f1e35f1348bcae7f">https://github.com/macports/macports-ports/commit/52b8d97f980a0c42ca00f0b3f1e35f1348bcae7f</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 52b8d97f980a0c42ca00f0b3f1e35f1348bcae7f
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Fri Apr 26 23:48:22 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    rawtherapee: update to fix GUI on 32-bit
</span>---
 graphics/rawtherapee/Portfile                      |  29 +-
 .../rawtherapee/files/0003-patch-options.cc.diff   |  38 ++
 ...Revert-breaking-commit-as-a-temporary-fix.patch | 499 +++++++++++++++++++++
 ...tch => 0005-Fix-PowerPC-processor-target.patch} |   0
 4 files changed, 563 insertions(+), 3 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/rawtherapee/Portfile b/graphics/rawtherapee/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 864045ce678..c1b9245a04a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/rawtherapee/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/rawtherapee/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -126,17 +126,40 @@ variant quartz conflicts x11 {
</span> variant x11 conflicts quartz {
     legacysupport.redirect_bins rawtherapee rawtherapee-cli
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DMACOS_NATIVE=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DDATADIR=${prefix}/share/${name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DMACOS_NATIVE=OFF
</span> 
     require_active_variants gtk3    x11
     require_active_variants gtkmm3  x11
 
     patchfiles-append   0001-Do-not-force-Cocoa-build.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        0002-Allow-non-Cocoa-code-in-sources.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0002-Allow-non-Cocoa-code-in-sources.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0003-patch-options.cc.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|@PREFIX@|${prefix}|" ${worksrcpath}/rtgui/options.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Having wasted many hours on this silly issue, I think it makes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # sense to display a warning which may save someone's time and sanity.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    notes "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    On the first run the app expects a user to confirm the launch\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    in a modal window. Some versions of X server may display that window\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    beneath the main one. Interface controls will not respond until\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    the modal window is closed. If you find yourself in such a situation,\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    move the main X window aside.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# See: https://github.com/Beep6581/RawTherapee/issues/7052
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${configure.build_arch} in [list i386 ppc]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   0004-Revert-breaking-commit-as-a-temporary-fix.patch
</span> }
 
 if {${configure.build_arch} in [list ppc ppc64]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append   0003-Fix-PowerPC-processor-target.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://github.com/Beep6581/RawTherapee/pull/7051
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   0005-Fix-PowerPC-processor-target.patch
</span> 
     # It is off by default, but just in case.
     # We do not want LTO on PowerPC builds.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/rawtherapee/files/0003-patch-options.cc.diff b/graphics/rawtherapee/files/0003-patch-options.cc.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3538a09d5f8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/rawtherapee/files/0003-patch-options.cc.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,38 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/options.cc       2023-05-28 06:24:25.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/options.cc       2024-04-26 12:49:58.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -587,9 +587,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    rtSettings.iccDirectory = "/library/ColorSync/Profiles/Displays";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    rtSettings.iccDirectory = "/Library/ColorSync/Profiles/Displays";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    rtSettings.iccDirectory = "/usr/share/color/icc";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    rtSettings.iccDirectory = "@PREFIX@/share/rawtherapee/color/icc";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //   rtSettings.viewingdevice = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //   rtSettings.viewingdevicegrey = 3;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2798,11 +2798,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        rtdir = Glib::build_filename(Glib::ustring(g_get_home_dir()), "/Library/Application Support/", Glib::ustring(CACHEFOLDERNAME), "/config/");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         rtdir = Glib::build_filename(Glib::ustring(g_get_user_config_dir()), Glib::ustring(CACHEFOLDERNAME));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2841,11 +2837,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef _WIN32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         cacheBaseDir = Glib::build_filename(rtdir, "cache");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cacheBaseDir = Glib::build_filename(Glib::ustring(g_get_home_dir()), "/Library/Application Support/", Glib::ustring(CACHEFOLDERNAME), "/cache/");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         cacheBaseDir = Glib::build_filename(Glib::ustring(g_get_user_cache_dir()), Glib::ustring(CACHEFOLDERNAME));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/rawtherapee/files/0004-Revert-breaking-commit-as-a-temporary-fix.patch b/graphics/rawtherapee/files/0004-Revert-breaking-commit-as-a-temporary-fix.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..5b9c328a02e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/rawtherapee/files/0004-Revert-breaking-commit-as-a-temporary-fix.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,499 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From bae6491f9adca83b6ca2ba22e1d4eee9df80d18a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 26 Apr 2024 22:04:35 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Revert breaking commit as a temporary fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Reverts https://github.com/Beep6581/RawTherapee/commit/8accebe4161c581c76dda4edee027b95ec109ea9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtengine/improcfun.cc         | 20 --------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtengine/improcfun.h          |  2 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtgui/cropwindow.cc           | 10 +++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtgui/histogrampanel.cc       | 52 ++++++++++-------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtgui/histogrampanel.h        |  8 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtgui/lockablecolorpicker.cc  | 23 ++--------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtgui/lockablecolorpicker.h   | 17 ++----------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtgui/navigator.cc            | 25 +++--------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtgui/navigator.h             |  4 +--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtgui/pointermotionlistener.h | 19 +------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 10 files changed, 36 insertions(+), 144 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtengine/improcfun.cc rtengine/improcfun.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2e02a352c..36b1d6544 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtengine/improcfun.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtengine/improcfun.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5723,11 +5723,6 @@ void ImProcFunctions::rgb2lab(const Imagefloat &src, LabImage &dst, const Glib::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void ImProcFunctions::rgb2lab(const Image8 &src, int x, int y, int w, int h, float L[], float a[], float b[], const procparams::ColorManagementParams &icm, bool consider_histogram_settings) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    rgb2lab(src, x, y, w, h, L, a, b, icm, consider_histogram_settings, multiThread);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void ImProcFunctions::rgb2lab(const Image8 &src, int x, int y, int w, int h, float L[], float a[], float b[], const procparams::ColorManagementParams &icm, bool consider_histogram_settings, bool multiThread)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Adapted from ImProcFunctions::lab2rgb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const int src_width = src.getWidth();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5840,21 +5835,6 @@ void ImProcFunctions::rgb2lab(const Image8 &src, int x, int y, int w, int h, flo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void ImProcFunctions::rgb2lab(std::uint8_t red, std::uint8_t green, std::uint8_t blue, float &L, float &a, float &b, const procparams::ColorManagementParams &icm, bool consider_histogram_settings)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    float l_channel[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    float a_channel[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    float b_channel[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    rtengine::Image8 buf(1, 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    buf.r(0, 0) = red;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    buf.g(0, 0) = green;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    buf.b(0, 0) = blue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ImProcFunctions::rgb2lab(buf, 0, 0, 1, 1, l_channel, a_channel, b_channel, icm, consider_histogram_settings, false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    L = l_channel[0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    a = a_channel[0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    b = b_channel[0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void ImProcFunctions::lab2rgb(const LabImage &src, Imagefloat &dst, const Glib::ustring &workingSpace)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(workingSpace);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtengine/improcfun.h rtengine/improcfun.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 19d8b0a03..0f23fefa9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtengine/improcfun.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtengine/improcfun.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -117,7 +117,6 @@ class ImProcFunctions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool multiThread;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void calcVignettingParams(int oW, int oH, const procparams::VignettingParams& vignetting, double &w2, double &h2, double& maxRadius, double &v, double &b, double &mul);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    static void rgb2lab(const Image8 &src, int x, int y, int w, int h, float L[], float a[], float b[], const procparams::ColorManagementParams &icm, bool consider_histogram_settings, bool multithread);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void transformLuminanceOnly(Imagefloat* original, Imagefloat* transformed, int cx, int cy, int oW, int oH, int fW, int fH);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void transformGeneral(bool highQuality, Imagefloat *original, Imagefloat *transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const LensCorrection *pLCPMap, bool useOriginalBuffer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -502,7 +501,6 @@ enum class BlurType {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Image8*     lab2rgb(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, bool consider_histogram_settings = true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void rgb2lab(const Image8 &src, int x, int y, int w, int h, float L[], float a[], float b[], const procparams::ColorManagementParams &icm, bool consider_histogram_settings = true) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    static void rgb2lab(std::uint8_t red, std::uint8_t green, std::uint8_t blue, float &L, float &a, float &b, const procparams::ColorManagementParams &icm, bool consider_histogram_settings = true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Imagefloat*    lab2rgbOut(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // CieImage *ciec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void workingtrc(const Imagefloat* src, Imagefloat* dst, int cw, int ch, int mul, Glib::ustring &profile, double gampos, double slpos, int &illum, int prim, cmsHTRANSFORM &transform, bool normalizeIn = true, bool normalizeOut = true, bool keepTransForm = false) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtgui/cropwindow.cc rtgui/cropwindow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ef2b7a52b..883928a21 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/cropwindow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/cropwindow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -403,7 +403,7 @@ void CropWindow::buttonPress (int button, int type, int bstate, int x, int y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             // Add a new Color Picker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             rtengine::Coord imgPos;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             screenCoordToImage(x, y, imgPos.x, imgPos.y);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                            LockableColorPicker *newPicker = new LockableColorPicker(this, cropHandler.colorParams.get());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            LockableColorPicker *newPicker = new LockableColorPicker(this, &cropHandler.colorParams->outputProfile, &cropHandler.colorParams->workingProfile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             colorPickers.push_back(newPicker);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             hoveredPicker = newPicker;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             updateHoveredPicker(&imgPos);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1095,10 +1095,10 @@ void CropWindow::pointerMoved (int bstate, int x, int y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 printf("Using \"%s\" output\n", outputProfile.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if(outputProfile==options.rtSettings.srgb) printf("OK SRGB2");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pmlistener->pointerMoved (false, *cropHandler.colorParams, mx, my, -1, -1, -1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            pmlistener->pointerMoved (false, cropHandler.colorParams->outputProfile, cropHandler.colorParams->workingProfile, mx, my, -1, -1, -1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (pmhlistener) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                pmhlistener->pointerMoved (false, *cropHandler.colorParams, mx, my, -1, -1, -1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pmhlistener->pointerMoved (false, cropHandler.colorParams->outputProfile, cropHandler.colorParams->workingProfile, mx, my, -1, -1, -1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1145,11 +1145,11 @@ void CropWindow::pointerMoved (int bstate, int x, int y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 // Updates the Navigator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 // TODO: possible double color conversion if rval, gval, bval come from cropHandler.cropPixbuftrue ? see issue #4583
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                pmlistener->pointerMoved (true, *cropHandler.colorParams, mx, my, rval, gval, bval, isRaw);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pmlistener->pointerMoved (true, cropHandler.colorParams->outputProfile, cropHandler.colorParams->workingProfile, mx, my, rval, gval, bval, isRaw);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (pmhlistener) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     // Updates the HistogramRGBArea
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    pmhlistener->pointerMoved (true, *cropHandler.colorParams, mx, my, rval, gval, bval);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    pmhlistener->pointerMoved (true, cropHandler.colorParams->outputProfile, cropHandler.colorParams->workingProfile, mx, my, rval, gval, bval);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtgui/histogrampanel.cc rtgui/histogrampanel.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b804218f5..86305adb9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/histogrampanel.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/histogrampanel.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,11 +22,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "options.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstring>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cmath>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "rtimage.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "../rtengine/array2D.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "../rtengine/color.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "../rtengine/improcfun.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "../rtengine/LUT.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "rtimage.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "../rtengine/color.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace rtengine;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,20 +34,12 @@ constexpr float HistogramArea::MIN_BRIGHT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using ScopeType = Options::ScopeType;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-const rtengine::procparams::ColorManagementParams DEFAULT_CMP;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // HistogramPanel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HistogramPanel::HistogramPanel () :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pointer_moved_delayed_call(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        [this](bool validPos, const rtengine::procparams::ColorManagementParams *cmp, int r, int g, int b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        [this](bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int r, int g, int b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             bool update_hist_area;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -61,9 +52,9 @@ HistogramPanel::HistogramPanel () :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 // do something to show vertical bars
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (histogramRGBArea) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    histogramRGBArea->updateBackBuffer(r, g, b, cmp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    histogramRGBArea->updateBackBuffer(r, g, b, profile, profileW);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                update_hist_area = histogramArea->updatePointer(r, g, b, cmp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                update_hist_area = histogramArea->updatePointer(r, g, b, profile, profileW);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (histogramRGBArea) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 histogramRGBArea->queue_draw();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -632,9 +623,9 @@ void HistogramPanel::setHistRGBInvalid ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     histogramRGBArea->queue_draw ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void HistogramPanel::pointerMoved(bool validPos, const rtengine::procparams::ColorManagementParams &cmp, int x, int y, int r, int g, int b, bool isRaw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void HistogramPanel::pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    pointer_moved_delayed_call(validPos, &cmp, r, g, b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    pointer_moved_delayed_call(validPos, profile, profileW, r, g, b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -806,7 +797,7 @@ void HistogramRGBArea::setShow(bool show)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     showMode = show;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void HistogramRGBArea::updateBackBuffer(int r, int g, int b, const rtengine::procparams::ColorManagementParams *cmp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustring &profile, const Glib::ustring &profileW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!get_realized () || !showMode || !(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         options.histogramScopeType == ScopeType::HISTOGRAM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -865,25 +856,19 @@ void HistogramRGBArea::updateBackBuffer(int r, int g, int b, const rtengine::pro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     || options.histogramScopeType == ScopeType::WAVEFORM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 float Lab_L, Lab_a, Lab_b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                ImProcFunctions::rgb2lab(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    static_cast<std::uint8_t>(r),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    static_cast<std::uint8_t>(g),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    static_cast<std::uint8_t>(b),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    Lab_L, Lab_a, Lab_b,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    cmp != nullptr ? *cmp : DEFAULT_CMP,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                rtengine::Color::rgb2lab01(profile, profileW, r / 255.f, g / 255.f, b / 255.f, Lab_L, Lab_a, Lab_b, options.rtSettings.HistogramWorking);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (needLuma) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     // Luma
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     cc->set_source_rgb(1.0, 1.0, 1.0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    drawBar(cc, Lab_L, 32768., winw, winh, s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    drawBar(cc, Lab_L, 100.0, winw, winh, s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (needChroma && options.histogramScopeType == ScopeType::HISTOGRAM) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     // Chroma
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    double chromaval = sqrt(Lab_a * Lab_a + Lab_b * Lab_b) / (255. * 188);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    double chromaval = sqrt(Lab_a * Lab_a + Lab_b * Lab_b) / 1.8;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     cc->set_source_rgb(0.9, 0.9, 0.0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    drawBar(cc, chromaval, 1.0, winw, winh, s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    drawBar(cc, chromaval, 100.0, winw, winh, s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1458,7 +1443,7 @@ void HistogramArea::updateBackBuffer ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     setDirty(false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-bool HistogramArea::updatePointer(int r, int g, int b, const rtengine::procparams::ColorManagementParams *cmp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool HistogramArea::updatePointer(int r, int g, int b, const Glib::ustring &profile, const Glib::ustring &profileW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!needPointer || !(scopeType == ScopeType::VECTORSCOPE_HC || scopeType == ScopeType::VECTORSCOPE_HS)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1471,16 +1456,7 @@ bool HistogramArea::updatePointer(int r, int g, int b, const rtengine::procparam
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pointer_red = r;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pointer_green = g;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pointer_blue = b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ImProcFunctions::rgb2lab(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        static_cast<std::uint8_t>(r),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        static_cast<std::uint8_t>(g),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        static_cast<std::uint8_t>(b),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        L, pointer_a, pointer_b,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cmp != nullptr ? *cmp : DEFAULT_CMP,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    L /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    pointer_a /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    pointer_b /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Color::rgb2lab01(profile, profileW, r / 255.f, g / 255.f, b / 255.f, L, pointer_a, pointer_b, options.rtSettings.HistogramWorking);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     updateBackBuffer();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtgui/histogrampanel.h rtgui/histogrampanel.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7f165bb15..26b744546 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/histogrampanel.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/histogrampanel.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,7 +99,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     HistogramRGBArea();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ~HistogramRGBArea() override;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    void updateBackBuffer(int r, int g, int b, const rtengine::procparams::ColorManagementParams *cmp = nullptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void updateBackBuffer (int r, int g, int b, const Glib::ustring &profile = "", const Glib::ustring &profileW = "");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool getShow ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void setShow(bool show);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void setParent (Gtk::Grid* p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -206,7 +206,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void updateBackBuffer ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /// Update pointer values. Returns true if widget needs redrawing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool updatePointer(int r, int g, int b, const rtengine::procparams::ColorManagementParams *cmp = nullptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool updatePointer(int r, int g, int b, const Glib::ustring &profile = "", const Glib::ustring &profileW = "");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void update(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const LUTu& histRed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const LUTu& histGreen,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -260,7 +260,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class HistogramPanel final : public Gtk::Grid, public PointerMotionListener, public DrawModeListener, public rtengine::NonCopyable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    DelayedCall<bool, const rtengine::procparams::ColorManagementParams *, int, int, int> pointer_moved_delayed_call;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    DelayedCall<bool, Glib::ustring, Glib::ustring, int, int, int> pointer_moved_delayed_call;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -343,7 +343,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         histogramArea->update(histRed, histGreen, histBlue, histLuma, histChroma, histRedRaw, histGreenRaw, histBlueRaw, vectorscopeScale, vectorscopeHC, vectorscopeHS, waveformScale, waveformRed, waveformGreen, waveformBlue, waveformLuma);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // pointermotionlistener interface
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    void pointerMoved (bool validPos, const rtengine::procparams::ColorManagementParams &cmp, int x, int y, int r, int g, int b, bool isRaw = false) override;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw = false) override;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // TODO should be protected
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void setHistRGBInvalid ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtgui/lockablecolorpicker.cc rtgui/lockablecolorpicker.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c87239b9c..0a08bb945 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/lockablecolorpicker.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/lockablecolorpicker.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,23 +20,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "lockablecolorpicker.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "options.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "../rtengine/color.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "../rtengine/improcfun.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "../rtengine/rt_math.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "../rtengine/utils.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "imagearea.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "multilangmgr.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "navigator.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-const rtengine::procparams::ColorManagementParams DEFAULT_CMP;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LockableColorPicker::LockableColorPicker (CropWindow* cropWindow, rtengine::procparams::ColorManagementParams *color_management_params)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LockableColorPicker::LockableColorPicker (CropWindow* cropWindow, Glib::ustring *oProfile, Glib::ustring *wProfile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ : cropWindow(cropWindow), displayedValues(ColorPickerType::RGB), position(0, 0), size(Size::S15),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  color_management_params(color_management_params), validity(Validity::OUTSIDE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  outputProfile(oProfile), workingProfile(wProfile), validity(Validity::OUTSIDE),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   r(0.f), g(0.f), b(0.f), rpreview(0.f), gpreview(0.f), bpreview(0.f), hue(0.f), sat(0.f), val(0.f), L(0.f), a(0.f), bb(0.f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -285,16 +277,7 @@ void LockableColorPicker::setRGB (const float R, const float G, const float B, c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bpreview = previewB;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rtengine::Color::rgb2hsv01(r, g, b, hue, sat, val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    rtengine::ImProcFunctions::rgb2lab(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        static_cast<std::uint8_t>(255 * r),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        static_cast<std::uint8_t>(255 * g),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        static_cast<std::uint8_t>(255 * b),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        L, a, bb,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        color_management_params != nullptr ? *color_management_params : DEFAULT_CMP,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    L /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    a /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bb /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    rtengine::Color::rgb2lab01(*outputProfile, *workingProfile, r, g, b, L, a, bb, options.rtSettings.HistogramWorking);  // TODO: Really sure this function works?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (validity != Validity::OUTSIDE) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         setDirty(true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtgui/lockablecolorpicker.h rtgui/lockablecolorpicker.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3de6256e9..baeea41ef 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/lockablecolorpicker.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/lockablecolorpicker.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,18 +24,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class CropWindow;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace rtengine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace procparams
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-struct ColorManagementParams;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class LockablePickerToolListener
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,7 +60,8 @@ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rtengine::Coord position;  // Coordinate in image space
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rtengine::Coord anchorOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Size size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    rtengine::procparams::ColorManagementParams *color_management_params;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Glib::ustring *outputProfile;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Glib::ustring *workingProfile;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Validity validity;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     float r, g, b;  // red green blue in [0;1] range
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     float rpreview, gpreview, bpreview;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,7 +72,7 @@ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    LockableColorPicker (CropWindow* cropWindow, rtengine::procparams::ColorManagementParams *color_management_params);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    LockableColorPicker (CropWindow* cropWindow, Glib::ustring *oProfile, Glib::ustring *wProfile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void draw (const Cairo::RefPtr<Cairo::Context> &cr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtgui/navigator.cc rtgui/navigator.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a02e0aff8..5e5ba59f2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/navigator.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/navigator.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,26 +21,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "previewwindow.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "toolpanel.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "../rtengine/color.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "../rtengine/improcfun.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "../rtengine/rt_math.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "options.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace rtengine;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-const rtengine::procparams::ColorManagementParams DEFAULT_CMP;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Navigator::Navigator() :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pointer_moved_delayed_call(50, 100),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     currentRGBUnit(options.navRGBUnit),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     currentHSVUnit(options.navHSVUnit)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pointer_moved_delayed_call.setFunction(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        [this](bool validPos, const rtengine::procparams::ColorManagementParams *cmp, int x, int y, int r, int g, int b, bool isRaw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        [this](bool validPos, Glib::ustring profile, Glib::ustring profileW, int x, int y, int r, int g, int b, bool isRaw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (!validPos) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 setInvalid (x, y);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,16 +61,7 @@ Navigator::Navigator() :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     S->set_text (s2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     V->set_text (s3);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    ImProcFunctions::rgb2lab(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        static_cast<std::uint8_t>(r),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        static_cast<std::uint8_t>(g),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        static_cast<std::uint8_t>(b),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        LAB_l, LAB_a, LAB_b,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        cmp != nullptr ? *cmp : DEFAULT_CMP,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    LAB_l /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    LAB_a /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    LAB_b /= 327.68f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    Color::rgb2lab01(profile, profileW, r / 255.f, g / 255.f, b / 255.f, LAB_l, LAB_a, LAB_b, options.rtSettings.HistogramWorking);  // TODO: Really sure this function works?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     getLABText (LAB_l, LAB_a, LAB_b, s1, s2, s3);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     LAB_L->set_text (s1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     LAB_A->set_text (s2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -345,9 +328,9 @@ void Navigator::getLABText (float l, float a, float b, Glib::ustring &sL, Glib::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // if !validPos then x/y contain the full image size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void Navigator::pointerMoved (bool validPos, const rtengine::procparams::ColorManagementParams &cmp, int x, int y, int r, int g, int b, bool isRaw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void Navigator::pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    pointer_moved_delayed_call(validPos, &cmp, x, y, r, g, b, isRaw);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    pointer_moved_delayed_call(validPos, profile, profileW, x, y, r, g, b, isRaw);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Navigator::cycleUnitsRGB (GdkEventButton *event) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtgui/navigator.h rtgui/navigator.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c16bf7ac7..4c2a3fd32 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/navigator.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/navigator.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,7 +34,7 @@ class Navigator final :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     typedef const double (*TMatrix)[3];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    DelayedCall<bool, const rtengine::procparams::ColorManagementParams *, int, int, int, int, int, bool> pointer_moved_delayed_call;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    DelayedCall<bool, Glib::ustring, Glib::ustring, int, int, int, int, int, bool> pointer_moved_delayed_call;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Options::NavigatorUnit currentRGBUnit;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Options::NavigatorUnit currentHSVUnit;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -61,7 +61,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // pointermotionlistener interface
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     //  void pointerMoved (bool validPos, int x, int y, int r, int g, int b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    void pointerMoved(bool validPos, const rtengine::procparams::ColorManagementParams &cmp, int x, int y, int r, int g, int b, bool raw = false) override;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool raw = false) override;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void setInvalid (int fullWidth = -1, int fullHeight = -1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB, bool isRaw = false) override;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rtgui/pointermotionlistener.h rtgui/pointermotionlistener.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2f19ae0b9..26ca994b0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rtgui/pointermotionlistener.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rtgui/pointermotionlistener.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,23 +18,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma once
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <glibmm/ustring.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <sigc++/sigc++.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace rtengine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-namespace procparams
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-struct ColorManagementParams;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class PointerMotionListener
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -43,7 +26,7 @@ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual ~PointerMotionListener() = default;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    virtual void pointerMoved(bool validPos, const rtengine::procparams::ColorManagementParams &cmp, int x, int y, int r, int g, int b, bool isRaw = false) = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    virtual void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw = false) = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual void getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB, bool isRaw = false) { sR = "--"; sG = "--"; sB = "--"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual void getHSVText (float h, float s, float v, Glib::ustring &sH, Glib::ustring &sS, Glib::ustring &sV) { sH = "--"; sS = "--"; sV = "--"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual void getLABText (float l, float a, float b, Glib::ustring &sL, Glib::ustring &sA, Glib::ustring &sB) { sL = "--"; sA = "--"; sB = "--"; }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/rawtherapee/files/0003-Fix-PowerPC-processor-target.patch b/graphics/rawtherapee/files/0005-Fix-PowerPC-processor-target.patch
</span>similarity index 100%
rename from graphics/rawtherapee/files/0003-Fix-PowerPC-processor-target.patch
rename to graphics/rawtherapee/files/0005-Fix-PowerPC-processor-target.patch
</pre><pre style='margin:0'>

</pre>