sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx |    8 --
 sw/source/writerfilter/dmapper/DomainMapper_Impl.hxx |   14 +--
 sw/source/writerfilter/dmapper/FontTable.cxx         |   70 +++++++------------
 sw/source/writerfilter/dmapper/FontTable.hxx         |    7 +
 4 files changed, 44 insertions(+), 55 deletions(-)

New commits:
commit fa3bdd439dc8f19fd1c465d72ab7d2e8e7f32559
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Mon Jun 16 16:19:15 2025 +0200
Commit:     Noel Grandin <noelgran...@gmail.com>
CommitDate: Wed Jun 18 21:33:10 2025 +0200

    remove pimpl from FontTable
    
    this class is internal to a sub-section of writer, no need
    for a pimpl here
    
    Change-Id: I7be609d579c6803f8d61cd84fe6e8a3f50ec2e67
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186673
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/source/writerfilter/dmapper/FontTable.cxx 
b/sw/source/writerfilter/dmapper/FontTable.cxx
index d0f65bc8c742..2c839d3ab1e1 100644
--- a/sw/source/writerfilter/dmapper/FontTable.cxx
+++ b/sw/source/writerfilter/dmapper/FontTable.cxx
@@ -18,13 +18,11 @@
  */
 
 #include "FontTable.hxx"
-#include <o3tl/deleter.hxx>
 #include <ooxml/resourceids.hxx>
 #include <utility>
 #include <vector>
 #include <sal/log.hxx>
 #include <rtl/tencinfo.h>
-#include <vcl/embeddedfontshelper.hxx>
 #include <unotools/fontdefs.hxx>
 
 using namespace com::sun::star;
@@ -32,23 +30,11 @@ using namespace com::sun::star;
 namespace writerfilter::dmapper
 {
 
-struct FontTable_Impl
-{
-    std::unique_ptr<EmbeddedFontsHelper, 
o3tl::default_delete<EmbeddedFontsHelper>> xEmbeddedFontHelper;
-    std::vector< FontEntry::Pointer_t > aFontEntries;
-    FontEntry::Pointer_t pCurrentEntry;
-    bool m_bReadOnly;
-    FontTable_Impl(bool bReadOnly)
-        : m_bReadOnly(bReadOnly)
-    {
-    }
-};
-
 FontTable::FontTable(bool bReadOnly)
 : LoggedProperties("FontTable")
 , LoggedTable("FontTable")
 , LoggedStream("FontTable")
-, m_pImpl( new FontTable_Impl(bReadOnly) )
+, m_bReadOnly(bReadOnly)
 {
 }
 
@@ -58,8 +44,8 @@ FontTable::~FontTable()
 
 void FontTable::lcl_attribute(Id Name, const Value & val)
 {
-    SAL_WARN_IF( !m_pImpl->pCurrentEntry, "writerfilter.dmapper", "current 
entry has to be set here" );
-    if(!m_pImpl->pCurrentEntry)
+    SAL_WARN_IF( !m_pCurrentEntry, "writerfilter.dmapper", "current entry has 
to be set here" );
+    if(!m_pCurrentEntry)
         return ;
     int nIntValue = val.getInt();
     OUString sValue = val.getString();
@@ -76,25 +62,25 @@ void FontTable::lcl_attribute(Id Name, const Value & val)
                 SAL_WARN("writerfilter.dmapper", "FontTable::lcl_attribute: 
unhandled NS_ooxml::CT_Pitch_val: " << nIntValue);
             break;
         case NS_ooxml::LN_CT_Font_name:
-            m_pImpl->pCurrentEntry->sFontName = sValue;
+            m_pCurrentEntry->sFontName = sValue;
             break;
         case NS_ooxml::LN_CT_Charset_val:
             // w:characterSet has higher priority, set only if that one is not 
set
-            if( m_pImpl->pCurrentEntry->nTextEncoding == 
RTL_TEXTENCODING_DONTKNOW )
+            if( m_pCurrentEntry->nTextEncoding == RTL_TEXTENCODING_DONTKNOW )
             {
-                m_pImpl->pCurrentEntry->nTextEncoding = 
rtl_getTextEncodingFromWindowsCharset( nIntValue );
-                if( IsOpenSymbol( m_pImpl->pCurrentEntry->sFontName ))
-                    m_pImpl->pCurrentEntry->nTextEncoding = 
RTL_TEXTENCODING_SYMBOL;
+                m_pCurrentEntry->nTextEncoding = 
rtl_getTextEncodingFromWindowsCharset( nIntValue );
+                if( IsOpenSymbol( m_pCurrentEntry->sFontName ))
+                    m_pCurrentEntry->nTextEncoding = RTL_TEXTENCODING_SYMBOL;
             }
             break;
         case NS_ooxml::LN_CT_Charset_characterSet:
         {
             OString tmp;
             sValue.convertToString( &tmp, RTL_TEXTENCODING_ASCII_US, 
OUSTRING_TO_OSTRING_CVTFLAGS );
-            m_pImpl->pCurrentEntry->nTextEncoding = 
rtl_getTextEncodingFromMimeCharset( tmp.getStr() );
+            m_pCurrentEntry->nTextEncoding = 
rtl_getTextEncodingFromMimeCharset( tmp.getStr() );
             // Older LO versions used to write incorrect character set for 
OpenSymbol, fix.
-            if( IsOpenSymbol( m_pImpl->pCurrentEntry->sFontName ))
-                m_pImpl->pCurrentEntry->nTextEncoding = 
RTL_TEXTENCODING_SYMBOL;
+            if( IsOpenSymbol( m_pCurrentEntry->sFontName ))
+                m_pCurrentEntry->nTextEncoding = RTL_TEXTENCODING_SYMBOL;
             break;
         }
         default: ;
@@ -103,8 +89,8 @@ void FontTable::lcl_attribute(Id Name, const Value & val)
 
 void FontTable::lcl_sprm(Sprm& rSprm)
 {
-    SAL_WARN_IF( !m_pImpl->pCurrentEntry, "writerfilter.dmapper", "current 
entry has to be set here" );
-    if(!m_pImpl->pCurrentEntry)
+    SAL_WARN_IF( !m_pCurrentEntry, "writerfilter.dmapper", "current entry has 
to be set here" );
+    if(!m_pCurrentEntry)
         return ;
     sal_uInt32 nSprmId = rSprm.getId();
 
@@ -122,7 +108,7 @@ void FontTable::lcl_sprm(Sprm& rSprm)
             writerfilter::Reference< Properties >::Pointer_t pProperties = 
rSprm.getProps();
             if( pProperties )
             {
-                EmbeddedFontHandler handler(*this, 
m_pImpl->pCurrentEntry->sFontName,
+                EmbeddedFontHandler handler(*this, m_pCurrentEntry->sFontName,
                     nSprmId == NS_ooxml::LN_CT_Font_embedRegular ? u""
                     : nSprmId == NS_ooxml::LN_CT_Font_embedBold ? u"b"
                     : nSprmId == NS_ooxml::LN_CT_Font_embedItalic ? u"i"
@@ -143,10 +129,10 @@ void FontTable::lcl_sprm(Sprm& rSprm)
             switch (nIntValue)
             {
                 case NS_ooxml::LN_Value_ST_FontFamily_roman:
-                    m_pImpl->pCurrentEntry->m_nFontFamily = 
awt::FontFamily::ROMAN;
+                    m_pCurrentEntry->m_nFontFamily = awt::FontFamily::ROMAN;
                     break;
                 case NS_ooxml::LN_Value_ST_FontFamily_swiss:
-                    m_pImpl->pCurrentEntry->m_nFontFamily = 
awt::FontFamily::SWISS;
+                    m_pCurrentEntry->m_nFontFamily = awt::FontFamily::SWISS;
                     break;
             }
             break;
@@ -171,12 +157,12 @@ void FontTable::resolveSprm(Sprm & r_Sprm)
 void FontTable::lcl_entry(const 
writerfilter::Reference<Properties>::Pointer_t& ref)
 {
     //create a new font entry
-    SAL_WARN_IF( m_pImpl->pCurrentEntry, "writerfilter.dmapper", "current 
entry has to be NULL here" );
-    m_pImpl->pCurrentEntry = new FontEntry;
+    SAL_WARN_IF( m_pCurrentEntry, "writerfilter.dmapper", "current entry has 
to be NULL here" );
+    m_pCurrentEntry = new FontEntry;
     ref->resolve(*this);
     //append it to the table
-    m_pImpl->aFontEntries.push_back( m_pImpl->pCurrentEntry );
-    m_pImpl->pCurrentEntry.clear();
+    m_aFontEntries.push_back( m_pCurrentEntry );
+    m_pCurrentEntry.clear();
 }
 
 void FontTable::lcl_startSectionGroup()
@@ -233,19 +219,19 @@ void FontTable::lcl_endShape( )
 
 FontEntry::Pointer_t FontTable::getFontEntry(sal_uInt32 nIndex)
 {
-    return (m_pImpl->aFontEntries.size() > nIndex)
-        ?   m_pImpl->aFontEntries[nIndex]
+    return (m_aFontEntries.size() > nIndex)
+        ?   m_aFontEntries[nIndex]
         :   FontEntry::Pointer_t();
 }
 
 sal_uInt32 FontTable::size()
 {
-    return m_pImpl->aFontEntries.size();
+    return m_aFontEntries.size();
 }
 
 FontEntry::Pointer_t FontTable::getFontEntryByName(std::u16string_view rName)
 {
-    for (const auto& pEntry : m_pImpl->aFontEntries)
+    for (const auto& pEntry : m_aFontEntries)
     {
         if (pEntry->sFontName == rName)
         {
@@ -258,7 +244,7 @@ FontEntry::Pointer_t 
FontTable::getFontEntryByName(std::u16string_view rName)
 
 bool FontTable::IsReadOnly() const
 {
-    return m_pImpl->m_bReadOnly;
+    return m_bReadOnly;
 }
 
 void FontTable::addEmbeddedFont(const 
css::uno::Reference<css::io::XInputStream>& stream,
@@ -266,9 +252,9 @@ void FontTable::addEmbeddedFont(const 
css::uno::Reference<css::io::XInputStream>
                                 std::vector<unsigned char> const & key,
                                 bool bSubsetted)
 {
-    if (!m_pImpl->xEmbeddedFontHelper)
-        m_pImpl->xEmbeddedFontHelper.reset(new EmbeddedFontsHelper);
-    m_pImpl->xEmbeddedFontHelper->addEmbeddedFont(stream, fontName, extra, key,
+    if (!m_xEmbeddedFontHelper)
+        m_xEmbeddedFontHelper.reset(new EmbeddedFontsHelper);
+    m_xEmbeddedFontHelper->addEmbeddedFont(stream, fontName, extra, key,
             /*eot=*/false, bSubsetted);
 }
 
diff --git a/sw/source/writerfilter/dmapper/FontTable.hxx 
b/sw/source/writerfilter/dmapper/FontTable.hxx
index 476ef98636f0..7f9c545c9f73 100644
--- a/sw/source/writerfilter/dmapper/FontTable.hxx
+++ b/sw/source/writerfilter/dmapper/FontTable.hxx
@@ -24,6 +24,8 @@
 #include "LoggedResources.hxx"
 #include <com/sun/star/io/XInputStream.hpp>
 #include <com/sun/star/awt/FontFamily.hpp>
+#include <vcl/embeddedfontshelper.hxx>
+#include <o3tl/deleter.hxx>
 
 namespace writerfilter::dmapper
 {
@@ -44,7 +46,10 @@ struct FontEntry : public virtual SvRefBase
 class FontTable : public LoggedProperties, public LoggedTable
     /*,public BinaryObj*/, public LoggedStream
 {
-    std::unique_ptr<FontTable_Impl> m_pImpl;
+    std::unique_ptr<EmbeddedFontsHelper, 
o3tl::default_delete<EmbeddedFontsHelper>> m_xEmbeddedFontHelper;
+    std::vector< FontEntry::Pointer_t > m_aFontEntries;
+    FontEntry::Pointer_t m_pCurrentEntry;
+    bool m_bReadOnly;
 
  public:
     FontTable(bool bReadOnly);
commit 842748dd9bc6d28889405895fdcbbf2faf53cbda
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Mon Jun 16 16:07:26 2025 +0200
Commit:     Noel Grandin <noelgran...@gmail.com>
CommitDate: Wed Jun 18 21:33:01 2025 +0200

    use more concrete UNO classes
    
    Change-Id: I8153889f0886d25a9e37fa5745b02ecf9230002c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186672
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Tested-by: Jenkins

diff --git a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx 
b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
index c81255112abe..7fe93aa5522c 100644
--- a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
+++ b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
@@ -6334,16 +6334,14 @@ FieldContext::~FieldContext()
 {
 }
 
-void FieldContext::SetTextField(uno::Reference<text::XTextField> const& 
xTextField)
+void FieldContext::SetTextField(rtl::Reference<SwXTextField> const& xTextField)
 {
 #ifndef NDEBUG
     if (xTextField.is())
     {
-        uno::Reference<lang::XServiceInfo> const xServiceInfo(xTextField, 
uno::UNO_QUERY);
-        assert(xServiceInfo.is());
         // those must be set by SetFormField()
-        
assert(!xServiceInfo->supportsService(u"com.sun.star.text.Fieldmark"_ustr)
-            && 
!xServiceInfo->supportsService(u"com.sun.star.text.FormFieldmark"_ustr));
+        
assert(!xTextField->supportsService(u"com.sun.star.text.Fieldmark"_ustr)
+            && 
!xTextField->supportsService(u"com.sun.star.text.FormFieldmark"_ustr));
     }
 #endif
     m_xTextField = xTextField;
diff --git a/sw/source/writerfilter/dmapper/DomainMapper_Impl.hxx 
b/sw/source/writerfilter/dmapper/DomainMapper_Impl.hxx
index e1a9931ef0fd..f578e3f0a229 100644
--- a/sw/source/writerfilter/dmapper/DomainMapper_Impl.hxx
+++ b/sw/source/writerfilter/dmapper/DomainMapper_Impl.hxx
@@ -55,12 +55,12 @@
 #include "FormControlHelper.hxx"
 #include <unoidx.hxx>
 #include <unobookmark.hxx>
+#include <unofield.hxx>
 #include <map>
 
 class SwXTextDocument;
 class SwXDocumentSettings;
 class SwXTextSection;
-class SwXTextField;
 class SwXTextFrame;
 class SwXTextEmbeddedObject;
 class SwXText;
@@ -312,11 +312,11 @@ public:
     bool m_bSetDateValue = false;
 private:
 
-    css::uno::Reference<css::text::XTextField> m_xTextField;
+    rtl::Reference<SwXTextField> m_xTextField;
     rtl::Reference<SwXFieldmark> m_xFormField;
     rtl::Reference<SwXSection> m_xTOC;
     css::uno::Reference<css::beans::XPropertySet> m_xTC; // TOX entry
-    css::uno::Reference<css::beans::XPropertySet> m_xCustomField;
+    rtl::Reference<SwXTextField> m_xCustomField;
 
     OUString m_sHyperlinkURL;
     /// A frame for the hyperlink when one exists.
@@ -357,10 +357,10 @@ public:
     void                    SetFieldLocked() { m_bFieldLocked = true; }
     bool                    IsFieldLocked() const { return m_bFieldLocked; }
 
-    const css::uno::Reference<css::beans::XPropertySet>& GetCustomField() 
const { return m_xCustomField; }
-    void SetCustomField(css::uno::Reference<css::beans::XPropertySet> const& 
xCustomField) { m_xCustomField = xCustomField; }
-    const css::uno::Reference<css::text::XTextField>& GetTextField() const { 
return m_xTextField;}
-    void SetTextField(css::uno::Reference<css::text::XTextField> const& 
xTextField);
+    const rtl::Reference<SwXTextField>& GetCustomField() const { return 
m_xCustomField; }
+    void SetCustomField(rtl::Reference<SwXTextField> const& xCustomField) { 
m_xCustomField = xCustomField; }
+    const rtl::Reference<SwXTextField>& GetTextField() const { return 
m_xTextField;}
+    void SetTextField(rtl::Reference<SwXTextField> const& xTextField);
     const rtl::Reference<SwXFieldmark>& GetFormField() const { return 
m_xFormField;}
     void SetFormField(rtl::Reference<SwXFieldmark> const& xFormField) { 
m_xFormField = xFormField;}
 

Reply via email to