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

Chris Sherlock (via logerrit) logerrit at kemper.freedesktop.org
Sat Aug 28 12:11:25 UTC 2021


 include/vcl/outdev.hxx            |   10 ++++++----
 vcl/source/gdi/pdfwriter_impl.cxx |   14 ++++++++++++++
 vcl/source/gdi/pdfwriter_impl.hxx |    1 +
 vcl/source/outdev/font.cxx        |    9 ---------
 4 files changed, 21 insertions(+), 13 deletions(-)

New commits:
commit 9a58ec3f6f65da27e3b26e1173b6661b743e66a4
Author:     Chris Sherlock <chris.sherlock79 at gmail.com>
AuthorDate: Sun Mar 7 11:19:29 2021 +1100
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sat Aug 28 14:10:51 2021 +0200

    tdf#74702 vcl: remove GetOutDevType() from ImplNewFont()
    
    Change-Id: I59a14b0c392098761f9304708f4859f7e2381c14
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115469
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 011fc5445e0c..144a52308a3e 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -177,8 +177,6 @@ private:
     mutable VclPtr<OutputDevice>    mpNextGraphics;     ///< Next output device in list
     GDIMetaFile*                    mpMetaFile;
     mutable rtl::Reference<LogicalFontInstance> mpFontInstance;
-    mutable std::shared_ptr<ImplFontCache> mxFontCache;
-    mutable std::shared_ptr<PhysicalFontCollection> mxFontCollection;
     mutable std::unique_ptr<ImplDeviceFontList>     mpDeviceFontList;
     mutable std::unique_ptr<ImplDeviceFontSizeList> mpDeviceFontSizeList;
     std::vector<OutDevState>        maOutDevStateStack;
@@ -253,6 +251,10 @@ private:
     mutable bool                    mbRefPoint : 1;
     mutable bool                    mbEnableRTL : 1;
 
+protected:
+    mutable std::shared_ptr<PhysicalFontCollection> mxFontCollection;
+    mutable std::shared_ptr<ImplFontCache> mxFontCache;
+
     /** @name Initialization and accessor functions
      */
     ///@{
@@ -1178,12 +1180,12 @@ protected:
     void SetFontCollectionFromSVData();
     void ResetNewFontCache();
 
+    SAL_DLLPRIVATE bool         ImplNewFont() const;
+
 private:
 
     typedef void ( OutputDevice::* FontUpdateHandler_t )( bool );
 
-    SAL_DLLPRIVATE bool         ImplNewFont() const;
-
     SAL_DLLPRIVATE static void  ImplUpdateFontDataForAllFrames( FontUpdateHandler_t pHdl, bool bNewFontLists );
 
     static
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 41fc6b88d4ef..a099ef87bde1 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -68,6 +68,7 @@
 #include <vcl/filter/pdfdocument.hxx>
 #include <comphelper/hash.hxx>
 
+#include <svdata.hxx>
 #include <bitmap/BitmapWriteAccess.hxx>
 #include <fontsubset.hxx>
 #include <PhysicalFontFace.hxx>
@@ -1341,6 +1342,19 @@ void PDFWriterImpl::dispose()
     VirtualDevice::dispose();
 }
 
+bool PDFWriterImpl::ImplNewFont() const
+{
+    const ImplSVData* pSVData = ImplGetSVData();
+
+    if( mxFontCollection == pSVData->maGDIData.mxScreenFontList
+        ||  mxFontCache == pSVData->maGDIData.mxScreenFontCache )
+    {
+        const_cast<vcl::PDFWriterImpl&>(*this).ImplUpdateFontData();
+    }
+
+    return OutputDevice::ImplNewFont();
+}
+
 void PDFWriterImpl::setupDocInfo()
 {
     std::vector< sal_uInt8 > aId;
diff --git a/vcl/source/gdi/pdfwriter_impl.hxx b/vcl/source/gdi/pdfwriter_impl.hxx
index 43a55ad23196..e594d6332683 100644
--- a/vcl/source/gdi/pdfwriter_impl.hxx
+++ b/vcl/source/gdi/pdfwriter_impl.hxx
@@ -643,6 +643,7 @@ public:
     static void convertLineInfoToExtLineInfo( const LineInfo& rIn, PDFWriter::ExtLineInfo& rOut );
 
 protected:
+    bool ImplNewFont() const;
     void ImplClearFontData(bool bNewFontLists) override;
     void ImplRefreshFontData(bool bNewFontLists) override;
     vcl::Region ClipToDeviceBounds(vcl::Region aRegion) const override;
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index 1db0ad16207f..bfaa0226b1ce 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -914,15 +914,6 @@ bool OutputDevice::ImplNewFont() const
 {
     DBG_TESTSOLARMUTEX();
 
-    // get correct font list on the PDF writer if necessary
-    if (GetOutDevType() == OUTDEV_PDF)
-    {
-        const ImplSVData* pSVData = ImplGetSVData();
-        if( mxFontCollection == pSVData->maGDIData.mxScreenFontList
-        ||  mxFontCache == pSVData->maGDIData.mxScreenFontCache )
-            const_cast<OutputDevice&>(*this).ImplUpdateFontData();
-    }
-
     if ( !mbNewFont )
         return true;
 


More information about the Libreoffice-commits mailing list