Author: jghali
Date: Mon Apr 23 11:25:46 2018
New Revision: 22473

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22473
Log:
#15267: Colour model switch in the "Colours & Fills" dialogue doesn't work as 
expected

Modified:
    trunk/Scribus/scribus/sccolorengine.cpp
    trunk/Scribus/scribus/scribuscore.cpp
    trunk/Scribus/scribus/scribuscore.h
    trunk/Scribus/scribus/scribusdoc.cpp
    trunk/Scribus/scribus/scribusdoc.h

Modified: trunk/Scribus/scribus/sccolorengine.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22473&path=/trunk/Scribus/scribus/sccolorengine.cpp
==============================================================================
--- trunk/Scribus/scribus/sccolorengine.cpp     (original)
+++ trunk/Scribus/scribus/sccolorengine.cpp     Mon Apr 23 11:25:46 2018
@@ -632,7 +632,7 @@
        else if (color.getColorModel() == colorModelLab)
        {
                bool cmsUse = doc ? doc->HasCMS : false;
-               ScColorTransform trans  = doc ? doc->stdLabToRGBTrans : 
ScCore->defaultLabToRGBTrans;
+               ScColorTransform trans  = doc ? doc->stdLabToScreenTrans : 
ScCore->defaultLabToRGBTrans;
                if (cmsUse && trans)
                {
                        double inC[3];
@@ -715,7 +715,7 @@
        }
        else if (color.getColorModel() == colorModelLab)
        {
-               ScColorTransform trans  = doc ? doc->stdLabToRGBTrans : 
ScCore->defaultLabToRGBTrans;
+               ScColorTransform trans  = doc ? doc->stdLabToScreenTrans : 
ScCore->defaultLabToRGBTrans;
                double inC[3];
                inC[0] = 100 - (100 - color.m_L_val) * (level / 100.0);
                inC[1] = color.m_a_val * (level / 100.0);
@@ -826,7 +826,7 @@
                inC[1] = color.m_a_val * (level / 100.0);
                inC[2] = color.m_b_val * (level / 100.0);
                quint16 outC[3];
-               ScColorTransform trans  = doc ? doc->stdLabToRGBTrans : 
ScCore->defaultLabToRGBTrans;
+               ScColorTransform trans  = doc ? doc->stdLabToScreenTrans : 
ScCore->defaultLabToRGBTrans;
                ScColorTransform transProof   = doc ? doc->stdProofLab   : 
ScCore->defaultLabToRGBTrans;
                ScColorTransform transProofGC = doc ? doc->stdProofLabGC : 
ScCore->defaultLabToRGBTrans;
                if (cmsUse && doc && doc->SoftProofing)

Modified: trunk/Scribus/scribus/scribuscore.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22473&path=/trunk/Scribus/scribus/scribuscore.cpp
==============================================================================
--- trunk/Scribus/scribus/scribuscore.cpp       (original)
+++ trunk/Scribus/scribus/scribuscore.cpp       Mon Apr 23 11:25:46 2018
@@ -468,8 +468,9 @@
        defaultCMYKToScreenImageTrans = 
defaultEngine.createTransform(defaultCMYKProfile, Format_CMYK_8, 
defaultRGBProfile, Format_RGBA_8, intent, dcmsFlags);
        defaultRGBToCMYKTrans         = 
defaultEngine.createTransform(defaultRGBProfile, Format_RGB_16, 
defaultCMYKProfile, Format_CMYK_16, intent, dcmsFlags);
        defaultCMYKToRGBTrans         = 
defaultEngine.createTransform(defaultCMYKProfile, Format_CMYK_16, 
defaultRGBProfile, Format_RGB_16, intent, dcmsFlags);
-       defaultLabToRGBTrans           = 
defaultEngine.createTransform(defaultLabProfile, Format_Lab_Dbl, 
defaultRGBProfile, Format_RGB_16, Intent_Absolute_Colorimetric, dcmsFlags);
+       defaultLabToRGBTrans          = 
defaultEngine.createTransform(defaultLabProfile, Format_Lab_Dbl, 
defaultRGBProfile, Format_RGB_16, Intent_Absolute_Colorimetric, dcmsFlags);
        defaultLabToCMYKTrans         = 
defaultEngine.createTransform(defaultLabProfile, Format_Lab_Dbl, 
defaultCMYKProfile, Format_CMYK_16, Intent_Absolute_Colorimetric, dcmsFlags);
+       defaultLabToScreenTrans       = defaultLabToRGBTrans;
        if (!defaultRGBToScreenSolidTrans  || !defaultRGBToScreenImageTrans || 
                !defaultCMYKToScreenImageTrans || !defaultRGBToCMYKTrans || 
                !defaultCMYKToRGBTrans || !defaultLabToRGBTrans|| 
!defaultLabToCMYKTrans)
@@ -489,6 +490,7 @@
        defaultCMYKToRGBTrans = ScColorTransform();
        defaultLabToRGBTrans = ScColorTransform();
        defaultLabToCMYKTrans = ScColorTransform();
+       defaultLabToScreenTrans = ScColorTransform();
 }
 
 void ScribusCore::initCMS()

Modified: trunk/Scribus/scribus/scribuscore.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22473&path=/trunk/Scribus/scribus/scribuscore.h
==============================================================================
--- trunk/Scribus/scribus/scribuscore.h (original)
+++ trunk/Scribus/scribus/scribuscore.h Mon Apr 23 11:25:46 2018
@@ -123,6 +123,7 @@
        ScColorTransform defaultCMYKToRGBTrans;
        ScColorTransform defaultLabToRGBTrans;
        ScColorTransform defaultLabToCMYKTrans;
+       ScColorTransform defaultLabToScreenTrans;
        
 protected:
        void initCMS();

Modified: trunk/Scribus/scribus/scribusdoc.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22473&path=/trunk/Scribus/scribus/scribusdoc.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusdoc.cpp        (original)
+++ trunk/Scribus/scribus/scribusdoc.cpp        Mon Apr 23 11:25:46 2018
@@ -983,6 +983,7 @@
        stdProofImgCMYK       = ScCore->defaultCMYKToScreenImageTrans;
        stdLabToRGBTrans      = ScCore->defaultLabToRGBTrans;
        stdLabToCMYKTrans     = ScCore->defaultLabToCMYKTrans;
+       stdLabToScreenTrans   = ScCore->defaultLabToScreenTrans;
        stdProofLab           = ScCore->defaultLabToRGBTrans;
        stdProofLabGC         = ScCore->defaultLabToRGBTrans;
 }
@@ -1090,13 +1091,15 @@
                        m_docPrefsData.colorPrefs.DCMSset.ComponentsInput2 = 4;
        if (DocInputRGBProf.colorSpace() == ColorSpace_Cmy)
                        m_docPrefsData.colorPrefs.DCMSset.ComponentsInput2 = 3;
-       stdLabToRGBTrans   = 
colorEngine.createTransform(ScCore->defaultLabProfile, Format_Lab_Dbl, 
DocDisplayProf, Format_RGB_16, Intent_Absolute_Colorimetric, dcmsFlags);
-       stdLabToCMYKTrans = 
colorEngine.createTransform(ScCore->defaultLabProfile, Format_Lab_Dbl, 
DocPrinterProf, Format_CMYK_16, Intent_Absolute_Colorimetric, dcmsFlags);
+
+       stdLabToRGBTrans  = 
colorEngine.createTransform(ScCore->defaultLabProfile, Format_Lab_Dbl, 
DocInputRGBProf, Format_RGB_16, Intent_Absolute_Colorimetric, dcmsFlags);
+       stdLabToCMYKTrans = 
colorEngine.createTransform(ScCore->defaultLabProfile, Format_Lab_Dbl, 
DocInputCMYKProf, Format_CMYK_16, Intent_Absolute_Colorimetric, dcmsFlags);
+       stdLabToScreenTrans = 
colorEngine.createTransform(ScCore->defaultLabProfile, Format_Lab_Dbl, 
DocDisplayProf, Format_RGB_16, Intent_Absolute_Colorimetric, dcmsFlags);
 
        bool success = (stdTransRGBMon   && stdTransCMYKMon   && stdProofImg    
&& stdProofImgCMYK &&
                                        stdTransImg      && stdTransRGB       
&& stdTransCMYK   && stdProof        &&
                                        stdProofGC       && stdProofCMYK      
&& stdProofCMYKGC &&
-                                       stdLabToRGBTrans && stdLabToCMYKTrans 
&& stdProofLab    && stdProofLabGC);
+                                       stdLabToRGBTrans && stdLabToCMYKTrans 
&& stdLabToScreenTrans && stdProofLab && stdProofLabGC);
        if (!success)
        {
                CloseCMSProfiles();

Modified: trunk/Scribus/scribus/scribusdoc.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22473&path=/trunk/Scribus/scribus/scribusdoc.h
==============================================================================
--- trunk/Scribus/scribus/scribusdoc.h  (original)
+++ trunk/Scribus/scribus/scribusdoc.h  Mon Apr 23 11:25:46 2018
@@ -1324,6 +1324,7 @@
        ScColorTransform stdProofCMYKGC;
        ScColorTransform stdLabToRGBTrans;
        ScColorTransform stdLabToCMYKTrans;
+       ScColorTransform stdLabToScreenTrans;
        ScColorTransform stdProofLab;
        ScColorTransform stdProofLabGC;
        bool BlackPoint;


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to