sdext/qa/unit/pdfimport.cxx                   |    4 ++--
 sdext/source/pdfimport/inc/contentsink.hxx    |    3 ++-
 sdext/source/pdfimport/inc/pdfihelper.hxx     |   12 ++++++------
 sdext/source/pdfimport/inc/pdfiprocessor.hxx  |    3 ++-
 sdext/source/pdfimport/tree/pdfiprocessor.cxx |    6 ++++--
 sdext/source/pdfimport/wrapper/wrapper.cxx    |   10 +++++-----
 6 files changed, 21 insertions(+), 17 deletions(-)

New commits:
commit b4faa1775dfd90e781ac2f94a7ae1ada31b9d49f
Author:     Dr. David Alan Gilbert <[email protected]>
AuthorDate: Wed Aug 28 23:56:36 2024 +0100
Commit:     David Gilbert <[email protected]>
CommitDate: Fri Oct 18 00:50:20 2024 +0200

    tdf#148526 sdext,pdfimport: clipToStrokePath: Set line join
    
    Set the line join type from our GC.
    
    Change-Id: I8f64ae032930e46028cd49efefb05af06d4866d6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172926
    Tested-by: Jenkins
    Reviewed-by: David Gilbert <[email protected]>

diff --git a/sdext/source/pdfimport/tree/pdfiprocessor.cxx 
b/sdext/source/pdfimport/tree/pdfiprocessor.cxx
index 0d0fe733cd05..37b29a5aaa67 100644
--- a/sdext/source/pdfimport/tree/pdfiprocessor.cxx
+++ b/sdext/source/pdfimport/tree/pdfiprocessor.cxx
@@ -548,7 +548,8 @@ void PDFIProcessor::intersectClipToStroke(const 
uno::Reference< rendering::XPoly
     // thickness etc is set.  
PolyPolygonStrokePrimitive2D::create2DDecomposition does most
     // of the work.
     const basegfx::BColor aBlack(0.0, 0.0, 0.0);
-    drawinglayer::attribute::LineAttribute aLineAttribute(aBlack, 
rGC.LineWidth * nScale /*, aJoin */);
+    drawinglayer::attribute::LineAttribute aLineAttribute(aBlack, 
rGC.LineWidth * nScale,
+                                                          rGC.LineJoin);
     rtl::Reference<drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D> 
aStrokePrimitive(
         new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D(aNewClip, 
aLineAttribute));
     drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer;
commit 84cc3180c8d42eb8528840d68fe52055f884120b
Author:     Dr. David Alan Gilbert <[email protected]>
AuthorDate: Wed Aug 28 22:01:08 2024 +0100
Commit:     David Gilbert <[email protected]>
CommitDate: Fri Oct 18 00:50:06 2024 +0200

    tdf#148526 sdext,pdfimport: rendering::PathJoinType to B2DLineJoin
    
    Pdfimport is one of the few none render pieces of code to use
    css::rendering::PathJoinType, switch to using basegfx::B2DLineJoin
    instead.
    Use that type consistently instead of throwing in sal_Int8's with it.
    
    Change-Id: Ie1384a06558925c796ce6c83b458b4c150bcecc7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172925
    Tested-by: Jenkins
    Reviewed-by: David Gilbert <[email protected]>

diff --git a/sdext/qa/unit/pdfimport.cxx b/sdext/qa/unit/pdfimport.cxx
index ee3b8b494db2..9c9c49f138a6 100644
--- a/sdext/qa/unit/pdfimport.cxx
+++ b/sdext/qa/unit/pdfimport.cxx
@@ -170,7 +170,7 @@ namespace
             getCurrentContext().Flatness = nFlatness;
         }
 
-        virtual void setLineJoin(sal_Int8 nJoin) override
+        virtual void setLineJoin(basegfx::B2DLineJoin nJoin) override
         {
             getCurrentContext().LineJoin = nJoin;
         }
@@ -261,7 +261,7 @@ namespace
             CPPUNIT_ASSERT_EQUAL_MESSAGE( "Blend mode is normal",
                                     rendering::BlendMode::NORMAL, 
rContext.BlendMode );
             CPPUNIT_ASSERT_EQUAL_MESSAGE( "Join type is round",
-                                    rendering::PathJoinType::ROUND, 
rContext.LineJoin );
+                                    basegfx::B2DLineJoin::Round, 
rContext.LineJoin );
             CPPUNIT_ASSERT_EQUAL_MESSAGE( "Cap type is butt",
                                     rendering::PathCapType::BUTT, 
rContext.LineCap );
             CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "Line miter limit is 10",
diff --git a/sdext/source/pdfimport/inc/contentsink.hxx 
b/sdext/source/pdfimport/inc/contentsink.hxx
index d251aef623bc..3dafd7be628c 100644
--- a/sdext/source/pdfimport/inc/contentsink.hxx
+++ b/sdext/source/pdfimport/inc/contentsink.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SDEXT_SOURCE_PDFIMPORT_INC_CONTENTSINK_HXX
 #define INCLUDED_SDEXT_SOURCE_PDFIMPORT_INC_CONTENTSINK_HXX
 
+#include <basegfx/vector/b2enums.hxx>
 #include <com/sun/star/uno/Reference.hxx>
 #include <com/sun/star/uno/Sequence.hxx>
 #include <com/sun/star/rendering/ARGBColor.hpp>
@@ -117,7 +118,7 @@ namespace pdfi
         virtual void setTransformation( const css::geometry::AffineMatrix2D& 
rMatrix ) = 0;
         virtual void setLineDash( const css::uno::Sequence<double>& dashes,
                                   double                                       
  start ) = 0;
-        virtual void setLineJoin( sal_Int8 lineJoin ) = 0;
+        virtual void setLineJoin( basegfx::B2DLineJoin lineJoin ) = 0;
         virtual void setLineCap( sal_Int8 lineCap ) = 0;
         virtual void setMiterLimit(double) = 0;
         virtual void setLineWidth(double) = 0;
diff --git a/sdext/source/pdfimport/inc/pdfihelper.hxx 
b/sdext/source/pdfimport/inc/pdfihelper.hxx
index 1b6ba6b0ca04..a4414cd4809d 100644
--- a/sdext/source/pdfimport/inc/pdfihelper.hxx
+++ b/sdext/source/pdfimport/inc/pdfihelper.hxx
@@ -27,8 +27,8 @@
 #include <basegfx/matrix/b2dhommatrix.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/vector/b2enums.hxx>
 #include <com/sun/star/rendering/PathCapType.hpp>
-#include <com/sun/star/rendering/PathJoinType.hpp>
 
 #include <unordered_map>
 #include <vector>
@@ -98,7 +98,7 @@ namespace pdfi
     {
         css::rendering::ARGBColor     LineColor;
         css::rendering::ARGBColor     FillColor;
-        sal_Int8                                   LineJoin;
+        basegfx::B2DLineJoin                       LineJoin;
         sal_Int8                                   LineCap;
         sal_Int8                                   BlendMode;
         double                                     Flatness;
@@ -113,7 +113,7 @@ namespace pdfi
         GraphicsContext() :
             LineColor(),
             FillColor(),
-            LineJoin(0),
+            LineJoin(basegfx::B2DLineJoin::NONE),
             LineCap(0),
             BlendMode(0),
             Flatness(0.0),
@@ -154,11 +154,11 @@ namespace pdfi
             switch (LineJoin)
             {
             default:
-            case css::rendering::PathJoinType::MITER:
+            case basegfx::B2DLineJoin::Miter:
                 return u"miter"_ustr;
-            case css::rendering::PathJoinType::ROUND:
+            case basegfx::B2DLineJoin::Round:
                 return u"round"_ustr;
-            case css::rendering::PathJoinType::BEVEL:
+            case basegfx::B2DLineJoin::Bevel:
                 return u"bevel"_ustr;
             }
         }
diff --git a/sdext/source/pdfimport/inc/pdfiprocessor.hxx 
b/sdext/source/pdfimport/inc/pdfiprocessor.hxx
index 6db7d9d6eb46..93b54f5e8a13 100644
--- a/sdext/source/pdfimport/inc/pdfiprocessor.hxx
+++ b/sdext/source/pdfimport/inc/pdfiprocessor.hxx
@@ -20,6 +20,7 @@
 #ifndef INCLUDED_SDEXT_SOURCE_PDFIMPORT_INC_PDFIPROCESSOR_HXX
 #define INCLUDED_SDEXT_SOURCE_PDFIMPORT_INC_PDFIPROCESSOR_HXX
 
+#include <com/sun/star/drawing/LineJoint.hpp>
 #include <com/sun/star/uno/XComponentContext.hpp>
 #include <com/sun/star/task/XStatusIndicator.hpp>
 #include <com/sun/star/geometry/RealSize2D.hpp>
@@ -100,7 +101,7 @@ namespace pdfi
         virtual void setTransformation( const css::geometry::AffineMatrix2D& 
rMatrix ) override;
         virtual void setLineDash( const css::uno::Sequence<double>& dashes,
                                   double                                       
  start ) override;
-        virtual void setLineJoin(sal_Int8) override;
+        virtual void setLineJoin(basegfx::B2DLineJoin) override;
         virtual void setLineCap(sal_Int8) override;
         virtual void setMiterLimit(double) override;
         virtual void setLineWidth(double) override;
diff --git a/sdext/source/pdfimport/tree/pdfiprocessor.cxx 
b/sdext/source/pdfimport/tree/pdfiprocessor.cxx
index cb225560071f..0d0fe733cd05 100644
--- a/sdext/source/pdfimport/tree/pdfiprocessor.cxx
+++ b/sdext/source/pdfimport/tree/pdfiprocessor.cxx
@@ -35,6 +35,7 @@
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/polygon/b2dpolypolygoncutter.hxx>
 #include <basegfx/utils/canvastools.hxx>
+#include <basegfx/vector/b2enums.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
 #include <i18nutil/unicode.hxx>
 #include <o3tl/string_view.hxx>
@@ -114,7 +115,7 @@ void PDFIProcessor::setLineDash( const 
uno::Sequence<double>& dashes,
     comphelper::sequenceToContainer(rContext.DashArray,dashes);
 }
 
-void PDFIProcessor::setLineJoin(sal_Int8 nJoin)
+void PDFIProcessor::setLineJoin(basegfx::B2DLineJoin nJoin)
 {
     getCurrentContext().LineJoin = nJoin;
 }
diff --git a/sdext/source/pdfimport/wrapper/wrapper.cxx 
b/sdext/source/pdfimport/wrapper/wrapper.cxx
index 5f5fe296e947..ae9c9b3bf307 100644
--- a/sdext/source/pdfimport/wrapper/wrapper.cxx
+++ b/sdext/source/pdfimport/wrapper/wrapper.cxx
@@ -40,7 +40,6 @@
 #include <com/sun/star/io/XInputStream.hpp>
 #include <com/sun/star/uno/XComponentContext.hpp>
 #include <com/sun/star/rendering/PathCapType.hpp>
-#include <com/sun/star/rendering/PathJoinType.hpp>
 #include <com/sun/star/rendering/XPolyPolygon2D.hpp>
 #include <com/sun/star/geometry/Matrix2D.hpp>
 #include <com/sun/star/geometry/AffineMatrix2D.hpp>
@@ -52,6 +51,7 @@
 #include <basegfx/polygon/b2dpolypolygon.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/utils/unopolypolygon.hxx>
+#include <basegfx/vector/b2enums.hxx>
 
 #include <vcl/metric.hxx>
 #include <vcl/font.hxx>
@@ -431,13 +431,13 @@ void LineParser::readLineDash()
 
 void LineParser::readLineJoin()
 {
-    sal_Int8 nJoin(rendering::PathJoinType::MITER);
+    basegfx::B2DLineJoin nJoin(basegfx::B2DLineJoin::Miter);
     switch( readInt32() )
     {
         default:
-        case 0: nJoin = rendering::PathJoinType::MITER; break;
-        case 1: nJoin = rendering::PathJoinType::ROUND; break;
-        case 2: nJoin = rendering::PathJoinType::BEVEL; break;
+        case 0: nJoin = basegfx::B2DLineJoin::Miter; break;
+        case 1: nJoin = basegfx::B2DLineJoin::Round; break;
+        case 2: nJoin = basegfx::B2DLineJoin::Bevel; break;
     }
     m_parser.m_pSink->setLineJoin(nJoin);
 }

Reply via email to