[Libreoffice-commits] core.git: 2 commits - vcl/source

Tomaž Vajngerl (via logerrit) logerrit at kemper.freedesktop.org
Mon Dec 30 13:31:31 UTC 2019


 vcl/source/gdi/pdfwriter_impl.cxx |   36 +++++-----
 vcl/source/gdi/pdfwriter_impl.hxx |  128 +++++++++++++++++++-------------------
 2 files changed, 84 insertions(+), 80 deletions(-)

New commits:
commit 166390fdf1a09329b9b218fa7e5b8a142f87e728
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Mon Dec 30 09:45:32 2019 +0100
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Mon Dec 30 14:31:09 2019 +0100

    pdf: move PDFPage out of PDFWriterImpl into vcl::pdf namespace
    
    Change-Id: Ia3a092d53b8c3cbbbbad785222868c5c259419c2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85993
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 4c02c41717af..7cb77f2f60c4 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -566,7 +566,7 @@ public:
     void translate( double tx, double ty );
     void invert();
 
-    void append( PDFWriterImpl::PDFPage const & rPage, OStringBuffer& rBuffer );
+    void append( PDFPage const & rPage, OStringBuffer& rBuffer );
 
     Point transform( const Point& rPoint ) const;
 };
@@ -670,7 +670,7 @@ void Matrix3::invert()
     set( fn );
 }
 
-void Matrix3::append( PDFWriterImpl::PDFPage const & rPage, OStringBuffer& rBuffer )
+void Matrix3::append( PDFPage const & rPage, OStringBuffer& rBuffer )
 {
     appendDouble( f[0], rBuffer );
     rBuffer.append( ' ' );
@@ -683,7 +683,7 @@ void Matrix3::append( PDFWriterImpl::PDFPage const & rPage, OStringBuffer& rBuff
     rPage.appendPoint( Point( static_cast<long>(f[4]), static_cast<long>(f[5]) ), rBuffer );
 }
 
-PDFWriterImpl::PDFPage::PDFPage( PDFWriterImpl* pWriter, double nPageWidth, double nPageHeight, PDFWriter::Orientation eOrientation )
+PDFPage::PDFPage( PDFWriterImpl* pWriter, double nPageWidth, double nPageHeight, PDFWriter::Orientation eOrientation )
         :
         m_pWriter( pWriter ),
         m_nPageWidth( nPageWidth ),
@@ -699,7 +699,7 @@ PDFWriterImpl::PDFPage::PDFPage( PDFWriterImpl* pWriter, double nPageWidth, doub
     m_nPageObject = m_pWriter->createObject();
 }
 
-void PDFWriterImpl::PDFPage::beginStream()
+void PDFPage::beginStream()
 {
     if (g_bDebugDisableCompression)
     {
@@ -731,7 +731,7 @@ void PDFWriterImpl::PDFPage::beginStream()
     m_pWriter->checkAndEnableStreamEncryption( m_aStreamObjects.back() );
 }
 
-void PDFWriterImpl::PDFPage::endStream()
+void PDFPage::endStream()
 {
     if (!g_bDebugDisableCompression)
         m_pWriter->endCompression();
@@ -756,7 +756,7 @@ void PDFWriterImpl::PDFPage::endStream()
     m_pWriter->writeBuffer( aLine.getStr(), aLine.getLength() );
 }
 
-bool PDFWriterImpl::PDFPage::emit(sal_Int32 nParentObject )
+bool PDFPage::emit(sal_Int32 nParentObject )
 {
     // emit page object
     if( ! m_pWriter->updateObject( m_nPageObject ) )
@@ -917,7 +917,7 @@ static GEOMETRY lcl_convert( const MapMode& _rSource, const MapMode& _rDest, Out
 }
 }
 
-void PDFWriterImpl::PDFPage::appendPoint( const Point& rPoint, OStringBuffer& rBuffer ) const
+void PDFPage::appendPoint( const Point& rPoint, OStringBuffer& rBuffer ) const
 {
     Point aPoint( lcl_convert( m_pWriter->m_aGraphicsStack.front().m_aMapMode,
                                m_pWriter->m_aMapMode,
@@ -935,7 +935,7 @@ void PDFWriterImpl::PDFPage::appendPoint( const Point& rPoint, OStringBuffer& rB
     appendFixedInt( nValue, rBuffer );
 }
 
-void PDFWriterImpl::PDFPage::appendPixelPoint( const basegfx::B2DPoint& rPoint, OStringBuffer& rBuffer ) const
+void PDFPage::appendPixelPoint( const basegfx::B2DPoint& rPoint, OStringBuffer& rBuffer ) const
 {
     double fValue   = pixelToPoint(rPoint.getX());
 
@@ -945,7 +945,7 @@ void PDFWriterImpl::PDFPage::appendPixelPoint( const basegfx::B2DPoint& rPoint,
     appendDouble( fValue, rBuffer, nLog10Divisor );
 }
 
-void PDFWriterImpl::PDFPage::appendRect( const tools::Rectangle& rRect, OStringBuffer& rBuffer ) const
+void PDFPage::appendRect( const tools::Rectangle& rRect, OStringBuffer& rBuffer ) const
 {
     appendPoint( rRect.BottomLeft() + Point( 0, 1 ), rBuffer );
     rBuffer.append( ' ' );
@@ -955,7 +955,7 @@ void PDFWriterImpl::PDFPage::appendRect( const tools::Rectangle& rRect, OStringB
     rBuffer.append( " re" );
 }
 
-void PDFWriterImpl::PDFPage::convertRect( tools::Rectangle& rRect ) const
+void PDFPage::convertRect( tools::Rectangle& rRect ) const
 {
     Point aLL = lcl_convert( m_pWriter->m_aGraphicsStack.front().m_aMapMode,
                              m_pWriter->m_aMapMode,
@@ -972,7 +972,7 @@ void PDFWriterImpl::PDFPage::convertRect( tools::Rectangle& rRect ) const
     rRect.SetBottom( rRect.Top() + aSize.Height() );
 }
 
-void PDFWriterImpl::PDFPage::appendPolygon( const tools::Polygon& rPoly, OStringBuffer& rBuffer, bool bClose ) const
+void PDFPage::appendPolygon( const tools::Polygon& rPoly, OStringBuffer& rBuffer, bool bClose ) const
 {
     sal_uInt16 nPoints = rPoly.GetSize();
     /*
@@ -1017,7 +1017,7 @@ void PDFWriterImpl::PDFPage::appendPolygon( const tools::Polygon& rPoly, OString
     }
 }
 
-void PDFWriterImpl::PDFPage::appendPolygon( const basegfx::B2DPolygon& rPoly, OStringBuffer& rBuffer ) const
+void PDFPage::appendPolygon( const basegfx::B2DPolygon& rPoly, OStringBuffer& rBuffer ) const
 {
     basegfx::B2DPolygon aPoly( lcl_convert( m_pWriter->m_aGraphicsStack.front().m_aMapMode,
                                             m_pWriter->m_aMapMode,
@@ -1092,20 +1092,20 @@ void PDFWriterImpl::PDFPage::appendPolygon( const basegfx::B2DPolygon& rPoly, OS
     }
 }
 
-void PDFWriterImpl::PDFPage::appendPolyPolygon( const tools::PolyPolygon& rPolyPoly, OStringBuffer& rBuffer ) const
+void PDFPage::appendPolyPolygon( const tools::PolyPolygon& rPolyPoly, OStringBuffer& rBuffer ) const
 {
     sal_uInt16 nPolygons = rPolyPoly.Count();
     for( sal_uInt16 n = 0; n < nPolygons; n++ )
         appendPolygon( rPolyPoly[n], rBuffer );
 }
 
-void PDFWriterImpl::PDFPage::appendPolyPolygon( const basegfx::B2DPolyPolygon& rPolyPoly, OStringBuffer& rBuffer ) const
+void PDFPage::appendPolyPolygon( const basegfx::B2DPolyPolygon& rPolyPoly, OStringBuffer& rBuffer ) const
 {
     for(auto const& rPolygon : rPolyPoly)
         appendPolygon( rPolygon, rBuffer );
 }
 
-void PDFWriterImpl::PDFPage::appendMappedLength( sal_Int32 nLength, OStringBuffer& rBuffer, bool bVertical, sal_Int32* pOutLength ) const
+void PDFPage::appendMappedLength( sal_Int32 nLength, OStringBuffer& rBuffer, bool bVertical, sal_Int32* pOutLength ) const
 {
     sal_Int32 nValue = nLength;
     if ( nLength < 0 )
@@ -1124,7 +1124,7 @@ void PDFWriterImpl::PDFPage::appendMappedLength( sal_Int32 nLength, OStringBuffe
     appendFixedInt( nValue, rBuffer );
 }
 
-void PDFWriterImpl::PDFPage::appendMappedLength( double fLength, OStringBuffer& rBuffer, bool bVertical, sal_Int32 nPrecision ) const
+void PDFPage::appendMappedLength( double fLength, OStringBuffer& rBuffer, bool bVertical, sal_Int32 nPrecision ) const
 {
     Size aSize( lcl_convert( m_pWriter->m_aGraphicsStack.front().m_aMapMode,
                              m_pWriter->m_aMapMode,
@@ -1134,7 +1134,7 @@ void PDFWriterImpl::PDFPage::appendMappedLength( double fLength, OStringBuffer&
     appendDouble( fLength, rBuffer, nPrecision );
 }
 
-bool PDFWriterImpl::PDFPage::appendLineInfo( const LineInfo& rInfo, OStringBuffer& rBuffer ) const
+bool PDFPage::appendLineInfo( const LineInfo& rInfo, OStringBuffer& rBuffer ) const
 {
     if(LineStyle::Dash == rInfo.GetStyle() && rInfo.GetDashLen() != rInfo.GetDotLen())
     {
@@ -1203,7 +1203,7 @@ bool PDFWriterImpl::PDFPage::appendLineInfo( const LineInfo& rInfo, OStringBuffe
     return true;
 }
 
-void PDFWriterImpl::PDFPage::appendWaveLine( sal_Int32 nWidth, sal_Int32 nY, sal_Int32 nDelta, OStringBuffer& rBuffer ) const
+void PDFPage::appendWaveLine( sal_Int32 nWidth, sal_Int32 nY, sal_Int32 nDelta, OStringBuffer& rBuffer ) const
 {
     if( nWidth <= 0 )
         return;
diff --git a/vcl/source/gdi/pdfwriter_impl.hxx b/vcl/source/gdi/pdfwriter_impl.hxx
index 5cb0143d1969..d375d7842bd0 100644
--- a/vcl/source/gdi/pdfwriter_impl.hxx
+++ b/vcl/source/gdi/pdfwriter_impl.hxx
@@ -103,6 +103,65 @@ namespace pdf
 {
 constexpr sal_Int32 g_nInheritedPageWidth = 595;  // default A4 in inch/72
 constexpr sal_Int32 g_nInheritedPageHeight = 842; // default A4 in inch/72
+
+struct PDFPage
+{
+    VclPtr<PDFWriterImpl>             m_pWriter;
+    double const                      m_nPageWidth;           // in inch/72
+    double const                      m_nPageHeight;          // in inch/72
+    PDFWriter::Orientation const      m_eOrientation;
+    sal_Int32                   m_nPageObject;
+    std::vector<sal_Int32>      m_aStreamObjects;
+    sal_Int32                   m_nStreamLengthObject;
+    sal_uInt64                  m_nBeginStreamPos;
+    std::vector<sal_Int32>      m_aAnnotations;
+    std::vector<sal_Int32>      m_aMCIDParents;
+    PDFWriter::PageTransition   m_eTransition;
+    sal_uInt32                  m_nTransTime;
+
+    PDFPage( PDFWriterImpl* pWriter, double nPageWidth, double nPageHeight, PDFWriter::Orientation eOrientation );
+
+    void beginStream();
+    void endStream();
+    bool emit( sal_Int32 nParentPage );
+
+    // converts point from ref device coordinates to
+    // page coordinates and appends the point to the buffer
+    // if pOutPoint is set it will be updated to the emitted point
+    // (in PDF map mode, that is 10th of point)
+    void appendPoint( const Point& rPoint, OStringBuffer& rBuffer ) const;
+    // appends a B2DPoint without further transformation
+    void appendPixelPoint( const basegfx::B2DPoint& rPoint, OStringBuffer& rBuffer ) const;
+    // appends a rectangle
+    void appendRect( const tools::Rectangle& rRect, OStringBuffer& rBuffer ) const;
+    // converts a rectangle to 10th points page space
+    void convertRect( tools::Rectangle& rRect ) const;
+    // appends a polygon optionally closing it
+    void appendPolygon( const tools::Polygon& rPoly, OStringBuffer& rBuffer, bool bClose = true ) const;
+    // appends a polygon optionally closing it
+    void appendPolygon( const basegfx::B2DPolygon& rPoly, OStringBuffer& rBuffer ) const;
+    // appends a polypolygon optionally closing the subpaths
+    void appendPolyPolygon( const tools::PolyPolygon& rPolyPoly, OStringBuffer& rBuffer ) const;
+    // appends a polypolygon optionally closing the subpaths
+    void appendPolyPolygon( const basegfx::B2DPolyPolygon& rPolyPoly, OStringBuffer& rBuffer ) const;
+    // converts a length (either vertical or horizontal; this
+    // can be important if the source MapMode is not
+    // symmetrical) to page length and appends it to the buffer
+    // if pOutLength is set it will be updated to the emitted length
+    // (in PDF map mode, that is 10th of point)
+    void appendMappedLength( sal_Int32 nLength, OStringBuffer& rBuffer, bool bVertical = true, sal_Int32* pOutLength = nullptr ) const;
+    // the same for double values
+    void appendMappedLength( double fLength, OStringBuffer& rBuffer, bool bVertical = true, sal_Int32 nPrecision = 5 ) const;
+    // appends LineInfo
+    // returns false if too many dash array entry were created for
+    // the implementation limits of some PDF readers
+    bool appendLineInfo( const LineInfo& rInfo, OStringBuffer& rBuffer ) const;
+    // appends a horizontal waveline with vertical offset (helper for drawWaveLine)
+    void appendWaveLine( sal_Int32 nLength, sal_Int32 nYOffset, sal_Int32 nDelta, OStringBuffer& rBuffer ) const;
+
+    double getHeight() const { return m_nPageHeight ? m_nPageHeight : vcl::pdf::g_nInheritedPageHeight; }
+};
+
 }
 
 class PDFWriterImpl : public VirtualDevice
@@ -110,66 +169,7 @@ class PDFWriterImpl : public VirtualDevice
     friend class PDFStreamIf;
 
 public:
-
-    struct PDFPage
-    {
-        VclPtr<PDFWriterImpl>             m_pWriter;
-        double const                      m_nPageWidth;           // in inch/72
-        double const                      m_nPageHeight;          // in inch/72
-        PDFWriter::Orientation const      m_eOrientation;
-        sal_Int32                   m_nPageObject;
-        std::vector<sal_Int32>      m_aStreamObjects;
-        sal_Int32                   m_nStreamLengthObject;
-        sal_uInt64                  m_nBeginStreamPos;
-        std::vector<sal_Int32>      m_aAnnotations;
-        std::vector<sal_Int32>      m_aMCIDParents;
-        PDFWriter::PageTransition   m_eTransition;
-        sal_uInt32                  m_nTransTime;
-
-        PDFPage( PDFWriterImpl* pWriter, double nPageWidth, double nPageHeight, PDFWriter::Orientation eOrientation );
-
-        void beginStream();
-        void endStream();
-        bool emit( sal_Int32 nParentPage );
-
-        // converts point from ref device coordinates to
-        // page coordinates and appends the point to the buffer
-        // if pOutPoint is set it will be updated to the emitted point
-        // (in PDF map mode, that is 10th of point)
-        void appendPoint( const Point& rPoint, OStringBuffer& rBuffer ) const;
-        // appends a B2DPoint without further transformation
-        void appendPixelPoint( const basegfx::B2DPoint& rPoint, OStringBuffer& rBuffer ) const;
-        // appends a rectangle
-        void appendRect( const tools::Rectangle& rRect, OStringBuffer& rBuffer ) const;
-        // converts a rectangle to 10th points page space
-        void convertRect( tools::Rectangle& rRect ) const;
-        // appends a polygon optionally closing it
-        void appendPolygon( const tools::Polygon& rPoly, OStringBuffer& rBuffer, bool bClose = true ) const;
-        // appends a polygon optionally closing it
-        void appendPolygon( const basegfx::B2DPolygon& rPoly, OStringBuffer& rBuffer ) const;
-        // appends a polypolygon optionally closing the subpaths
-        void appendPolyPolygon( const tools::PolyPolygon& rPolyPoly, OStringBuffer& rBuffer ) const;
-        // appends a polypolygon optionally closing the subpaths
-        void appendPolyPolygon( const basegfx::B2DPolyPolygon& rPolyPoly, OStringBuffer& rBuffer ) const;
-        // converts a length (either vertical or horizontal; this
-        // can be important if the source MapMode is not
-        // symmetrical) to page length and appends it to the buffer
-        // if pOutLength is set it will be updated to the emitted length
-        // (in PDF map mode, that is 10th of point)
-        void appendMappedLength( sal_Int32 nLength, OStringBuffer& rBuffer, bool bVertical = true, sal_Int32* pOutLength = nullptr ) const;
-        // the same for double values
-        void appendMappedLength( double fLength, OStringBuffer& rBuffer, bool bVertical = true, sal_Int32 nPrecision = 5 ) const;
-        // appends LineInfo
-        // returns false if too many dash array entry were created for
-        // the implementation limits of some PDF readers
-        bool appendLineInfo( const LineInfo& rInfo, OStringBuffer& rBuffer ) const;
-        // appends a horizontal waveline with vertical offset (helper for drawWaveLine)
-        void appendWaveLine( sal_Int32 nLength, sal_Int32 nYOffset, sal_Int32 nDelta, OStringBuffer& rBuffer ) const;
-
-        double getHeight() const { return m_nPageHeight ? m_nPageHeight : vcl::pdf::g_nInheritedPageHeight; }
-    };
-
-    friend struct PDFPage;
+    friend struct vcl::pdf::PDFPage;
 
     /// Contains information to emit a reference XObject.
     struct ReferenceXObjectEmit
commit 92832bb85616393afdb062a69974983c9d6e0a13
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Mon Dec 30 09:35:42 2019 +0100
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Mon Dec 30 14:30:53 2019 +0100

    pdf: move g_nInheritedPage{Width,Height} consts from PDFWriterImpl
    
    g_nInheritedPageWidth and g_nInheritedPageHeight constants don't
    need to be inside PDFWriterImpl as they aren't necessary only used
    there. Move them out of class to vcl::pdf namespace.
    
    Change-Id: Ie6ef8c73cf0d52a0aa001bb3bab1ca709df8cab1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85992
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/vcl/source/gdi/pdfwriter_impl.hxx b/vcl/source/gdi/pdfwriter_impl.hxx
index 9651f98801a5..5cb0143d1969 100644
--- a/vcl/source/gdi/pdfwriter_impl.hxx
+++ b/vcl/source/gdi/pdfwriter_impl.hxx
@@ -99,6 +99,12 @@ namespace filter
 class PDFObjectElement;
 }
 
+namespace pdf
+{
+constexpr sal_Int32 g_nInheritedPageWidth = 595;  // default A4 in inch/72
+constexpr sal_Int32 g_nInheritedPageHeight = 842; // default A4 in inch/72
+}
+
 class PDFWriterImpl : public VirtualDevice
 {
     friend class PDFStreamIf;
@@ -160,7 +166,7 @@ public:
         // appends a horizontal waveline with vertical offset (helper for drawWaveLine)
         void appendWaveLine( sal_Int32 nLength, sal_Int32 nYOffset, sal_Int32 nDelta, OStringBuffer& rBuffer ) const;
 
-        double getHeight() const { return m_nPageHeight ? m_nPageHeight : PDFWriterImpl::g_nInheritedPageHeight; }
+        double getHeight() const { return m_nPageHeight ? m_nPageHeight : vcl::pdf::g_nInheritedPageHeight; }
     };
 
     friend struct PDFPage;
@@ -645,8 +651,6 @@ private:
     sal_Int32                           m_nNextFID;
     PDFFontCache                        m_aFontCache;
 
-    static constexpr sal_Int32          g_nInheritedPageWidth = 595;  // default A4 in inch/72
-    static constexpr sal_Int32          g_nInheritedPageHeight = 842; // default A4 in inch/72
     sal_Int32                           m_nCurrentPage;
 
     sal_Int32                           m_nCatalogObject;


More information about the Libreoffice-commits mailing list