[Libreoffice-commits] core.git: sw/inc sw/qa sw/source

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Mon Mar 2 11:27:07 UTC 2020


 sw/inc/doc.hxx                                            |    3 
 sw/inc/docary.hxx                                         |  102 -----------
 sw/inc/frameformats.hxx                                   |  123 ++++++++++++++
 sw/inc/ndtxt.hxx                                          |   10 -
 sw/qa/core/doc/doc.cxx                                    |    1 
 sw/qa/extras/htmlimport/htmlimport.cxx                    |    1 
 sw/qa/extras/ooxmlexport/ooxmlexport13.cxx                |    1 
 sw/qa/extras/rtfexport/rtfexport4.cxx                     |    1 
 sw/qa/extras/uiwriter/uiwriter.cxx                        |    1 
 sw/qa/extras/uiwriter/uiwriter2.cxx                       |    1 
 sw/qa/extras/ww8import/ww8import.cxx                      |    1 
 sw/source/core/crsr/crstrvl.cxx                           |    1 
 sw/source/core/doc/CntntIdxStore.cxx                      |    1 
 sw/source/core/doc/DocumentContentOperationsManager.cxx   |    1 
 sw/source/core/doc/DocumentLayoutManager.cxx              |    1 
 sw/source/core/doc/DocumentLinksAdministrationManager.cxx |    1 
 sw/source/core/doc/DocumentStylePoolManager.cxx           |    1 
 sw/source/core/doc/dbgoutsw.cxx                           |    1 
 sw/source/core/doc/docbasic.cxx                           |    1 
 sw/source/core/doc/docchart.cxx                           |    2 
 sw/source/core/doc/doccomp.cxx                            |    1 
 sw/source/core/doc/docedt.cxx                             |    1 
 sw/source/core/doc/docfly.cxx                             |    1 
 sw/source/core/doc/docfmt.cxx                             |    6 
 sw/source/core/doc/docglbl.cxx                            |    1 
 sw/source/core/doc/doclay.cxx                             |    1 
 sw/source/core/doc/docnew.cxx                             |    1 
 sw/source/core/doc/docsort.cxx                            |    1 
 sw/source/core/doc/doctxm.cxx                             |    1 
 sw/source/core/doc/tblcpy.cxx                             |    1 
 sw/source/core/doc/textboxhelper.cxx                      |    1 
 sw/source/core/docnode/ndcopy.cxx                         |    1 
 sw/source/core/docnode/ndtbl.cxx                          |    1 
 sw/source/core/docnode/node.cxx                           |    1 
 sw/source/core/draw/dcontact.cxx                          |    1 
 sw/source/core/edit/edglss.cxx                            |    1 
 sw/source/core/edit/edws.cxx                              |    1 
 sw/source/core/fields/cellfml.cxx                         |    1 
 sw/source/core/frmedt/fecopy.cxx                          |    1 
 sw/source/core/frmedt/fefly1.cxx                          |    1 
 sw/source/core/frmedt/tblsel.cxx                          |    1 
 sw/source/core/layout/atrfrm.cxx                          |    1 
 sw/source/core/layout/flypos.cxx                          |    1 
 sw/source/core/layout/frmtool.cxx                         |    1 
 sw/source/core/layout/laycache.cxx                        |    1 
 sw/source/core/layout/pagechg.cxx                         |    1 
 sw/source/core/layout/tabfrm.cxx                          |    1 
 sw/source/core/text/EnhancedPDFExportHelper.cxx           |    1 
 sw/source/core/text/itratr.cxx                            |    1 
 sw/source/core/text/itrpaint.cxx                          |    1 
 sw/source/core/text/pormulti.cxx                          |    1 
 sw/source/core/text/txtfrm.cxx                            |    6 
 sw/source/core/txtnode/ndtxt.cxx                          |    1 
 sw/source/core/txtnode/thints.cxx                         |   12 -
 sw/source/core/undo/rolbck.cxx                            |    1 
 sw/source/core/undo/unattr.cxx                            |    1 
 sw/source/core/undo/undel.cxx                             |    1 
 sw/source/core/undo/undobj.cxx                            |    1 
 sw/source/core/undo/undobj1.cxx                           |    1 
 sw/source/core/undo/undraw.cxx                            |    1 
 sw/source/core/undo/untbl.cxx                             |    1 
 sw/source/core/undo/untblk.cxx                            |    1 
 sw/source/core/unocore/unocoll.cxx                        |    1 
 sw/source/core/unocore/unoobj2.cxx                        |    1 
 sw/source/core/unocore/unostyle.cxx                       |    1 
 sw/source/core/unocore/unotbl.cxx                         |    1 
 sw/source/core/unocore/unotext.cxx                        |    1 
 sw/source/filter/ascii/wrtasc.cxx                         |    1 
 sw/source/filter/basflt/shellio.cxx                       |    1 
 sw/source/filter/html/htmlforw.cxx                        |    1 
 sw/source/filter/html/htmlgrin.cxx                        |    1 
 sw/source/filter/html/htmltab.cxx                         |    1 
 sw/source/filter/html/swhtml.cxx                          |    1 
 sw/source/filter/ww8/docxattributeoutput.cxx              |    1 
 sw/source/filter/ww8/wrtw8esh.cxx                         |    1 
 sw/source/filter/ww8/ww8glsy.cxx                          |    1 
 sw/source/filter/xml/xmlexp.cxx                           |    1 
 sw/source/uibase/app/docstyle.cxx                         |    1 
 sw/source/uibase/docvw/UnfloatTableButton.cxx             |    1 
 sw/source/uibase/uiview/view2.cxx                         |    1 
 sw/source/uibase/wrtsh/delete.cxx                         |    1 
 81 files changed, 215 insertions(+), 122 deletions(-)

New commits:
commit 5962dbf15d99b54d33f7e6589a23b8bca4359168
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Mar 2 09:14:16 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Mar 2 12:26:24 2020 +0100

    speedup sw build a little
    
    from 11m46 to 11m21
    
    Used ClangBuildAnalyzer to find headers that took a long time
    to parse (in total, across all modules).
    
    (*) moved the boost stuff out of sw/inc/docary into a new header.
    (*) make sw/inc/ndtxt no longer include doc.hxx
    
    Change-Id: Ia1d4ebddb4ddd4ec4ffbc011f4a5e24a42b46d3f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89808
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index 14d98f6d5fee..6566cc56416e 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -760,8 +760,7 @@ public:
     SwFrameFormat  *MakeFrameFormat(const OUString &rFormatName, SwFrameFormat *pDerivedFrom,
                           bool bBroadcast = false, bool bAuto = true);
     void       DelFrameFormat( SwFrameFormat *pFormat, bool bBroadcast = false );
-    SwFrameFormat* FindFrameFormatByName( const OUString& rName ) const
-        {   return static_cast<SwFrameFormat*>(FindFormatByName( static_cast<SwFormatsBase&>(*mpFrameFormatTable), rName )); }
+    SwFrameFormat* FindFrameFormatByName( const OUString& rName ) const;
 
     SwCharFormat *MakeCharFormat(const OUString &rFormatName, SwCharFormat *pDerivedFrom,
                            bool bBroadcast = false );
diff --git a/sw/inc/docary.hxx b/sw/inc/docary.hxx
index 6a8040f06a08..d07819c40d50 100644
--- a/sw/inc/docary.hxx
+++ b/sw/inc/docary.hxx
@@ -23,13 +23,6 @@
 #include <type_traits>
 #include <o3tl/sorted_vector.hxx>
 
-#include <boost/multi_index_container.hpp>
-#include <boost/multi_index/composite_key.hpp>
-#include <boost/multi_index/identity.hpp>
-#include <boost/multi_index/mem_fun.hpp>
-#include <boost/multi_index/ordered_index.hpp>
-#include <boost/multi_index/random_access_index.hpp>
-
 #include "fmtcol.hxx"
 #include "frmfmt.hxx"
 #include "section.hxx"
@@ -179,101 +172,6 @@ public:
     SwGrfFormatColls() : SwFormatsModifyBase( DestructorPolicy::KeepElements ) {}
 };
 
-// Like o3tl::find_partialorder_ptrequals
-// We don't allow duplicated object entries!
-struct type_name_key:boost::multi_index::composite_key<
-    SwFrameFormat*,
-    boost::multi_index::const_mem_fun<SwFormat,sal_uInt16,&SwFormat::Which>,
-    boost::multi_index::const_mem_fun<SwFormat,const OUString&,&SwFormat::GetName>,
-    boost::multi_index::identity<SwFrameFormat*> // the actual object pointer
->{};
-
-typedef boost::multi_index_container<
-        SwFrameFormat*,
-        boost::multi_index::indexed_by<
-            boost::multi_index::random_access<>,
-            boost::multi_index::ordered_unique< type_name_key >
-        >
-    >
-    SwFrameFormatsBase;
-
-/// Specific frame formats (frames, DrawObjects).
-class SW_DLLPUBLIC SwFrameFormats : public SwFormatsBase
-{
-    // function updating ByName index via modify
-    friend void SwFrameFormat::SetName( const OUString&, bool );
-
-    typedef SwFrameFormatsBase::nth_index<0>::type ByPos;
-    typedef SwFrameFormatsBase::nth_index<1>::type ByTypeAndName;
-    typedef ByPos::iterator iterator;
-
-    SwFrameFormatsBase   m_Array;
-    ByPos               &m_PosIndex;
-    ByTypeAndName       &m_TypeAndNameIndex;
-
-public:
-    typedef ByPos::const_iterator const_iterator;
-    typedef ByTypeAndName::const_iterator const_range_iterator;
-    typedef SwFrameFormatsBase::size_type size_type;
-    typedef SwFrameFormatsBase::value_type value_type;
-
-    SwFrameFormats();
-    // frees all SwFrameFormat!
-    virtual ~SwFrameFormats() override;
-
-    bool empty()  const { return m_Array.empty(); }
-    size_t size() const { return m_Array.size(); }
-
-    // Only fails, if you try to insert the same object twice
-    std::pair<const_iterator,bool> push_back( const value_type& x );
-
-    // This will try to remove the exact object!
-    bool erase( const value_type& x );
-    void erase( size_type index );
-    void erase( const_iterator const& position );
-
-    // Get the iterator of the exact object (includes pointer!),
-    // e.g for position with std::distance.
-    // There is also ContainsFormat, if you don't need the position.
-    const_iterator find( const value_type& x ) const;
-
-    // As this array is non-unique related to type and name,
-    // we always get ranges for the "key" values.
-    std::pair<const_range_iterator,const_range_iterator>
-        rangeFind( sal_uInt16 type, const OUString& name ) const;
-    // Convenience function, which just uses type and name!
-    // To look for the exact object use find.
-    std::pair<const_range_iterator,const_range_iterator>
-        rangeFind( const value_type& x ) const;
-    // So we can actually check for end()
-    const_range_iterator rangeEnd() const { return m_TypeAndNameIndex.end(); }
-    const_iterator rangeProject( const_range_iterator const& position )
-        { return m_Array.project<0>( position ); }
-
-    const value_type& operator[]( size_t index_ ) const
-        { return m_PosIndex.operator[]( index_ ); }
-    const value_type& front() const { return m_PosIndex.front(); }
-    const value_type& back() const { return m_PosIndex.back(); }
-    const_iterator begin() const { return m_PosIndex.begin(); }
-    const_iterator end() const { return m_PosIndex.end(); }
-
-    void dumpAsXml(xmlTextWriterPtr pWriter, const char* pName) const;
-
-    virtual size_t GetFormatCount() const override { return m_Array.size(); }
-    virtual SwFormat* GetFormat(size_t idx) const override { return operator[]( idx ); }
-
-    /// fast check if given format is contained here
-    /// @precond pFormat must not have been deleted
-    bool ContainsFormat(SwFrameFormat const& rFormat) const;
-    /// not so fast check that given format is still alive (i.e. contained here)
-    bool IsAlive(SwFrameFormat const*) const;
-
-    void DeleteAndDestroyAll( bool keepDefault = false );
-
-    bool newDefault( const value_type& x );
-    void newDefault( const_iterator const& position );
-};
-
 
 /// Unsorted, undeleting SwFrameFormat vector
 class SwFrameFormatsV final : public SwFormatsModifyBase<SwFrameFormat*>
diff --git a/sw/inc/frameformats.hxx b/sw/inc/frameformats.hxx
new file mode 100644
index 000000000000..92b34d49e252
--- /dev/null
+++ b/sw/inc/frameformats.hxx
@@ -0,0 +1,123 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#pragma once
+
+#include "docary.hxx"
+#include <boost/multi_index_container.hpp>
+#include <boost/multi_index/composite_key.hpp>
+#include <boost/multi_index/identity.hpp>
+#include <boost/multi_index/mem_fun.hpp>
+#include <boost/multi_index/ordered_index.hpp>
+#include <boost/multi_index/random_access_index.hpp>
+
+// Like o3tl::find_partialorder_ptrequals
+// We don't allow duplicated object entries!
+struct type_name_key
+    : boost::multi_index::composite_key<
+          SwFrameFormat*, boost::multi_index::const_mem_fun<SwFormat, sal_uInt16, &SwFormat::Which>,
+          boost::multi_index::const_mem_fun<SwFormat, const OUString&, &SwFormat::GetName>,
+          boost::multi_index::identity<SwFrameFormat*> // the actual object pointer
+          >
+{
+};
+
+typedef boost::multi_index_container<
+    SwFrameFormat*,
+    boost::multi_index::indexed_by<boost::multi_index::random_access<>,
+                                   boost::multi_index::ordered_unique<type_name_key>>>
+    SwFrameFormatsBase;
+
+/// Specific frame formats (frames, DrawObjects).
+class SW_DLLPUBLIC SwFrameFormats : public SwFormatsBase
+{
+    // function updating ByName index via modify
+    friend void SwFrameFormat::SetName(const OUString&, bool);
+
+    typedef SwFrameFormatsBase::nth_index<0>::type ByPos;
+    typedef SwFrameFormatsBase::nth_index<1>::type ByTypeAndName;
+    typedef ByPos::iterator iterator;
+
+    SwFrameFormatsBase m_Array;
+    ByPos& m_PosIndex;
+    ByTypeAndName& m_TypeAndNameIndex;
+
+public:
+    typedef ByPos::const_iterator const_iterator;
+    typedef ByTypeAndName::const_iterator const_range_iterator;
+    typedef SwFrameFormatsBase::size_type size_type;
+    typedef SwFrameFormatsBase::value_type value_type;
+
+    SwFrameFormats();
+    // frees all SwFrameFormat!
+    virtual ~SwFrameFormats() override;
+
+    bool empty() const { return m_Array.empty(); }
+    size_t size() const { return m_Array.size(); }
+
+    // Only fails, if you try to insert the same object twice
+    std::pair<const_iterator, bool> push_back(const value_type& x);
+
+    // This will try to remove the exact object!
+    bool erase(const value_type& x);
+    void erase(size_type index);
+    void erase(const_iterator const& position);
+
+    // Get the iterator of the exact object (includes pointer!),
+    // e.g for position with std::distance.
+    // There is also ContainsFormat, if you don't need the position.
+    const_iterator find(const value_type& x) const;
+
+    // As this array is non-unique related to type and name,
+    // we always get ranges for the "key" values.
+    std::pair<const_range_iterator, const_range_iterator> rangeFind(sal_uInt16 type,
+                                                                    const OUString& name) const;
+    // Convenience function, which just uses type and name!
+    // To look for the exact object use find.
+    std::pair<const_range_iterator, const_range_iterator> rangeFind(const value_type& x) const;
+    // So we can actually check for end()
+    const_range_iterator rangeEnd() const { return m_TypeAndNameIndex.end(); }
+    const_iterator rangeProject(const_range_iterator const& position)
+    {
+        return m_Array.project<0>(position);
+    }
+
+    const value_type& operator[](size_t index_) const { return m_PosIndex.operator[](index_); }
+    const value_type& front() const { return m_PosIndex.front(); }
+    const value_type& back() const { return m_PosIndex.back(); }
+    const_iterator begin() const { return m_PosIndex.begin(); }
+    const_iterator end() const { return m_PosIndex.end(); }
+
+    void dumpAsXml(xmlTextWriterPtr pWriter, const char* pName) const;
+
+    virtual size_t GetFormatCount() const override { return m_Array.size(); }
+    virtual SwFormat* GetFormat(size_t idx) const override { return operator[](idx); }
+
+    /// fast check if given format is contained here
+    /// @precond pFormat must not have been deleted
+    bool ContainsFormat(SwFrameFormat const& rFormat) const;
+    /// not so fast check that given format is still alive (i.e. contained here)
+    bool IsAlive(SwFrameFormat const*) const;
+
+    void DeleteAndDestroyAll(bool keepDefault = false);
+
+    bool newDefault(const value_type& x);
+    void newDefault(const_iterator const& position);
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index acef43b0010e..dadf38794ef9 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -21,7 +21,6 @@
 
 #include <cppuhelper/weakref.hxx>
 
-#include "doc.hxx"
 #include "swdllapi.h"
 #include "node.hxx"
 #include "hintids.hxx"
@@ -63,6 +62,8 @@ class SwGrammarMarkUp;
 struct SwDocStat;
 struct SwParaIdleData_Impl;
 enum class ExpandMode;
+enum class SwFieldIds : sal_uInt16;
+class SwField;
 
 namespace sw { namespace mark { enum class RestoreMode; } }
 
@@ -708,13 +709,6 @@ public:
     bool IsHiddenByParaField() const
         { return m_pSwpHints && m_pSwpHints->IsHiddenByParaField(); }
 
-    int FieldCanHideParaWeight(SwFieldIds eFieldId) const
-        {
-            return GetDoc()->FieldCanHideParaWeight(eFieldId);
-        }
-    bool FieldHidesPara(const SwField& rField) const
-        { return GetDoc()->FieldHidesPara(rField); }
-
     /// Hidden Paragraph Field:
 
     bool HasHiddenCharAttribute( bool bWholePara ) const
diff --git a/sw/qa/core/doc/doc.cxx b/sw/qa/core/doc/doc.cxx
index 1879e326fb9f..882f31873bf3 100644
--- a/sw/qa/core/doc/doc.cxx
+++ b/sw/qa/core/doc/doc.cxx
@@ -15,6 +15,7 @@
 
 #include <wrtsh.hxx>
 #include <fmtanchr.hxx>
+#include <frameformats.hxx>
 
 static char const DATA_DIRECTORY[] = "/sw/qa/core/doc/data/";
 
diff --git a/sw/qa/extras/htmlimport/htmlimport.cxx b/sw/qa/extras/htmlimport/htmlimport.cxx
index 6259b1141520..f0d28644b3e1 100644
--- a/sw/qa/extras/htmlimport/htmlimport.cxx
+++ b/sw/qa/extras/htmlimport/htmlimport.cxx
@@ -26,6 +26,7 @@
 #include <txatbase.hxx>
 #include <fmtflcnt.hxx>
 #include <fmtfsize.hxx>
+#include <frameformats.hxx>
 
 class HtmlImportTest : public SwModelTestBase
 {
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index a37c603732ad..ccb2c196ae58 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -23,6 +23,7 @@
 
 #include <editsh.hxx>
 #include <frmatr.hxx>
+#include <frameformats.hxx>
 
 class Test : public SwModelTestBase
 {
diff --git a/sw/qa/extras/rtfexport/rtfexport4.cxx b/sw/qa/extras/rtfexport/rtfexport4.cxx
index 4a95b6f4338a..d2a2cd98d445 100644
--- a/sw/qa/extras/rtfexport/rtfexport4.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport4.cxx
@@ -20,6 +20,7 @@
 #include <unotxdoc.hxx>
 #include <pam.hxx>
 #include <fmtanchr.hxx>
+#include <frameformats.hxx>
 
 /**
   Split these tests into their own file because they are really really slow
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index 8c4123c31a6b..e837114a1684 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -128,6 +128,7 @@
 #include <iodetect.hxx>
 #include <wrthtml.hxx>
 #include <dbmgr.hxx>
+#include <frameformats.hxx>
 
 namespace
 {
diff --git a/sw/qa/extras/uiwriter/uiwriter2.cxx b/sw/qa/extras/uiwriter/uiwriter2.cxx
index a9a8f708496b..22348f88655d 100644
--- a/sw/qa/extras/uiwriter/uiwriter2.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter2.cxx
@@ -46,6 +46,7 @@
 #include <PostItMgr.hxx>
 #include <postithelper.hxx>
 #include <fmtcntnt.hxx>
+#include <frameformats.hxx>
 #include <shellio.hxx>
 #include <editeng/fontitem.hxx>
 
diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx
index 250a32832752..7f68b083cd88 100644
--- a/sw/qa/extras/ww8import/ww8import.cxx
+++ b/sw/qa/extras/ww8import/ww8import.cxx
@@ -16,6 +16,7 @@
 #include <wrtsh.hxx>
 #include <ndgrf.hxx>
 #include <fmtsrnd.hxx>
+#include <frameformats.hxx>
 #include <editeng/boxitem.hxx>
 #include <editeng/lrspitem.hxx>
 #include <editeng/ulspitem.hxx>
diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx
index c7b00dea2cbb..5a53b39bbe06 100644
--- a/sw/source/core/crsr/crstrvl.cxx
+++ b/sw/source/core/crsr/crstrvl.cxx
@@ -70,6 +70,7 @@
 #include <unotools/intlwrapper.hxx>
 #include <docufld.hxx>
 #include <svx/srchdlg.hxx>
+#include <frameformats.hxx>
 
 using namespace ::com::sun::star;
 
diff --git a/sw/source/core/doc/CntntIdxStore.cxx b/sw/source/core/doc/CntntIdxStore.cxx
index ef2f12608f29..bd36e45ae6c0 100644
--- a/sw/source/core/doc/CntntIdxStore.cxx
+++ b/sw/source/core/doc/CntntIdxStore.cxx
@@ -34,6 +34,7 @@
 #include <sal/types.h>
 #include <unocrsr.hxx>
 #include <txtfrm.hxx>
+#include <frameformats.hxx>
 #include <memory>
 
 using namespace ::boost;
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index c12faf54627e..0491adeda901 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -66,6 +66,7 @@
 #include <hints.hxx>
 #include <fmtflcnt.hxx>
 #include <docedt.hxx>
+#include <frameformats.hxx>
 #include <o3tl/safeint.hxx>
 #include <sal/log.hxx>
 #include <unotools/charclass.hxx>
diff --git a/sw/source/core/doc/DocumentLayoutManager.cxx b/sw/source/core/doc/DocumentLayoutManager.cxx
index 67875e86efbb..57f8af08920b 100644
--- a/sw/source/core/doc/DocumentLayoutManager.cxx
+++ b/sw/source/core/doc/DocumentLayoutManager.cxx
@@ -39,6 +39,7 @@
 #include <textboxhelper.hxx>
 #include <ndindex.hxx>
 #include <pam.hxx>
+#include <frameformats.hxx>
 #include <com/sun/star/embed/EmbedStates.hpp>
 
 using namespace ::com::sun::star;
diff --git a/sw/source/core/doc/DocumentLinksAdministrationManager.cxx b/sw/source/core/doc/DocumentLinksAdministrationManager.cxx
index 58a687294165..c5ad43e69bcc 100644
--- a/sw/source/core/doc/DocumentLinksAdministrationManager.cxx
+++ b/sw/source/core/doc/DocumentLinksAdministrationManager.cxx
@@ -41,6 +41,7 @@
 #include <fmtcntnt.hxx>
 #include <swtable.hxx>
 #include <ndtxt.hxx>
+#include <frameformats.hxx>
 #include <tools/urlobj.hxx>
 #include <unotools/charclass.hxx>
 #include <unotools/securityoptions.hxx>
diff --git a/sw/source/core/doc/DocumentStylePoolManager.cxx b/sw/source/core/doc/DocumentStylePoolManager.cxx
index b25a3cd2a6d5..063c37df58c4 100644
--- a/sw/source/core/doc/DocumentStylePoolManager.cxx
+++ b/sw/source/core/doc/DocumentStylePoolManager.cxx
@@ -64,6 +64,7 @@
 #include <osl/diagnose.h>
 #include <strings.hrc>
 #include <frmatr.hxx>
+#include <frameformats.hxx>
 #include <com/sun/star/text/VertOrientation.hpp>
 #include <com/sun/star/text/RelOrientation.hpp>
 #include <com/sun/star/text/HoriOrientation.hpp>
diff --git a/sw/source/core/doc/dbgoutsw.cxx b/sw/source/core/doc/dbgoutsw.cxx
index 0b6f282caa89..3fb9c460bbd3 100644
--- a/sw/source/core/doc/dbgoutsw.cxx
+++ b/sw/source/core/doc/dbgoutsw.cxx
@@ -42,6 +42,7 @@
 #include <paratr.hxx>
 #include <SwNodeNum.hxx>
 #include <dbgoutsw.hxx>
+#include <frameformats.hxx>
 #include <iostream>
 #include <cstdio>
 
diff --git a/sw/source/core/doc/docbasic.cxx b/sw/source/core/doc/docbasic.cxx
index b0dc7d481d09..e72ee5ad76a3 100644
--- a/sw/source/core/doc/docbasic.cxx
+++ b/sw/source/core/doc/docbasic.cxx
@@ -32,6 +32,7 @@
 #include <doc.hxx>
 #include <docsh.hxx>
 #include <swevent.hxx>
+#include <frameformats.hxx>
 #include <memory>
 
 using namespace ::com::sun::star::uno;
diff --git a/sw/source/core/doc/docchart.cxx b/sw/source/core/doc/docchart.cxx
index b602c92afd14..d0601e454a40 100644
--- a/sw/source/core/doc/docchart.cxx
+++ b/sw/source/core/doc/docchart.cxx
@@ -28,7 +28,7 @@
 #include <ndole.hxx>
 #include <swtblfmt.hxx>
 #include <tblsel.hxx>
-
+#include <frameformats.hxx>
 #include <unochart.hxx>
 
 void SwTable::UpdateCharts() const
diff --git a/sw/source/core/doc/doccomp.cxx b/sw/source/core/doc/doccomp.cxx
index 3e8fef2058e3..34334242a2c9 100644
--- a/sw/source/core/doc/doccomp.cxx
+++ b/sw/source/core/doc/doccomp.cxx
@@ -38,6 +38,7 @@
 #include <docsh.hxx>
 #include <fmtcntnt.hxx>
 #include <modcfg.hxx>
+#include <frameformats.hxx>
 
 #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
 #include <com/sun/star/document/XDocumentProperties.hpp>
diff --git a/sw/source/core/doc/docedt.cxx b/sw/source/core/doc/docedt.cxx
index c73d05f4c2a7..f3de5d3648f4 100644
--- a/sw/source/core/doc/docedt.cxx
+++ b/sw/source/core/doc/docedt.cxx
@@ -38,6 +38,7 @@
 #include <frmfmt.hxx>
 #include <ndtxt.hxx>
 #include <undobj.hxx>
+#include <frameformats.hxx>
 
 #include <vector>
 #include <com/sun/star/linguistic2/XProofreadingIterator.hpp>
diff --git a/sw/source/core/doc/docfly.cxx b/sw/source/core/doc/docfly.cxx
index 6077fc7fcf0b..99c9b580bd8e 100644
--- a/sw/source/core/doc/docfly.cxx
+++ b/sw/source/core/doc/docfly.cxx
@@ -54,6 +54,7 @@
 #include <dflyobj.hxx>
 #include <undoflystrattr.hxx>
 #include <calbck.hxx>
+#include <frameformats.hxx>
 #include <memory>
 #include <svx/xbtmpit.hxx>
 #include <svx/xflftrit.hxx>
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index c2cc80d11f20..1768221fb922 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -72,6 +72,7 @@
 #include <UndoManager.hxx>
 #include <swmodule.hxx>
 #include <modcfg.hxx>
+#include <frameformats.hxx>
 #include <memory>
 
 using namespace ::com::sun::star::i18n;
@@ -729,6 +730,11 @@ void SwDoc::DelTableFrameFormat( SwTableFormat *pFormat )
     delete pFormat;
 }
 
+SwFrameFormat* SwDoc::FindFrameFormatByName( const OUString& rName ) const
+{
+    return static_cast<SwFrameFormat*>(FindFormatByName( static_cast<SwFormatsBase&>(*mpFrameFormatTable), rName ));
+}
+
 /// Create the formats
 SwFlyFrameFormat *SwDoc::MakeFlyFrameFormat( const OUString &rFormatName,
                                     SwFrameFormat *pDerivedFrom )
diff --git a/sw/source/core/doc/docglbl.cxx b/sw/source/core/doc/docglbl.cxx
index f3a4eaba8af6..c1d2c0c8b26a 100644
--- a/sw/source/core/doc/docglbl.cxx
+++ b/sw/source/core/doc/docglbl.cxx
@@ -44,6 +44,7 @@
 #include <section.hxx>
 #include <calbck.hxx>
 #include <iodetect.hxx>
+#include <frameformats.hxx>
 #include <memory>
 #include <com/sun/star/uno/Reference.h>
 #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index c62a91c56a33..50d9ef0f9850 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -80,6 +80,7 @@
 #include <ftninfo.hxx>
 #include <pagedesc.hxx>
 #include <strings.hrc>
+#include <frameformats.hxx>
 #include <tools/datetimeutils.hxx>
 
 #include <sortedobjs.hxx>
diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
index 781c1a466e02..db01f3f00912 100644
--- a/sw/source/core/doc/docnew.cxx
+++ b/sw/source/core/doc/docnew.cxx
@@ -92,6 +92,7 @@
 #include <wrtsh.hxx>
 #include <unocrsr.hxx>
 #include <fmthdft.hxx>
+#include <frameformats.hxx>
 
 #include <numrule.hxx>
 
diff --git a/sw/source/core/doc/docsort.cxx b/sw/source/core/doc/docsort.cxx
index d30249802487..bd35fedf13f4 100644
--- a/sw/source/core/doc/docsort.cxx
+++ b/sw/source/core/doc/docsort.cxx
@@ -43,6 +43,7 @@
 #include <cellatr.hxx>
 #include <redline.hxx>
 #include <node2lay.hxx>
+#include <frameformats.hxx>
 
 #include <set>
 #include <utility>
diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx
index 27e5c60c73b8..a5427d028a5b 100644
--- a/sw/source/core/doc/doctxm.cxx
+++ b/sw/source/core/doc/doctxm.cxx
@@ -63,6 +63,7 @@
 #include <calbck.hxx>
 #include <ToxTextGenerator.hxx>
 #include <ToxTabStopTokenHandler.hxx>
+#include <frameformats.hxx>
 #include <tools/datetimeutils.hxx>
 #include <tools/globname.hxx>
 #include <com/sun/star/embed/XEmbeddedObject.hpp>
diff --git a/sw/source/core/doc/tblcpy.cxx b/sw/source/core/doc/tblcpy.cxx
index e03bddf51f66..164a33ae54cd 100644
--- a/sw/source/core/doc/tblcpy.cxx
+++ b/sw/source/core/doc/tblcpy.cxx
@@ -41,6 +41,7 @@
 #include <hints.hxx>
 #include <UndoTable.hxx>
 #include <fmtfsize.hxx>
+#include <frameformats.hxx>
 #include <deque>
 #include <memory>
 #include <numeric>
diff --git a/sw/source/core/doc/textboxhelper.cxx b/sw/source/core/doc/textboxhelper.cxx
index 37939224daf6..b59bb46f20b0 100644
--- a/sw/source/core/doc/textboxhelper.cxx
+++ b/sw/source/core/doc/textboxhelper.cxx
@@ -26,6 +26,7 @@
 #include <mvsave.hxx>
 #include <fmtsrnd.hxx>
 #include <frmfmt.hxx>
+#include <frameformats.hxx>
 
 #include <editeng/unoprnms.hxx>
 #include <editeng/memberids.h>
diff --git a/sw/source/core/docnode/ndcopy.cxx b/sw/source/core/docnode/ndcopy.cxx
index 6f97cc44db57..3c8ffe881b78 100644
--- a/sw/source/core/docnode/ndcopy.cxx
+++ b/sw/source/core/docnode/ndcopy.cxx
@@ -28,6 +28,7 @@
 #include <ddefld.hxx>
 #include <swddetbl.hxx>
 #include <ndindex.hxx>
+#include <frameformats.hxx>
 #include <vector>
 #include <osl/diagnose.h>
 
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index 43528cb67bcc..6a8e0138324d 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -86,6 +86,7 @@
 #include <fldupde.hxx>
 #include <calbck.hxx>
 #include <fntcache.hxx>
+#include <frameformats.hxx>
 #include <o3tl/numeric.hxx>
 #include <tools/datetimeutils.hxx>
 #include <sal/log.hxx>
diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx
index 85076e5b024e..080903462a6f 100644
--- a/sw/source/core/docnode/node.cxx
+++ b/sw/source/core/docnode/node.cxx
@@ -68,6 +68,7 @@
 #include <memory>
 #include <swcrsr.hxx>
 #include <hints.hxx>
+#include <frameformats.hxx>
 
 using namespace ::com::sun::star::i18n;
 
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx
index 7545f83d4d5c..295e7e25b474 100644
--- a/sw/source/core/draw/dcontact.cxx
+++ b/sw/source/core/draw/dcontact.cxx
@@ -53,6 +53,7 @@
 #include <doc.hxx>
 #include <hints.hxx>
 #include <txtfrm.hxx>
+#include <frameformats.hxx>
 #include <docary.hxx>
 #include <sortedobjs.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
diff --git a/sw/source/core/edit/edglss.cxx b/sw/source/core/edit/edglss.cxx
index 07697e6fb3e8..fbe20f8991e2 100644
--- a/sw/source/core/edit/edglss.cxx
+++ b/sw/source/core/edit/edglss.cxx
@@ -34,6 +34,7 @@
 #include <swtable.hxx>
 #include <shellio.hxx>
 #include <iodetect.hxx>
+#include <frameformats.hxx>
 
 void SwEditShell::InsertGlossary( SwTextBlocks& rGlossary, const OUString& rStr )
 {
diff --git a/sw/source/core/edit/edws.cxx b/sw/source/core/edit/edws.cxx
index dd5381cbb9eb..b17b557df188 100644
--- a/sw/source/core/edit/edws.cxx
+++ b/sw/source/core/edit/edws.cxx
@@ -34,6 +34,7 @@
 #include <txtfrm.hxx>
 #include <swundo.hxx>
 #include <SwRewriter.hxx>
+#include <frameformats.hxx>
 
 // masqueraded copy constructor
 SwEditShell::SwEditShell( SwEditShell& rEdSH, vcl::Window *pWindow )
diff --git a/sw/source/core/fields/cellfml.cxx b/sw/source/core/fields/cellfml.cxx
index e7e3830f6983..db2375997e78 100644
--- a/sw/source/core/fields/cellfml.cxx
+++ b/sw/source/core/fields/cellfml.cxx
@@ -43,6 +43,7 @@
 #include <flddat.hxx>
 #include <cellatr.hxx>
 #include <ndindex.hxx>
+#include <frameformats.hxx>
 #include <comphelper/string.hxx>
 #include <o3tl/safeint.hxx>
 
diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx
index c675e1fd48bc..683f5ae08439 100644
--- a/sw/source/core/frmedt/fecopy.cxx
+++ b/sw/source/core/frmedt/fecopy.cxx
@@ -67,6 +67,7 @@
 #include <pagedesc.hxx>
 #include <mvsave.hxx>
 #include <textboxhelper.hxx>
+#include <frameformats.hxx>
 #include <vcl/virdev.hxx>
 #include <svx/svdundo.hxx>
 
diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx
index f0d83d242a4c..13746c579141 100644
--- a/sw/source/core/frmedt/fefly1.cxx
+++ b/sw/source/core/frmedt/fefly1.cxx
@@ -69,6 +69,7 @@
 #include <ndole.hxx>
 #include <fefly.hxx>
 #include <fmtcnct.hxx>
+#include <frameformats.hxx>
 #include <textboxhelper.hxx>
 
 
diff --git a/sw/source/core/frmedt/tblsel.cxx b/sw/source/core/frmedt/tblsel.cxx
index cc88ed1d8578..01f39ff8dbd2 100644
--- a/sw/source/core/frmedt/tblsel.cxx
+++ b/sw/source/core/frmedt/tblsel.cxx
@@ -44,6 +44,7 @@
 #include <sectfrm.hxx>
 #include <frmtool.hxx>
 #include <calbck.hxx>
+#include <frameformats.hxx>
 #include <deque>
 #include <memory>
 
diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx
index 78f47d47d731..f417675b4292 100644
--- a/sw/source/core/layout/atrfrm.cxx
+++ b/sw/source/core/layout/atrfrm.cxx
@@ -84,6 +84,7 @@
 #include <pagedeschint.hxx>
 #include <drawdoc.hxx>
 #include <hints.hxx>
+#include <frameformats.hxx>
 
 #include <ndtxt.hxx>
 
diff --git a/sw/source/core/layout/flypos.cxx b/sw/source/core/layout/flypos.cxx
index f507eed9c171..e7709204fd9d 100644
--- a/sw/source/core/layout/flypos.cxx
+++ b/sw/source/core/layout/flypos.cxx
@@ -22,6 +22,7 @@
 #include <docary.hxx>
 #include <fmtanchr.hxx>
 #include <ndindex.hxx>
+#include <frameformats.hxx>
 #include <svx/swframetypes.hxx>
 
 bool SwPosFlyFrameCmp::operator()(const SwPosFlyFramePtr& rA, const SwPosFlyFramePtr& rB) const
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 4807cfcdb185..d59d121786ef 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -72,6 +72,7 @@
 #include <IDocumentRedlineAccess.hxx>
 #include <IDocumentFieldsAccess.hxx>
 #include <IDocumentState.hxx>
+#include <frameformats.hxx>
 #include <boost/circular_buffer.hpp>
 #include <svx/sdr/attribute/sdrallfillattributeshelper.hxx>
 
diff --git a/sw/source/core/layout/laycache.cxx b/sw/source/core/layout/laycache.cxx
index 2f0608056008..d7c9cc72fc69 100644
--- a/sw/source/core/layout/laycache.cxx
+++ b/sw/source/core/layout/laycache.cxx
@@ -46,6 +46,7 @@
 #include <ndindex.hxx>
 #include <node.hxx>
 #include <ndtxt.hxx>
+#include <frameformats.hxx>
 
 #include <limits>
 #include <set>
diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx
index b93b5a23440b..c9f2469591dd 100644
--- a/sw/source/core/layout/pagechg.cxx
+++ b/sw/source/core/layout/pagechg.cxx
@@ -36,6 +36,7 @@
 #include <view.hxx>
 #include <edtwin.hxx>
 #include <docary.hxx>
+#include <frameformats.hxx>
 
 #include <viewimp.hxx>
 #include <pagefrm.hxx>
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 2a957de66933..2a9b98e4869e 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -63,6 +63,7 @@
 #include <frmatr.hxx>
 #include <frmtool.hxx>
 #include <ndtxt.hxx>
+#include <frameformats.hxx>
 
 using namespace ::com::sun::star;
 
diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx b/sw/source/core/text/EnhancedPDFExportHelper.cxx
index 477be010437e..d570a8015f52 100644
--- a/sw/source/core/text/EnhancedPDFExportHelper.cxx
+++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx
@@ -79,6 +79,7 @@
 #include <stack>
 #include <frmtool.hxx>
 #include <strings.hrc>
+#include <frameformats.hxx>
 
 #include <tools/globname.hxx>
 #include <svx/svdobj.hxx>
diff --git a/sw/source/core/text/itratr.cxx b/sw/source/core/text/itratr.cxx
index 3e3dc819c270..1fadbf708d12 100644
--- a/sw/source/core/text/itratr.cxx
+++ b/sw/source/core/text/itratr.cxx
@@ -56,6 +56,7 @@
 #include <com/sun/star/i18n/XBreakIterator.hpp>
 #include <editeng/lrspitem.hxx>
 #include <calbck.hxx>
+#include <frameformats.hxx>
 
 using namespace ::com::sun::star::i18n;
 using namespace ::com::sun::star;
diff --git a/sw/source/core/text/itrpaint.cxx b/sw/source/core/text/itrpaint.cxx
index 0e9b3d4dfa58..30889d15f2d4 100644
--- a/sw/source/core/text/itrpaint.cxx
+++ b/sw/source/core/text/itrpaint.cxx
@@ -38,6 +38,7 @@
 #include "redlnitr.hxx"
 #include "porrst.hxx"
 #include "pormulti.hxx"
+#include <doc.hxx>
 
 // Returns, if we have an underline breaking situation
 // Adding some more conditions here means you also have to change them
diff --git a/sw/source/core/text/pormulti.cxx b/sw/source/core/text/pormulti.cxx
index c7ac050d1bc7..f72e120848f6 100644
--- a/sw/source/core/text/pormulti.cxx
+++ b/sw/source/core/text/pormulti.cxx
@@ -44,6 +44,7 @@
 #include <tgrditem.hxx>
 #include <swtable.hxx>
 #include <fmtfsize.hxx>
+#include <doc.hxx>
 
 using namespace ::com::sun::star;
 
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index 874dcc75db99..8b6051b8da73 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -1386,18 +1386,18 @@ bool SwTextFrame::IsHiddenNow() const
             {
                 // see also SwpHints::CalcHiddenParaField()
                 const SwFormatField& rField = pHint->GetFormatField();
-                int nCurWeight = pNode->FieldCanHideParaWeight(rField.GetField()->GetTyp()->Which());
+                int nCurWeight = pNode->GetDoc()->FieldCanHideParaWeight(rField.GetField()->GetTyp()->Which());
                 if (nCurWeight > nNewResultWeight)
                 {
                     nNewResultWeight = nCurWeight;
-                    bHiddenParaField = pNode->FieldHidesPara(*rField.GetField());
+                    bHiddenParaField = pNode->GetDoc()->FieldHidesPara(*rField.GetField());
                 }
                 else if (nCurWeight == nNewResultWeight && bHiddenParaField)
                 {
                     // Currently, for both supported hiding types (HiddenPara, Database), "Don't hide"
                     // takes precedence - i.e., if there's a "Don't hide" field of that weight, we only
                     // care about fields of higher weight.
-                    bHiddenParaField = pNode->FieldHidesPara(*rField.GetField());
+                    bHiddenParaField = pNode->GetDoc()->FieldHidesPara(*rField.GetField());
                 }
             }
         }
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index dccc699ed67b..d59a106f47b8 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -79,6 +79,7 @@
 #include <memory>
 #include <unoparagraph.hxx>
 #include <wrtsh.hxx>
+#include <frameformats.hxx>
 #include <svx/sdr/attribute/sdrallfillattributeshelper.hxx>
 #include <svl/itemiter.hxx>
 
diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx
index e58d0e7e6892..2dcb0dd9d457 100644
--- a/sw/source/core/txtnode/thints.cxx
+++ b/sw/source/core/txtnode/thints.cxx
@@ -1184,7 +1184,7 @@ void SwTextNode::DestroyAttr( SwTextAttr* pAttr )
                 // certain fields must update the SwDoc's calculation flags
 
                 // Certain fields (like HiddenParaField) must trigger recalculation of visible flag
-                if (FieldCanHideParaWeight(pFieldType->Which()))
+                if (GetDoc()->FieldCanHideParaWeight(pFieldType->Which()))
                     SetCalcHiddenParaField();
 
                 switch( pFieldType->Which() )
@@ -1494,7 +1494,7 @@ bool SwTextNode::InsertHint( SwTextAttr * const pAttr, const SetAttrMode nMode )
         case RES_TXTATR_FIELD:
                 {
                     // trigger notification for relevant fields, like HiddenParaFields
-                    if (FieldCanHideParaWeight(
+                    if (GetDoc()->FieldCanHideParaWeight(
                             pAttr->GetFormatField().GetField()->GetTyp()->Which()))
                     {
                         bHiddenPara = true;
@@ -2628,18 +2628,18 @@ bool SwpHints::CalcHiddenParaField() const
         {
             // see also SwTextFrame::IsHiddenNow()
             const SwFormatField& rField = pTextHt->GetFormatField();
-            int nCurWeight = m_rParent.FieldCanHideParaWeight(rField.GetField()->GetTyp()->Which());
+            int nCurWeight = m_rParent.GetDoc()->FieldCanHideParaWeight(rField.GetField()->GetTyp()->Which());
             if (nCurWeight > nNewResultWeight)
             {
                 nNewResultWeight = nCurWeight;
-                bNewHiddenByParaField = m_rParent.FieldHidesPara(*rField.GetField());
+                bNewHiddenByParaField = m_rParent.GetDoc()->FieldHidesPara(*rField.GetField());
             }
             else if (nCurWeight == nNewResultWeight && bNewHiddenByParaField)
             {
                 // Currently, for both supported hiding types (HiddenPara, Database), "Don't hide"
                 // takes precedence - i.e., if there's a "Don't hide" field of that weight, we only
                 // care about fields of higher weight.
-                bNewHiddenByParaField = m_rParent.FieldHidesPara(*rField.GetField());
+                bNewHiddenByParaField = m_rParent.GetDoc()->FieldHidesPara(*rField.GetField());
             }
         }
     }
@@ -3336,7 +3336,7 @@ void SwpHints::DeleteAtPos( const size_t nPos )
             pTextField->ChgTextNode(nullptr);
         }
         else if (m_bHiddenByParaField
-                 && m_rParent.FieldCanHideParaWeight(pFieldTyp->Which()))
+                 && m_rParent.GetDoc()->FieldCanHideParaWeight(pFieldTyp->Which()))
         {
             m_bCalcHiddenParaField = true;
         }
diff --git a/sw/source/core/undo/rolbck.cxx b/sw/source/core/undo/rolbck.cxx
index 9270d5cc28de..ceac742f9bbc 100644
--- a/sw/source/core/undo/rolbck.cxx
+++ b/sw/source/core/undo/rolbck.cxx
@@ -53,6 +53,7 @@
 #include <charfmt.hxx>
 #include <strings.hrc>
 #include <bookmrk.hxx>
+#include <frameformats.hxx>
 #include <memory>
 
 OUString SwHistoryHint::GetDescription() const
diff --git a/sw/source/core/undo/unattr.cxx b/sw/source/core/undo/unattr.cxx
index d2c584884ac6..83fbf59f216c 100644
--- a/sw/source/core/undo/unattr.cxx
+++ b/sw/source/core/undo/unattr.cxx
@@ -52,6 +52,7 @@
 #include <section.hxx>
 #include <charfmt.hxx>
 #include <calbck.hxx>
+#include <frameformats.hxx>
 
 SwUndoFormatAttrHelper::SwUndoFormatAttrHelper( SwFormat& rFormat, bool bSvDrwPt )
     : SwClient( &rFormat )
diff --git a/sw/source/core/undo/undel.cxx b/sw/source/core/undo/undel.cxx
index 51d859b5b5d5..a93a34bb0257 100644
--- a/sw/source/core/undo/undel.cxx
+++ b/sw/source/core/undo/undel.cxx
@@ -39,6 +39,7 @@
 #include <txtfrm.hxx>
 #include <rootfrm.hxx>
 #include <strings.hrc>
+#include <frameformats.hxx>
 #include <vector>
 
 // DELETE
diff --git a/sw/source/core/undo/undobj.cxx b/sw/source/core/undo/undobj.cxx
index 5d79e7b84ecc..125154579980 100644
--- a/sw/source/core/undo/undobj.cxx
+++ b/sw/source/core/undo/undobj.cxx
@@ -39,6 +39,7 @@
 #include <strings.hrc>
 #include <docsh.hxx>
 #include <view.hxx>
+#include <frameformats.hxx>
 #include <sal/log.hxx>
 
 // This class saves the Pam as integers and can recompose those into a PaM
diff --git a/sw/source/core/undo/undobj1.cxx b/sw/source/core/undo/undobj1.cxx
index 83dcaf4a09f2..51ba206af391 100644
--- a/sw/source/core/undo/undobj1.cxx
+++ b/sw/source/core/undo/undobj1.cxx
@@ -36,6 +36,7 @@
 #include <pam.hxx>
 #include <ndtxt.hxx>
 #include <ndole.hxx>
+#include <frameformats.hxx>
 
 SwUndoFlyBase::SwUndoFlyBase( SwFrameFormat* pFormat, SwUndoId nUndoId )
     : SwUndo(nUndoId, pFormat->GetDoc())
diff --git a/sw/source/core/undo/undraw.cxx b/sw/source/core/undo/undraw.cxx
index 05e71ed20a6b..562fc6205eca 100644
--- a/sw/source/core/undo/undraw.cxx
+++ b/sw/source/core/undo/undraw.cxx
@@ -41,6 +41,7 @@
 #include <UndoCore.hxx>
 #include <dcontact.hxx>
 #include <viewsh.hxx>
+#include <frameformats.hxx>
 
 struct SwUndoGroupObjImpl
 {
diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx
index 06d6357c0cee..b841c0420344 100644
--- a/sw/source/core/undo/untbl.cxx
+++ b/sw/source/core/undo/untbl.cxx
@@ -58,6 +58,7 @@
 #include <strings.hrc>
 #include <unochart.hxx>
 #include <calbck.hxx>
+#include <frameformats.hxx>
 
 #include <memory>
 #include <utility>
diff --git a/sw/source/core/undo/untblk.cxx b/sw/source/core/undo/untblk.cxx
index 6af2f532c020..a7713bc036db 100644
--- a/sw/source/core/undo/untblk.cxx
+++ b/sw/source/core/undo/untblk.cxx
@@ -30,6 +30,7 @@
 #include <UndoCore.hxx>
 #include <rolbck.hxx>
 #include <redline.hxx>
+#include <frameformats.hxx>
 
 namespace sw {
 
diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx
index f30b5240cda4..e02a2fa945e2 100644
--- a/sw/source/core/unocore/unocoll.cxx
+++ b/sw/source/core/unocore/unocoll.cxx
@@ -56,6 +56,7 @@
 #include <unometa.hxx>
 #include <docsh.hxx>
 #include <hints.hxx>
+#include <frameformats.hxx>
 #include <com/sun/star/document/XCodeNameQuery.hpp>
 #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
 #include <com/sun/star/form/XFormsSupplier.hpp>
diff --git a/sw/source/core/unocore/unoobj2.cxx b/sw/source/core/unocore/unoobj2.cxx
index 417370f05980..600ee1fca9f8 100644
--- a/sw/source/core/unocore/unoobj2.cxx
+++ b/sw/source/core/unocore/unoobj2.cxx
@@ -68,6 +68,7 @@
 #include <fmtflcnt.hxx>
 #include <vector>
 #include <sortedobjs.hxx>
+#include <frameformats.hxx>
 #include <algorithm>
 #include <iterator>
 
diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 67da3653b6d3..9113c4bc0609 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -89,6 +89,7 @@
 #include <fmtfsize.hxx>
 #include <numrule.hxx>
 #include <tblafmt.hxx>
+#include <frameformats.hxx>
 
 #include <comphelper/servicehelper.hxx>
 #include <cppuhelper/exc_hlp.hxx>
diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index b51efa908b1b..7945d1cfc585 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -106,6 +106,7 @@
 #include <fesh.hxx>
 #include <itabenum.hxx>
 #include <poolfmt.hxx>
+#include <frameformats.hxx>
 
 using namespace ::com::sun::star;
 using ::editeng::SvxBorderLine;
diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index 1790b1862e23..68b0576b7ba7 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -67,6 +67,7 @@
 #include <ndtxt.hxx>
 #include <SwRewriter.hxx>
 #include <strings.hrc>
+#include <frameformats.hxx>
 
 using namespace ::com::sun::star;
 
diff --git a/sw/source/filter/ascii/wrtasc.cxx b/sw/source/filter/ascii/wrtasc.cxx
index fcbf33f135dc..fa99ce7c6d95 100644
--- a/sw/source/filter/ascii/wrtasc.cxx
+++ b/sw/source/filter/ascii/wrtasc.cxx
@@ -27,6 +27,7 @@
 #include <fmtcntnt.hxx>
 #include <frmfmt.hxx>
 #include "wrtasc.hxx"
+#include <frameformats.hxx>
 
 #include <strings.hrc>
 
diff --git a/sw/source/filter/basflt/shellio.cxx b/sw/source/filter/basflt/shellio.cxx
index 3a5f44e35a60..85113a0f6404 100644
--- a/sw/source/filter/basflt/shellio.cxx
+++ b/sw/source/filter/basflt/shellio.cxx
@@ -59,6 +59,7 @@
 #include <redline.hxx>
 #include <swerror.h>
 #include <pausethreadstarting.hxx>
+#include <frameformats.hxx>
 
 using namespace ::com::sun::star;
 
diff --git a/sw/source/filter/html/htmlforw.cxx b/sw/source/filter/html/htmlforw.cxx
index 4431234b8015..14791f86759b 100644
--- a/sw/source/filter/html/htmlforw.cxx
+++ b/sw/source/filter/html/htmlforw.cxx
@@ -56,6 +56,7 @@
 #include "htmlfly.hxx"
 #include "htmlform.hxx"
 #include <frmfmt.hxx>
+#include <frameformats.hxx>
 #include <memory>
 
 using namespace ::com::sun::star;
diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx
index 6a1a92a98e65..ef59eb27d254 100644
--- a/sw/source/filter/html/htmlgrin.cxx
+++ b/sw/source/filter/html/htmlgrin.cxx
@@ -65,6 +65,7 @@
 #include "swhtml.hxx"
 #include <numrule.hxx>
 #include <IDocumentMarkAccess.hxx>
+#include <frameformats.hxx>
 
 #include <vcl/graphicfilter.hxx>
 #include <tools/urlobj.hxx>
diff --git a/sw/source/filter/html/htmltab.cxx b/sw/source/filter/html/htmltab.cxx
index e0926eb9dbb9..e95e08c5c290 100644
--- a/sw/source/filter/html/htmltab.cxx
+++ b/sw/source/filter/html/htmltab.cxx
@@ -64,6 +64,7 @@
 #include <itabenum.hxx>
 #include <tblafmt.hxx>
 #include <SwStyleNameMapper.hxx>
+#include <frameformats.hxx>
 
 #define NETSCAPE_DFLT_BORDER 1
 #define NETSCAPE_DFLT_CELLSPACING 2
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 1168844d4673..94f4842029a0 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -123,6 +123,7 @@
 #include <ndole.hxx>
 #include <unoframe.hxx>
 #include "css1atr.hxx"
+#include <frameformats.hxx>
 
 #define FONTSIZE_MASK           7
 
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 5885e788f6b4..90e9ff7fe17a 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -126,6 +126,7 @@
 #include <grfatr.hxx>
 #include <frmatr.hxx>
 #include <txtatr.hxx>
+#include <frameformats.hxx>
 
 #include <osl/file.hxx>
 #include <utility>
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index 24d5204383ac..ec4810773511 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -85,6 +85,7 @@
 #include <IDocumentStylePoolAccess.hxx>
 #include <oox/ole/olehelper.hxx>
 #include <fmturl.hxx>
+#include <frameformats.hxx>
 #include <sfx2/sfxsids.hrc>
 #include <unotools/saveopt.hxx>
 #include <o3tl/enumrange.hxx>
diff --git a/sw/source/filter/ww8/ww8glsy.cxx b/sw/source/filter/ww8/ww8glsy.cxx
index 4e651ed6dbde..6d8cdce2741b 100644
--- a/sw/source/filter/ww8/ww8glsy.cxx
+++ b/sw/source/filter/ww8/ww8glsy.cxx
@@ -30,6 +30,7 @@
 #include <doc.hxx>
 #include <IDocumentStylePoolAccess.hxx>
 #include <docary.hxx>
+#include <frameformats.hxx>
 #include "ww8glsy.hxx"
 #include "ww8par.hxx"
 
diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx
index 4a8be86cea70..86892a84dc00 100644
--- a/sw/source/filter/xml/xmlexp.cxx
+++ b/sw/source/filter/xml/xmlexp.cxx
@@ -52,6 +52,7 @@
 #include "xmlexpit.hxx"
 #include <comphelper/processfactory.hxx>
 #include <docary.hxx>
+#include <frameformats.hxx>
 #include <comphelper/servicehelper.hxx>
 #include <vcl/svapp.hxx>
 #include <IDocumentSettingAccess.hxx>
diff --git a/sw/source/uibase/app/docstyle.cxx b/sw/source/uibase/app/docstyle.cxx
index de62518f9c5d..5f07333ecdaa 100644
--- a/sw/source/uibase/app/docstyle.cxx
+++ b/sw/source/uibase/app/docstyle.cxx
@@ -60,6 +60,7 @@
 #include <svx/xdef.hxx>
 #include <SwRewriter.hxx>
 #include <hints.hxx>
+#include <frameformats.hxx>
 #include <svx/xfillit0.hxx>
 #include <svx/xflftrit.hxx>
 #include <svx/drawitem.hxx>
diff --git a/sw/source/uibase/docvw/UnfloatTableButton.cxx b/sw/source/uibase/docvw/UnfloatTableButton.cxx
index ee4c8d68b489..4f7bda6566f6 100644
--- a/sw/source/uibase/docvw/UnfloatTableButton.cxx
+++ b/sw/source/uibase/docvw/UnfloatTableButton.cxx
@@ -39,6 +39,7 @@
 #include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
 #include <basegfx/vector/b2dvector.hxx>
 #include <svl/grabbagitem.hxx>
+#include <doc.hxx>
 
 #define TEXT_PADDING 3
 #define BOX_DISTANCE 3
diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx
index f464ce1f640a..0bd28349a48a 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -130,6 +130,7 @@
 #include <i18nutil/searchopt.hxx>
 #include <paratr.hxx>
 #include <rootfrm.hxx>
+#include <frameformats.hxx>
 
 #include <memory>
 
diff --git a/sw/source/uibase/wrtsh/delete.cxx b/sw/source/uibase/wrtsh/delete.cxx
index 631afcfa1fce..0dbc7eb89cc5 100644
--- a/sw/source/uibase/wrtsh/delete.cxx
+++ b/sw/source/uibase/wrtsh/delete.cxx
@@ -31,6 +31,7 @@
 #include <IDocumentUndoRedo.hxx>
 #include <i18nutil/unicode.hxx>
 #include <rtl/character.hxx>
+#include <doc.hxx>
 
 inline void SwWrtShell::OpenMark()
 {


More information about the Libreoffice-commits mailing list