[Libreoffice-commits] core.git: bin/find-unneeded-includes include/vcl vcl/source

Miklos Vajna (via logerrit) logerrit at kemper.freedesktop.org
Wed Jan 20 07:26:27 UTC 2021


 bin/find-unneeded-includes           |    2 
 include/vcl/filter/PDFiumLibrary.hxx |   53 ++++++++++--------------
 vcl/source/pdf/PDFiumLibrary.cxx     |   77 ++++++++++++++++++++++++-----------
 3 files changed, 78 insertions(+), 54 deletions(-)

New commits:
commit 53d4346968c82c8c998ed074aa72591b73f02814
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Tue Jan 19 21:05:46 2021 +0100
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Jan 20 08:25:50 2021 +0100

    pdfium: rework to eliminate FPDF_PAGEOBJECT from the public interface
    
    And fix bin/find-unneeded-includes to not report noise on
    PDFiumLibrary.cxx.
    
    Change-Id: I93337e49a5656349089bdb790876bebe8505082c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109656
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>

diff --git a/bin/find-unneeded-includes b/bin/find-unneeded-includes
index 90c4d89d8800..65f791101d90 100755
--- a/bin/find-unneeded-includes
+++ b/bin/find-unneeded-includes
@@ -118,6 +118,8 @@ def ignoreRemoval(include, toAdd, absFileName, moduleRules):
         # Works around a build breakage specific to the broken Android
         # toolchain.
         "android/compatibility.hxx",
+        # Removing this would change the meaning of '#if defined OSL_BIGENDIAN'.
+        "osl/endian.h",
     )
     if include in noRemove:
         return True
diff --git a/include/vcl/filter/PDFiumLibrary.hxx b/include/vcl/filter/PDFiumLibrary.hxx
index 79f91c6f5264..2774e1328ebf 100644
--- a/include/vcl/filter/PDFiumLibrary.hxx
+++ b/include/vcl/filter/PDFiumLibrary.hxx
@@ -122,40 +122,31 @@ public:
     virtual PDFSegmentType getType() const = 0;
 };
 
-class VCL_DLLPUBLIC PDFiumPageObject final
+class VCL_DLLPUBLIC PDFiumPageObject
 {
-private:
-    FPDF_PAGEOBJECT mpPageObject;
-
-    PDFiumPageObject(const PDFiumPageObject&) = delete;
-    PDFiumPageObject& operator=(const PDFiumPageObject&) = delete;
-
 public:
-    PDFiumPageObject(FPDF_PAGEOBJECT pPageObject);
-    ~PDFiumPageObject();
-
-    FPDF_PAGEOBJECT getPointer() { return mpPageObject; }
-
-    PDFPageObjectType getType();
-    OUString getText(std::unique_ptr<PDFiumTextPage> const& pTextPage);
-
-    int getFormObjectCount();
-    std::unique_ptr<PDFiumPageObject> getFormObject(int nIndex);
-
-    basegfx::B2DHomMatrix getMatrix();
-    basegfx::B2DRectangle getBounds();
-    double getFontSize();
-    OUString getFontName();
-    PDFTextRenderMode getTextRenderMode();
-    Color getFillColor();
-    Color getStrokeColor();
-    double getStrokeWidth();
+    virtual ~PDFiumPageObject() = default;
+
+    virtual PDFPageObjectType getType() = 0;
+    virtual OUString getText(std::unique_ptr<PDFiumTextPage> const& pTextPage) = 0;
+
+    virtual int getFormObjectCount() = 0;
+    virtual std::unique_ptr<PDFiumPageObject> getFormObject(int nIndex) = 0;
+
+    virtual basegfx::B2DHomMatrix getMatrix() = 0;
+    virtual basegfx::B2DRectangle getBounds() = 0;
+    virtual double getFontSize() = 0;
+    virtual OUString getFontName() = 0;
+    virtual PDFTextRenderMode getTextRenderMode() = 0;
+    virtual Color getFillColor() = 0;
+    virtual Color getStrokeColor() = 0;
+    virtual double getStrokeWidth() = 0;
     // Path
-    int getPathSegmentCount();
-    std::unique_ptr<PDFiumPathSegment> getPathSegment(int index);
-    Size getImageSize(PDFiumPage& rPage);
-    std::unique_ptr<PDFiumBitmap> getImageBitmap();
-    bool getDrawMode(PDFFillMode& eFillMode, bool& bStroke);
+    virtual int getPathSegmentCount() = 0;
+    virtual std::unique_ptr<PDFiumPathSegment> getPathSegment(int index) = 0;
+    virtual Size getImageSize(PDFiumPage& rPage) = 0;
+    virtual std::unique_ptr<PDFiumBitmap> getImageBitmap() = 0;
+    virtual bool getDrawMode(PDFFillMode& eFillMode, bool& bStroke) = 0;
 };
 
 class VCL_DLLPUBLIC PDFiumTextPage final
diff --git a/vcl/source/pdf/PDFiumLibrary.cxx b/vcl/source/pdf/PDFiumLibrary.cxx
index 42fb1370ce9f..886549031596 100644
--- a/vcl/source/pdf/PDFiumLibrary.cxx
+++ b/vcl/source/pdf/PDFiumLibrary.cxx
@@ -209,6 +209,39 @@ public:
     std::vector<basegfx::B2DPoint> getAttachmentPoints(size_t nIndex) override;
     std::vector<basegfx::B2DPoint> getLineGeometry() override;
 };
+
+class PDFiumPageObjectImpl final : public PDFiumPageObject
+{
+private:
+    FPDF_PAGEOBJECT mpPageObject;
+
+    PDFiumPageObjectImpl(const PDFiumPageObjectImpl&) = delete;
+    PDFiumPageObjectImpl& operator=(const PDFiumPageObjectImpl&) = delete;
+
+public:
+    PDFiumPageObjectImpl(FPDF_PAGEOBJECT pPageObject);
+
+    PDFPageObjectType getType() override;
+    OUString getText(std::unique_ptr<PDFiumTextPage> const& pTextPage) override;
+
+    int getFormObjectCount() override;
+    std::unique_ptr<PDFiumPageObject> getFormObject(int nIndex) override;
+
+    basegfx::B2DHomMatrix getMatrix() override;
+    basegfx::B2DRectangle getBounds() override;
+    double getFontSize() override;
+    OUString getFontName() override;
+    PDFTextRenderMode getTextRenderMode() override;
+    Color getFillColor() override;
+    Color getStrokeColor() override;
+    double getStrokeWidth() override;
+    // Path
+    int getPathSegmentCount() override;
+    std::unique_ptr<PDFiumPathSegment> getPathSegment(int index) override;
+    Size getImageSize(PDFiumPage& rPage) override;
+    std::unique_ptr<PDFiumBitmap> getImageBitmap() override;
+    bool getDrawMode(PDFFillMode& eFillMode, bool& bStroke) override;
+};
 }
 
 OUString convertPdfDateToISO8601(OUString const& rInput)
@@ -508,7 +541,7 @@ std::unique_ptr<PDFiumPageObject> PDFiumPage::getObject(int nIndex)
     FPDF_PAGEOBJECT pPageObject = FPDFPage_GetObject(mpPage, nIndex);
     if (pPageObject)
     {
-        pPDFiumPageObject = std::make_unique<PDFiumPageObject>(pPageObject);
+        pPDFiumPageObject = std::make_unique<PDFiumPageObjectImpl>(pPageObject);
     }
     return pPDFiumPageObject;
 }
@@ -552,14 +585,12 @@ bool PDFiumPage::hasLinks()
     return FPDFLink_Enumerate(mpPage, &nStartPos, &pLinkAnnot);
 }
 
-PDFiumPageObject::PDFiumPageObject(FPDF_PAGEOBJECT pPageObject)
+PDFiumPageObjectImpl::PDFiumPageObjectImpl(FPDF_PAGEOBJECT pPageObject)
     : mpPageObject(pPageObject)
 {
 }
 
-PDFiumPageObject::~PDFiumPageObject() {}
-
-OUString PDFiumPageObject::getText(std::unique_ptr<PDFiumTextPage> const& pTextPage)
+OUString PDFiumPageObjectImpl::getText(std::unique_ptr<PDFiumTextPage> const& pTextPage)
 {
     OUString sReturnText;
 
@@ -588,25 +619,25 @@ OUString PDFiumPageObject::getText(std::unique_ptr<PDFiumTextPage> const& pTextP
     return sReturnText;
 }
 
-PDFPageObjectType PDFiumPageObject::getType()
+PDFPageObjectType PDFiumPageObjectImpl::getType()
 {
     return static_cast<PDFPageObjectType>(FPDFPageObj_GetType(mpPageObject));
 }
 
-int PDFiumPageObject::getFormObjectCount() { return FPDFFormObj_CountObjects(mpPageObject); }
+int PDFiumPageObjectImpl::getFormObjectCount() { return FPDFFormObj_CountObjects(mpPageObject); }
 
-std::unique_ptr<PDFiumPageObject> PDFiumPageObject::getFormObject(int nIndex)
+std::unique_ptr<PDFiumPageObject> PDFiumPageObjectImpl::getFormObject(int nIndex)
 {
     std::unique_ptr<PDFiumPageObject> pPDFiumFormObject;
     FPDF_PAGEOBJECT pFormObject = FPDFFormObj_GetObject(mpPageObject, nIndex);
     if (pFormObject)
     {
-        pPDFiumFormObject = std::make_unique<PDFiumPageObject>(pFormObject);
+        pPDFiumFormObject = std::make_unique<PDFiumPageObjectImpl>(pFormObject);
     }
     return pPDFiumFormObject;
 }
 
-basegfx::B2DHomMatrix PDFiumPageObject::getMatrix()
+basegfx::B2DHomMatrix PDFiumPageObjectImpl::getMatrix()
 {
     basegfx::B2DHomMatrix aB2DMatrix;
     FS_MATRIX matrix;
@@ -616,7 +647,7 @@ basegfx::B2DHomMatrix PDFiumPageObject::getMatrix()
     return aB2DMatrix;
 }
 
-basegfx::B2DRectangle PDFiumPageObject::getBounds()
+basegfx::B2DRectangle PDFiumPageObjectImpl::getBounds()
 {
     basegfx::B2DRectangle aB2DRectangle;
 
@@ -631,9 +662,9 @@ basegfx::B2DRectangle PDFiumPageObject::getBounds()
     return aB2DRectangle;
 }
 
-double PDFiumPageObject::getFontSize() { return FPDFTextObj_GetFontSize(mpPageObject); }
+double PDFiumPageObjectImpl::getFontSize() { return FPDFTextObj_GetFontSize(mpPageObject); }
 
-OUString PDFiumPageObject::getFontName()
+OUString PDFiumPageObjectImpl::getFontName()
 {
     OUString sFontName;
     const int nFontName = 80 + 1;
@@ -646,12 +677,12 @@ OUString PDFiumPageObject::getFontName()
     return sFontName;
 }
 
-PDFTextRenderMode PDFiumPageObject::getTextRenderMode()
+PDFTextRenderMode PDFiumPageObjectImpl::getTextRenderMode()
 {
     return static_cast<PDFTextRenderMode>(FPDFTextObj_GetTextRenderMode(mpPageObject));
 }
 
-Color PDFiumPageObject::getFillColor()
+Color PDFiumPageObjectImpl::getFillColor()
 {
     Color aColor = COL_TRANSPARENT;
     unsigned int nR, nG, nB, nA;
@@ -662,7 +693,7 @@ Color PDFiumPageObject::getFillColor()
     return aColor;
 }
 
-Color PDFiumPageObject::getStrokeColor()
+Color PDFiumPageObjectImpl::getStrokeColor()
 {
     Color aColor = COL_TRANSPARENT;
     unsigned int nR, nG, nB, nA;
@@ -673,16 +704,16 @@ Color PDFiumPageObject::getStrokeColor()
     return aColor;
 }
 
-double PDFiumPageObject::getStrokeWidth()
+double PDFiumPageObjectImpl::getStrokeWidth()
 {
     float fWidth = 1;
     FPDFPageObj_GetStrokeWidth(mpPageObject, &fWidth);
     return fWidth;
 }
 
-int PDFiumPageObject::getPathSegmentCount() { return FPDFPath_CountSegments(mpPageObject); }
+int PDFiumPageObjectImpl::getPathSegmentCount() { return FPDFPath_CountSegments(mpPageObject); }
 
-std::unique_ptr<PDFiumPathSegment> PDFiumPageObject::getPathSegment(int index)
+std::unique_ptr<PDFiumPathSegment> PDFiumPageObjectImpl::getPathSegment(int index)
 {
     std::unique_ptr<PDFiumPathSegment> pPDFiumPathSegment;
     FPDF_PATHSEGMENT pPathSegment = FPDFPath_GetPathSegment(mpPageObject, index);
@@ -693,14 +724,14 @@ std::unique_ptr<PDFiumPathSegment> PDFiumPageObject::getPathSegment(int index)
     return pPDFiumPathSegment;
 }
 
-Size PDFiumPageObject::getImageSize(PDFiumPage& rPage)
+Size PDFiumPageObjectImpl::getImageSize(PDFiumPage& rPage)
 {
     FPDF_IMAGEOBJ_METADATA aMeta;
     FPDFImageObj_GetImageMetadata(mpPageObject, rPage.getPointer(), &aMeta);
     return Size(aMeta.width, aMeta.height);
 }
 
-std::unique_ptr<PDFiumBitmap> PDFiumPageObject::getImageBitmap()
+std::unique_ptr<PDFiumBitmap> PDFiumPageObjectImpl::getImageBitmap()
 {
     std::unique_ptr<PDFiumBitmap> pPDFiumBitmap;
     FPDF_BITMAP pBitmap = FPDFImageObj_GetBitmap(mpPageObject);
@@ -711,7 +742,7 @@ std::unique_ptr<PDFiumBitmap> PDFiumPageObject::getImageBitmap()
     return pPDFiumBitmap;
 }
 
-bool PDFiumPageObject::getDrawMode(PDFFillMode& rFillMode, bool& rStroke)
+bool PDFiumPageObjectImpl::getDrawMode(PDFFillMode& rFillMode, bool& rStroke)
 {
     auto nFillMode = static_cast<int>(rFillMode);
     auto bStroke = static_cast<FPDF_BOOL>(rStroke);
@@ -1046,7 +1077,7 @@ std::unique_ptr<PDFiumPageObject> PDFiumAnnotationImpl::getObject(int nIndex)
     FPDF_PAGEOBJECT pPageObject = FPDFAnnot_GetObject(mpAnnotation, nIndex);
     if (pPageObject)
     {
-        pPDFiumPageObject = std::make_unique<PDFiumPageObject>(pPageObject);
+        pPDFiumPageObject = std::make_unique<PDFiumPageObjectImpl>(pPageObject);
     }
     return pPDFiumPageObject;
 }


More information about the Libreoffice-commits mailing list