[Libreoffice-commits] core.git: include/tools include/vcl starmath/inc sw/qa tools/qa vcl/source

Noel (via logerrit) logerrit at kemper.freedesktop.org
Mon Jan 18 10:44:36 UTC 2021


 include/tools/color.hxx                        |    2 -
 include/vcl/metaact.hxx                        |    5 ++
 starmath/inc/token.hxx                         |   13 ++++---
 sw/qa/extras/tiledrendering/tiledrendering.cxx |    8 ++--
 tools/qa/cppunit/test_color.cxx                |   44 ++++++++++++-------------
 vcl/source/gdi/metaact.cxx                     |   44 +++++++++++++++----------
 vcl/source/gdi/wall.cxx                        |    6 ++-
 7 files changed, 70 insertions(+), 52 deletions(-)

New commits:
commit 1e9255303db01786f403253a1487cee0af56525d
Author:     Noel <noel.grandin at collabora.co.uk>
AuthorDate: Mon Jan 18 10:02:20 2021 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Jan 18 11:44:00 2021 +0100

    make internals of ::Color private
    
    was made public in
        commit d487d6e082bc7ce652217578ffd37397a59cc3ca
        rework Color to have R,G,B,A public variables
    
    but it's best to keep them private since we're changing the internal
    representation - and there is surprisingly little that depends
    on accessing the internals anyhow.
    
    Change-Id: I234d80fb33105f7bf5b865fb7c8194d893b09878
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109508
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/tools/color.hxx b/include/tools/color.hxx
index 3226184ca117..209ed34169a8 100644
--- a/include/tools/color.hxx
+++ b/include/tools/color.hxx
@@ -48,8 +48,6 @@ enum ColorAlphaTag { ColorAlpha = 0 };
 
 class SAL_WARN_UNUSED TOOLS_DLLPUBLIC Color
 {
-    // data intentionally public; read the commit log!
-public:
     union
     {
         sal_uInt32 mValue;
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index ef36989df80f..5ed09a9c5315 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -93,8 +93,11 @@ public:
     */
     virtual bool        IsTransparent() const { return false; }
 
-public:
     static rtl::Reference<MetaAction> ReadMetaAction(SvStream& rIStm, ImplMetaReadData* pData);
+
+protected:
+    static void         ReadColor(SvStream& rIStm, ::Color& rColor);
+    static void         WriteColor(SvStream& rIStm, ::Color aColor);
 };
 
 class UNLESS_MERGELIBS(VCL_DLLPUBLIC) MetaPixelAction final : public MetaAction
diff --git a/starmath/inc/token.hxx b/starmath/inc/token.hxx
index cb485a531ac8..374e23876a9f 100644
--- a/starmath/inc/token.hxx
+++ b/starmath/inc/token.hxx
@@ -209,7 +209,10 @@ struct SmColorTokenTableEntry
         return colorname.compareToIgnoreAsciiCaseAscii(pIdent) == 0;
     }
 
-    bool operator==(sal_uInt32 colorcode) const { return colorcode == cColor.mValue; }
+    bool operator==(sal_uInt32 colorcode) const
+    {
+        return colorcode == static_cast<sal_uInt32>(cColor);
+    }
 
     bool operator==(Color colorcode) const { return colorcode == cColor; }
 
@@ -218,7 +221,7 @@ struct SmColorTokenTableEntry
         return colorname.compareToIgnoreAsciiCaseAscii(pIdent) == 0;
     }
 
-    bool equals(sal_uInt32 colorcode) const { return colorcode == cColor.mValue; }
+    bool equals(sal_uInt32 colorcode) const { return colorcode == static_cast<sal_uInt32>(cColor); }
 
     bool equals(Color colorcode) const { return colorcode == cColor; }
 };
@@ -283,7 +286,7 @@ struct SmToken
 
     void operator=(const SmColorTokenTableEntry& aTokenTableEntry)
     {
-        aText = OUString::number(aTokenTableEntry.cColor.mValue, 16);
+        aText = OUString::number(static_cast<sal_uInt32>(aTokenTableEntry.cColor), 16);
         eType = aTokenTableEntry.eType;
         cMathChar = MS_NULLCHAR;
         nGroup = TG::Color;
@@ -294,7 +297,7 @@ struct SmToken
 
     void operator=(const SmColorTokenTableEntry* aTokenTableEntry)
     {
-        aText = OUString::number(aTokenTableEntry->cColor.mValue, 16);
+        aText = OUString::number(static_cast<sal_uInt32>(aTokenTableEntry->cColor), 16);
         eType = aTokenTableEntry->eType;
         cMathChar = MS_NULLCHAR;
         nGroup = TG::Color;
@@ -305,7 +308,7 @@ struct SmToken
 
     void operator=(const std::unique_ptr<SmColorTokenTableEntry>& aTokenTableEntry)
     {
-        aText = OUString::number(aTokenTableEntry->cColor.mValue, 16);
+        aText = OUString::number(static_cast<sal_uInt32>(aTokenTableEntry->cColor), 16);
         eType = aTokenTableEntry->eType;
         cMathChar = MS_NULLCHAR;
         nGroup = TG::Color;
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 10d54fc91e2e..28edd8c5fb55 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -2419,9 +2419,9 @@ void SwTiledRenderingTest::testSemiTransparent()
     // Without the accompanying fix in place, this test would have failed with 'Expected greater or
     // equal than: 190; Actual: 159'. This means the semi-transparent gray rectangle was darker than
     // expected, as it was painted twice.
-    CPPUNIT_ASSERT_GREATEREQUAL(190, static_cast<int>(aColor.R));
-    CPPUNIT_ASSERT_GREATEREQUAL(190, static_cast<int>(aColor.G));
-    CPPUNIT_ASSERT_GREATEREQUAL(190, static_cast<int>(aColor.B));
+    CPPUNIT_ASSERT_GREATEREQUAL(190, static_cast<int>(aColor.GetRed()));
+    CPPUNIT_ASSERT_GREATEREQUAL(190, static_cast<int>(aColor.GetGreen()));
+    CPPUNIT_ASSERT_GREATEREQUAL(190, static_cast<int>(aColor.GetBlue()));
 }
 
 void SwTiledRenderingTest::testHighlightNumbering()
@@ -2543,7 +2543,7 @@ void SwTiledRenderingTest::testClipText()
     for (int i = 0; i < 150; i++)
     {
         Color aTopTextColor(pAccess->GetPixel(98, 98 + i));
-        if (aTopTextColor.R < 255)
+        if (aTopTextColor.GetRed() < 255)
         {
             bClipTop = false;
             break;
diff --git a/tools/qa/cppunit/test_color.cxx b/tools/qa/cppunit/test_color.cxx
index 28e2118dc99a..05616b8f64a2 100644
--- a/tools/qa/cppunit/test_color.cxx
+++ b/tools/qa/cppunit/test_color.cxx
@@ -39,41 +39,41 @@ public:
 void Test::testVariables()
 {
     Color aColor(0x44, 0x88, 0xAA);
-    CPPUNIT_ASSERT_EQUAL(int(0x00), int(aColor.A));
-    CPPUNIT_ASSERT_EQUAL(int(0x44), int(aColor.R));
-    CPPUNIT_ASSERT_EQUAL(int(0x88), int(aColor.G));
-    CPPUNIT_ASSERT_EQUAL(int(0xAA), int(aColor.B));
-    CPPUNIT_ASSERT_EQUAL(int(0x004488AA), int(aColor.mValue));
+    CPPUNIT_ASSERT_EQUAL(int(0x00), int(255 - aColor.GetAlpha()));
+    CPPUNIT_ASSERT_EQUAL(int(0x44), int(aColor.GetRed()));
+    CPPUNIT_ASSERT_EQUAL(int(0x88), int(aColor.GetGreen()));
+    CPPUNIT_ASSERT_EQUAL(int(0xAA), int(aColor.GetBlue()));
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x004488AA), sal_uInt32(aColor));
 
-    aColor.mValue = 0xAABBCCDD;
-    CPPUNIT_ASSERT_EQUAL(int(0xAA), int(aColor.A));
-    CPPUNIT_ASSERT_EQUAL(int(0xBB), int(aColor.R));
-    CPPUNIT_ASSERT_EQUAL(int(0xCC), int(aColor.G));
-    CPPUNIT_ASSERT_EQUAL(int(0xDD), int(aColor.B));
+    aColor = Color(ColorTransparency, 0xAABBCCDD);
+    CPPUNIT_ASSERT_EQUAL(int(0xAA), int(255 - aColor.GetAlpha()));
+    CPPUNIT_ASSERT_EQUAL(int(0xBB), int(aColor.GetRed()));
+    CPPUNIT_ASSERT_EQUAL(int(0xCC), int(aColor.GetGreen()));
+    CPPUNIT_ASSERT_EQUAL(int(0xDD), int(aColor.GetBlue()));
 
-    aColor.A = 0x11;
-    CPPUNIT_ASSERT_EQUAL(int(0x11BBCCDD), int(aColor.mValue));
+    aColor.SetAlpha(255 - 0x11);
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x11BBCCDD), sal_uInt32(aColor));
 
-    aColor.R = 0x22;
-    CPPUNIT_ASSERT_EQUAL(int(0x1122CCDD), int(aColor.mValue));
+    aColor.SetRed(0x22);
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x1122CCDD), sal_uInt32(aColor));
 
-    aColor.G = 0x33;
-    CPPUNIT_ASSERT_EQUAL(int(0x112233DD), int(aColor.mValue));
+    aColor.SetGreen(0x33);
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x112233DD), sal_uInt32(aColor));
 
-    aColor.B = 0x44;
-    CPPUNIT_ASSERT_EQUAL(int(0x11223344), int(aColor.mValue));
+    aColor.SetBlue(0x44);
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x11223344), sal_uInt32(aColor));
 
     aColor.SetAlpha(255 - 0x77);
-    CPPUNIT_ASSERT_EQUAL(int(0x77223344), int(aColor.mValue));
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x77223344), sal_uInt32(aColor));
 
     aColor.SetRed(0x88);
-    CPPUNIT_ASSERT_EQUAL(int(0x77883344), int(aColor.mValue));
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x77883344), sal_uInt32(aColor));
 
     aColor.SetGreen(0x99);
-    CPPUNIT_ASSERT_EQUAL(int(0x77889944), int(aColor.mValue));
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x77889944), sal_uInt32(aColor));
 
     aColor.SetBlue(0xAA);
-    CPPUNIT_ASSERT_EQUAL(int(0x778899AA), int(aColor.mValue));
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x778899AA), sal_uInt32(aColor));
 }
 
 void Test::test_asRGBColor()
diff --git a/vcl/source/gdi/metaact.cxx b/vcl/source/gdi/metaact.cxx
index 11100101f2eb..5ae914e44091 100644
--- a/vcl/source/gdi/metaact.cxx
+++ b/vcl/source/gdi/metaact.cxx
@@ -271,6 +271,18 @@ rtl::Reference<MetaAction> MetaAction::ReadMetaAction( SvStream& rIStm, ImplMeta
     return pAction;
 }
 
+void MetaAction::ReadColor(SvStream& rIStm, ::Color& rColor)
+{
+    sal_uInt32 nTmp;
+    rIStm.ReadUInt32(nTmp);
+    rColor = ::Color(ColorTransparency, nTmp);
+}
+
+void MetaAction::WriteColor(SvStream& rIStm, ::Color aColor)
+{
+    rIStm.WriteUInt32(static_cast<sal_uInt32>(aColor));
+}
+
 MetaPixelAction::MetaPixelAction() :
     MetaAction(MetaActionType::PIXEL)
 {}
@@ -310,7 +322,7 @@ void MetaPixelAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
     VersionCompatWrite aCompat(rOStm, 1);
     TypeSerializer aSerializer(rOStm);
     aSerializer.writePoint(maPt);
-    rOStm.WriteUInt32(maColor.mValue);
+    WriteColor(rOStm, maColor);
 }
 
 void MetaPixelAction::Read( SvStream& rIStm, ImplMetaReadData* )
@@ -318,7 +330,7 @@ void MetaPixelAction::Read( SvStream& rIStm, ImplMetaReadData* )
     VersionCompatRead aCompat(rIStm);
     TypeSerializer aSerializer(rIStm);
     aSerializer.readPoint(maPt);
-    rIStm.ReadUInt32(maColor.mValue);
+    ReadColor(rIStm, maColor);
 }
 
 MetaPointAction::MetaPointAction() :
@@ -1981,7 +1993,7 @@ void MetaMaskScalePartAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
         MetaAction::Write(rOStm, pData);
         VersionCompatWrite aCompat(rOStm, 1);
         WriteDIB(maBmp, rOStm, false, true);
-        rOStm.WriteUInt32(maColor.mValue);
+        WriteColor(rOStm, maColor);
         TypeSerializer aSerializer(rOStm);
         aSerializer.writePoint(maDstPt);
         aSerializer.writeSize(maDstSz);
@@ -1994,7 +2006,7 @@ void MetaMaskScalePartAction::Read( SvStream& rIStm, ImplMetaReadData* )
 {
     VersionCompatRead aCompat(rIStm);
     ReadDIB(maBmp, rIStm, true);
-    rIStm.ReadUInt32(maColor.mValue);
+    ReadColor(rIStm, maColor);
     TypeSerializer aSerializer(rIStm);
     aSerializer.readPoint(maDstPt);
     aSerializer.readSize(maDstSz);
@@ -2437,14 +2449,14 @@ void MetaLineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
 {
     MetaAction::Write(rOStm, pData);
     VersionCompatWrite aCompat(rOStm, 1);
-    rOStm.WriteUInt32(maColor.mValue);
+    WriteColor(rOStm, maColor);
     rOStm.WriteBool( mbSet );
 }
 
 void MetaLineColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
 {
     VersionCompatRead aCompat(rIStm);
-    rIStm.ReadUInt32(maColor.mValue);
+    ReadColor(rIStm, maColor);
     rIStm.ReadCharAsBool( mbSet );
 }
 
@@ -2479,14 +2491,14 @@ void MetaFillColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
 {
     MetaAction::Write(rOStm, pData);
     VersionCompatWrite aCompat(rOStm, 1);
-    rOStm.WriteUInt32(maColor.mValue);
+    WriteColor(rOStm, maColor);
     rOStm.WriteBool( mbSet );
 }
 
 void MetaFillColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
 {
     VersionCompatRead aCompat(rIStm);
-    rIStm.ReadUInt32(maColor.mValue);
+    ReadColor(rIStm, maColor);
     rIStm.ReadCharAsBool( mbSet );
 }
 
@@ -2516,13 +2528,13 @@ void MetaTextColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
 {
     MetaAction::Write(rOStm, pData);
     VersionCompatWrite aCompat(rOStm, 1);
-    rOStm.WriteUInt32(maColor.mValue);
+    WriteColor(rOStm, maColor);
 }
 
 void MetaTextColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
 {
     VersionCompatRead aCompat(rIStm);
-    rIStm.ReadUInt32(maColor.mValue);
+    ReadColor(rIStm, maColor);
 }
 
 MetaTextFillColorAction::MetaTextFillColorAction() :
@@ -2556,14 +2568,14 @@ void MetaTextFillColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
 {
     MetaAction::Write(rOStm, pData);
     VersionCompatWrite aCompat(rOStm, 1);
-    rOStm.WriteUInt32(maColor.mValue);
+    WriteColor(rOStm, maColor);
     rOStm.WriteBool( mbSet );
 }
 
 void MetaTextFillColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
 {
     VersionCompatRead aCompat(rIStm);
-    rIStm.ReadUInt32(maColor.mValue);
+    ReadColor(rIStm, maColor);
     rIStm.ReadCharAsBool( mbSet );
 }
 
@@ -2598,14 +2610,14 @@ void MetaTextLineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
 {
     MetaAction::Write(rOStm, pData);
     VersionCompatWrite aCompat(rOStm, 1);
-    rOStm.WriteUInt32(maColor.mValue);
+    WriteColor(rOStm, maColor);
     rOStm.WriteBool( mbSet );
 }
 
 void MetaTextLineColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
 {
     VersionCompatRead aCompat(rIStm);
-    rIStm.ReadUInt32(maColor.mValue);
+    ReadColor(rIStm, maColor);
     rIStm.ReadCharAsBool( mbSet );
 }
 
@@ -2640,14 +2652,14 @@ void MetaOverlineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
 {
     MetaAction::Write(rOStm, pData);
     VersionCompatWrite aCompat(rOStm, 1);
-    rOStm.WriteUInt32(maColor.mValue);
+    WriteColor(rOStm, maColor);
     rOStm.WriteBool( mbSet );
 }
 
 void MetaOverlineColorAction::Read( SvStream& rIStm, ImplMetaReadData* )
 {
     VersionCompatRead aCompat(rIStm);
-    rIStm.ReadUInt32(maColor.mValue);
+    ReadColor(rIStm, maColor);
     rIStm.ReadCharAsBool( mbSet );
 }
 
diff --git a/vcl/source/gdi/wall.cxx b/vcl/source/gdi/wall.cxx
index c6e07afa37ca..db2d0804d747 100644
--- a/vcl/source/gdi/wall.cxx
+++ b/vcl/source/gdi/wall.cxx
@@ -96,7 +96,9 @@ SvStream& ReadImplWallpaper( SvStream& rIStm, ImplWallpaper& rImplWallpaper )
         // version 3 (new color format)
         if( aCompat.GetVersion() >= 3 )
         {
-            rIStm.ReadUInt32(rImplWallpaper.maColor.mValue);
+            sal_uInt32 nTmp;
+            rIStm.ReadUInt32(nTmp);
+            rImplWallpaper.maColor = ::Color(ColorTransparency, nTmp);
         }
     }
 
@@ -134,7 +136,7 @@ SvStream& WriteImplWallpaper( SvStream& rOStm, const ImplWallpaper& rImplWallpap
         WriteDIBBitmapEx(*rImplWallpaper.mpBitmap, rOStm);
 
     // version 3 (new color format)
-    rOStm.WriteUInt32(rImplWallpaper.maColor.mValue);
+    rOStm.WriteUInt32(static_cast<sal_uInt32>(rImplWallpaper.maColor));
 
     return rOStm;
 }


More information about the Libreoffice-commits mailing list