[Libreoffice-commits] core.git: Branch 'feature/refactor-god-objects' - 4 commits - sw/inc sw/source

Valentin Kettner vakevk+libreoffice at gmail.com
Mon May 26 06:17:38 PDT 2014


 sw/inc/IDocumentSettingAccess.hxx                         |   16 +
 sw/inc/doc.hxx                                            |   16 -
 sw/source/core/attr/format.cxx                            |    3 
 sw/source/core/crsr/pam.cxx                               |    3 
 sw/source/core/doc/DocumentDeviceManager.cxx              |   25 -
 sw/source/core/doc/doc.cxx                                |   67 -----
 sw/source/core/doc/docdraw.cxx                            |    4 
 sw/source/core/doc/docglbl.cxx                            |    9 
 sw/source/core/doc/doclay.cxx                             |    5 
 sw/source/core/doc/docnew.cxx                             |    6 
 sw/source/core/doc/doctxm.cxx                             |    3 
 sw/source/core/doc/notxtfrm.cxx                           |    2 
 sw/source/core/doc/poolfmt.cxx                            |   13 
 sw/source/core/doc/tblrwcl.cxx                            |    1 
 sw/source/core/docnode/ndtbl.cxx                          |    3 
 sw/source/core/docnode/node.cxx                           |    3 
 sw/source/core/draw/drawdoc.cxx                           |    5 
 sw/source/core/draw/dview.cxx                             |    3 
 sw/source/core/edit/edfld.cxx                             |    3 
 sw/source/core/edit/edglbldc.cxx                          |    1 
 sw/source/core/edit/editsh.cxx                            |    1 
 sw/source/core/fields/ddetbl.cxx                          |    1 
 sw/source/core/frmedt/feshview.cxx                        |    3 
 sw/source/core/inc/DocumentSettingManager.hxx             |    8 
 sw/source/core/layout/anchoreddrawobject.cxx              |    3 
 sw/source/core/layout/anchoredobject.cxx                  |    1 
 sw/source/core/layout/calcmove.cxx                        |    4 
 sw/source/core/layout/flowfrm.cxx                         |    1 
 sw/source/core/layout/fly.cxx                             |    1 
 sw/source/core/layout/flycnt.cxx                          |    1 
 sw/source/core/layout/flyincnt.cxx                        |    1 
 sw/source/core/layout/flylay.cxx                          |    1 
 sw/source/core/layout/frmtool.cxx                         |    9 
 sw/source/core/layout/newfrm.cxx                          |    1 
 sw/source/core/layout/objectformatter.cxx                 |    1 
 sw/source/core/layout/pagechg.cxx                         |    1 
 sw/source/core/layout/paintfrm.cxx                        |    4 
 sw/source/core/layout/sectfrm.cxx                         |    1 
 sw/source/core/layout/tabfrm.cxx                          |    5 
 sw/source/core/layout/trvlfrm.cxx                         |    3 
 sw/source/core/layout/wsfrm.cxx                           |    1 
 sw/source/core/ole/ndole.cxx                              |    3 
 sw/source/core/text/frmcrsr.cxx                           |    1 
 sw/source/core/text/itratr.cxx                            |    2 
 sw/source/core/text/itrform2.cxx                          |    1 
 sw/source/core/text/porfld.cxx                            |    1 
 sw/source/core/text/txtfld.cxx                            |    1 
 sw/source/core/text/txtfrm.cxx                            |    2 
 sw/source/core/txtnode/ndtxt.cxx                          |    1 
 sw/source/core/txtnode/txtedt.cxx                         |    3 
 sw/source/core/uibase/app/appopt.cxx                      |    3 
 sw/source/core/uibase/app/docsh.cxx                       |   42 +--
 sw/source/core/uibase/app/docsh2.cxx                      |    8 
 sw/source/core/uibase/app/docshini.cxx                    |   28 +-
 sw/source/core/uibase/app/docst.cxx                       |    8 
 sw/source/core/uibase/app/docstyle.cxx                    |    9 
 sw/source/core/uibase/dbui/dbmgr.cxx                      |    1 
 sw/source/core/uibase/dialog/SwSpellDialogChildWindow.cxx |    1 
 sw/source/core/uibase/dochdl/swdtflvr.cxx                 |    4 
 sw/source/core/uibase/docvw/PostItMgr.cxx                 |    1 
 sw/source/core/uibase/lingu/sdrhhcwrap.cxx                |    1 
 sw/source/core/uibase/misc/glshell.cxx                    |    1 
 sw/source/core/uibase/shells/basesh.cxx                   |    3 
 sw/source/core/uibase/shells/frmsh.cxx                    |    3 
 sw/source/core/uibase/uiview/pview.cxx                    |    1 
 sw/source/core/uibase/uiview/srcview.cxx                  |    1 
 sw/source/core/uibase/uiview/swcli.cxx                    |    3 
 sw/source/core/uibase/uiview/view.cxx                     |    7 
 sw/source/core/uibase/uiview/view2.cxx                    |    1 
 sw/source/core/uibase/uiview/viewdraw.cxx                 |    1 
 sw/source/core/uibase/uiview/viewprt.cxx                  |    1 
 sw/source/core/uibase/uno/SwXDocumentSettings.cxx         |  186 +++++++-------
 sw/source/core/uibase/uno/unomod.cxx                      |    1 
 sw/source/core/uibase/uno/unotxdoc.cxx                    |    4 
 sw/source/core/uibase/uno/unotxvw.cxx                     |    1 
 sw/source/core/uibase/wrtsh/wrtsh1.cxx                    |    3 
 sw/source/core/unocore/unostyle.cxx                       |    1 
 sw/source/core/view/printdata.cxx                         |    1 
 sw/source/core/view/viewsh.cxx                            |    8 
 sw/source/core/view/vnew.cxx                              |    4 
 sw/source/core/view/vprint.cxx                            |    1 
 sw/source/filter/ascii/parasc.cxx                         |    1 
 sw/source/filter/basflt/shellio.cxx                       |   14 -
 sw/source/filter/html/css1atr.cxx                         |    5 
 sw/source/filter/html/swhtml.cxx                          |   11 
 sw/source/filter/html/wrthtml.cxx                         |   15 -
 sw/source/filter/writer/writer.cxx                        |    5 
 sw/source/filter/ww8/docxattributeoutput.cxx              |    3 
 sw/source/filter/ww8/docxexport.cxx                       |    5 
 sw/source/filter/ww8/wrtw8esh.cxx                         |    1 
 sw/source/filter/ww8/wrtw8nds.cxx                         |    5 
 sw/source/filter/ww8/wrtww8.cxx                           |   12 
 sw/source/filter/ww8/ww8atr.cxx                           |    5 
 sw/source/filter/ww8/ww8par.cxx                           |   64 ++--
 sw/source/filter/ww8/ww8par6.cxx                          |    3 
 sw/source/filter/xml/swxml.cxx                            |    5 
 sw/source/filter/xml/xmlexp.cxx                           |    9 
 sw/source/filter/xml/xmlfonte.cxx                         |    6 
 sw/source/filter/xml/xmlimp.cxx                           |    4 
 sw/source/ui/config/optpage.cxx                           |    5 
 sw/source/ui/dialog/ascfldlg.cxx                          |    1 
 101 files changed, 413 insertions(+), 362 deletions(-)

New commits:
commit 3aef819a4c9bb50f3ed8b9df534175f413fdce89
Author: Valentin Kettner <vakevk+libreoffice at gmail.com>
Date:   Mon May 26 15:15:18 2014 +0200

    Removed IDocumentDeviceAccess.hxx include in SwDoc.hxx
    
    Because it is not needed there anymore in that class.
    I added it as an include in all files that need it.
    
    Change-Id: I3eb2e1da9d153017968b286e1a0250f145ca7cfe

diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index 7922f02..87e05ed 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -22,8 +22,6 @@
 // SwDoc interfaces
 #include <IInterface.hxx>
 #include <IDocumentMarkAccess.hxx>
-#include <IDocumentDeviceAccess.hxx> //from this class's persective this isnt even necessary anymore but I encountered at least
-                                     //one different class that relies on this being included here. What to do?
 #include <IDocumentRedlineAccess.hxx>
 #include <IDocumentLinksAdministration.hxx>
 #include <IDocumentFieldsAccess.hxx>
diff --git a/sw/source/core/doc/docdraw.cxx b/sw/source/core/doc/docdraw.cxx
index 8489e37..bce20c1 100644
--- a/sw/source/core/doc/docdraw.cxx
+++ b/sw/source/core/doc/docdraw.cxx
@@ -40,6 +40,7 @@
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <docsh.hxx>
 #include <rootfrm.hxx>
 #include <poolfmt.hxx>
diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx
index 00d627f..e5666cb 100644
--- a/sw/source/core/doc/notxtfrm.cxx
+++ b/sw/source/core/doc/notxtfrm.cxx
@@ -40,6 +40,7 @@
 #include <fesh.hxx>
 #include <doc.hxx>
 #include <IDocumentSettingAccess.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <flyfrm.hxx>
 #include <flyfrms.hxx>
 #include <frmtool.hxx>
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index e999607..3133080 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -69,6 +69,7 @@
 #include <svx/sdr/contact/viewobjectcontact.hxx>
 #include <svx/sdr/contact/viewcontact.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 
 #include <ndole.hxx>
 #include <svx/charthelper.hxx>
diff --git a/sw/source/core/text/frmcrsr.cxx b/sw/source/core/text/frmcrsr.cxx
index 19dfd62..b5f053c 100644
--- a/sw/source/core/text/frmcrsr.cxx
+++ b/sw/source/core/text/frmcrsr.cxx
@@ -33,6 +33,7 @@
 #include <editeng/lspcitem.hxx>
 #include <pormulti.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <sortedobjs.hxx>
 
 #include <unicode/ubidi.h>
diff --git a/sw/source/core/text/itratr.cxx b/sw/source/core/text/itratr.cxx
index 9fe54f1..a1bfaa6 100644
--- a/sw/source/core/text/itratr.cxx
+++ b/sw/source/core/text/itratr.cxx
@@ -35,6 +35,7 @@
 #include <fmtfld.hxx>
 #include <doc.hxx>
 #include <IDocumentSettingAccess.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <viewsh.hxx>
 #include <rootfrm.hxx>
 #include <docary.hxx>
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index 4414923..c76231e 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -32,6 +32,7 @@
 #include <SwSmartTagMgr.hxx>
 #include <doc.hxx>
 #include <IDocumentSettingAccess.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include "rootfrm.hxx"
 #include <pagefrm.hxx>
 #include <viewsh.hxx>
diff --git a/sw/source/core/uibase/app/docsh.cxx b/sw/source/core/uibase/app/docsh.cxx
index a5da17a..92740f7 100644
--- a/sw/source/core/uibase/app/docsh.cxx
+++ b/sw/source/core/uibase/app/docsh.cxx
@@ -70,6 +70,7 @@
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <docstat.hxx>
 #include <pagedesc.hxx>
 #include <pview.hxx>
diff --git a/sw/source/core/uibase/app/docsh2.cxx b/sw/source/core/uibase/app/docsh2.cxx
index 508db88..2655ee3 100644
--- a/sw/source/core/uibase/app/docsh2.cxx
+++ b/sw/source/core/uibase/app/docsh2.cxx
@@ -75,6 +75,7 @@
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <pagedesc.hxx>
 #include <shellio.hxx>
 #include <pview.hxx>
diff --git a/sw/source/core/uibase/app/docshini.cxx b/sw/source/core/uibase/app/docshini.cxx
index 5c25387..919664d 100644
--- a/sw/source/core/uibase/app/docshini.cxx
+++ b/sw/source/core/uibase/app/docshini.cxx
@@ -60,6 +60,7 @@
 #include <swmodule.hxx>
 #include <doc.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <docfac.hxx>
 #include <docstyle.hxx>
 #include <shellio.hxx>
diff --git a/sw/source/core/uibase/app/docst.cxx b/sw/source/core/uibase/app/docst.cxx
index 396cd17..986b80a 100644
--- a/sw/source/core/uibase/app/docst.cxx
+++ b/sw/source/core/uibase/app/docst.cxx
@@ -58,6 +58,7 @@
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include "swstyle.h"
 #include "frmfmt.hxx"
 #include "charfmt.hxx"
diff --git a/sw/source/core/uibase/dialog/SwSpellDialogChildWindow.cxx b/sw/source/core/uibase/dialog/SwSpellDialogChildWindow.cxx
index a7c5601..aa32303 100644
--- a/sw/source/core/uibase/dialog/SwSpellDialogChildWindow.cxx
+++ b/sw/source/core/uibase/dialog/SwSpellDialogChildWindow.cxx
@@ -37,6 +37,7 @@
 #include <unotools/linguprops.hxx>
 #include <unotools/lingucfg.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <docsh.hxx>
 #include <docary.hxx>
 #include <frmfmt.hxx>
diff --git a/sw/source/core/uibase/dochdl/swdtflvr.cxx b/sw/source/core/uibase/dochdl/swdtflvr.cxx
index ca778e2..fc4ac6b 100644
--- a/sw/source/core/uibase/dochdl/swdtflvr.cxx
+++ b/sw/source/core/uibase/dochdl/swdtflvr.cxx
@@ -80,6 +80,7 @@
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <pagedesc.hxx>
 #include <IMark.hxx>
 #include <docary.hxx>
diff --git a/sw/source/core/uibase/lingu/sdrhhcwrap.cxx b/sw/source/core/uibase/lingu/sdrhhcwrap.cxx
index 92b3b56..b3e7da9 100644
--- a/sw/source/core/uibase/lingu/sdrhhcwrap.cxx
+++ b/sw/source/core/uibase/lingu/sdrhhcwrap.cxx
@@ -39,6 +39,7 @@
 #include <view.hxx>
 #include <dcontact.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <docary.hxx>
 #include <edtwin.hxx>
 
diff --git a/sw/source/core/uibase/misc/glshell.cxx b/sw/source/core/uibase/misc/glshell.cxx
index 22a5884..6149584 100644
--- a/sw/source/core/uibase/misc/glshell.cxx
+++ b/sw/source/core/uibase/misc/glshell.cxx
@@ -38,6 +38,7 @@
 #include <glshell.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <glosdoc.hxx>
 #include <shellio.hxx>
 #include <initui.hxx>
diff --git a/sw/source/core/uibase/uiview/pview.cxx b/sw/source/core/uibase/uiview/pview.cxx
index 4b110b2..754de84 100644
--- a/sw/source/core/uibase/uiview/pview.cxx
+++ b/sw/source/core/uibase/uiview/pview.cxx
@@ -54,6 +54,7 @@
 #include <docsh.hxx>
 #include <viewopt.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <pview.hxx>
 #include <view.hxx>
 #include <textsh.hxx>
diff --git a/sw/source/core/uibase/uiview/srcview.cxx b/sw/source/core/uibase/uiview/srcview.cxx
index 37ac826..a0796b0 100644
--- a/sw/source/core/uibase/uiview/srcview.cxx
+++ b/sw/source/core/uibase/uiview/srcview.cxx
@@ -66,6 +66,7 @@
 #include <srcview.hxx>
 #include <viewfunc.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <sfx2/msg.hxx>
 #include <shellio.hxx>
 
diff --git a/sw/source/core/uibase/uiview/viewdraw.cxx b/sw/source/core/uibase/uiview/viewdraw.cxx
index c2c6b0f..d282eb4 100644
--- a/sw/source/core/uibase/uiview/viewdraw.cxx
+++ b/sw/source/core/uibase/uiview/viewdraw.cxx
@@ -30,6 +30,7 @@
 #include <svx/dataaccessdescriptor.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <editeng/langitem.hxx>
 #include <linguistic/lngprops.hxx>
 #include <editeng/unolingu.hxx>
diff --git a/sw/source/core/uibase/uiview/viewprt.cxx b/sw/source/core/uibase/uiview/viewprt.cxx
index aa2abd7..f821c17 100644
--- a/sw/source/core/uibase/uiview/viewprt.cxx
+++ b/sw/source/core/uibase/uiview/viewprt.cxx
@@ -54,6 +54,7 @@
 #include <wview.hxx>
 #include <doc.hxx>
 #include <fldbas.hxx>
+#include <IDocumentDeviceAccess.hxx>
 
 #include <globals.hrc>
 #include <view.hrc>
diff --git a/sw/source/core/uibase/uno/SwXDocumentSettings.cxx b/sw/source/core/uibase/uno/SwXDocumentSettings.cxx
index 92b4a51..10371b6 100644
--- a/sw/source/core/uibase/uno/SwXDocumentSettings.cxx
+++ b/sw/source/core/uibase/uno/SwXDocumentSettings.cxx
@@ -27,6 +27,7 @@
 #include <com/sun/star/document/PrinterIndependentLayout.hpp>
 #include <doc.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <docsh.hxx>
 #include <fldupde.hxx>
 #include <linkenum.hxx>
diff --git a/sw/source/core/uibase/uno/unomod.cxx b/sw/source/core/uibase/uno/unomod.cxx
index 3585638..07d4621 100644
--- a/sw/source/core/uibase/uno/unomod.cxx
+++ b/sw/source/core/uibase/uno/unomod.cxx
@@ -35,6 +35,7 @@
 #include <vcl/svapp.hxx>
 #include <com/sun/star/text/NotePrintMode.hpp>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <com/sun/star/beans/PropertyAttribute.hpp>
 #include <com/sun/star/view/DocumentZoomType.hpp>
 #include <comphelper/ChainablePropertySetInfo.hxx>
diff --git a/sw/source/core/uibase/uno/unotxdoc.cxx b/sw/source/core/uibase/uno/unotxdoc.cxx
index ab98998..b7d1c64 100644
--- a/sw/source/core/uibase/uno/unotxdoc.cxx
+++ b/sw/source/core/uibase/uno/unotxdoc.cxx
@@ -95,6 +95,7 @@
 #include <SwXDocumentSettings.hxx>
 #include <doc.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <editeng/forbiddencharacterstable.hxx>
 #include <svl/zforlist.hxx>
 #include <drawdoc.hxx>
diff --git a/sw/source/core/uibase/uno/unotxvw.cxx b/sw/source/core/uibase/uno/unotxvw.cxx
index 13c7df0..a21ae75 100644
--- a/sw/source/core/uibase/uno/unotxvw.cxx
+++ b/sw/source/core/uibase/uno/unotxvw.cxx
@@ -25,6 +25,7 @@
 #include <docsh.hxx>
 #include <rubylist.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <unotxvw.hxx>
 #include <unodispatch.hxx>
 #include <unomap.hxx>
diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index b067fc5..3537d7b 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -37,6 +37,7 @@
 #include <pagedesc.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <docary.hxx>
 #include <charfmt.hxx>
 #include <cmdid.h>
diff --git a/sw/source/core/view/printdata.cxx b/sw/source/core/view/printdata.cxx
index 75334f6..68e85ed 100644
--- a/sw/source/core/view/printdata.cxx
+++ b/sw/source/core/view/printdata.cxx
@@ -21,6 +21,7 @@
 
 #include <globals.hrc>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <unotxdoc.hxx>
 #include <wdocsh.hxx>
 #include <viewsh.hxx>
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 7f8fe1f..bfaa764 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -31,6 +31,7 @@
 #include <swmodule.hxx>
 #include <fesh.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <rootfrm.hxx>
 #include <pagefrm.hxx>
 #include <cntfrm.hxx>
diff --git a/sw/source/core/view/vnew.cxx b/sw/source/core/view/vnew.cxx
index 1620e0f..af0a0f6 100644
--- a/sw/source/core/view/vnew.cxx
+++ b/sw/source/core/view/vnew.cxx
@@ -21,6 +21,7 @@
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <docsh.hxx>
 #include <viewsh.hxx>
 #include <rootfrm.hxx>
diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx
index b91e15a..3a548f5 100644
--- a/sw/source/core/view/vprint.cxx
+++ b/sw/source/core/view/vprint.cxx
@@ -46,6 +46,7 @@
 #include <cntfrm.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <wdocsh.hxx>
 #include <fesh.hxx>
 #include <pam.hxx>
diff --git a/sw/source/filter/ascii/parasc.cxx b/sw/source/filter/ascii/parasc.cxx
index c670519..21b3c83 100644
--- a/sw/source/filter/ascii/parasc.cxx
+++ b/sw/source/filter/ascii/parasc.cxx
@@ -28,6 +28,7 @@
 #include <editeng/scripttypeitem.hxx>
 #include <shellio.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <swtypes.hxx>
 #include <ndtxt.hxx>
 #include <pam.hxx>
diff --git a/sw/source/filter/basflt/shellio.cxx b/sw/source/filter/basflt/shellio.cxx
index 52b8a0d..86f45c3 100644
--- a/sw/source/filter/basflt/shellio.cxx
+++ b/sw/source/filter/basflt/shellio.cxx
@@ -38,6 +38,7 @@
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <pam.hxx>
 #include <editsh.hxx>
 #include <undobj.hxx>
diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
index 9b13528..e4ad887 100644
--- a/sw/source/filter/xml/xmlimp.cxx
+++ b/sw/source/filter/xml/xmlimp.cxx
@@ -35,6 +35,7 @@
 #include <xmloff/ProgressBarHelper.hxx>
 #include <doc.hxx>
 #include <DocumentSettingManager.hxx>
+#include <IDocumentDeviceAccess.hxx>
 #include <unofreg.hxx>
 #include <TextCursorHelper.hxx>
 #include <unotext.hxx>
diff --git a/sw/source/ui/dialog/ascfldlg.cxx b/sw/source/ui/dialog/ascfldlg.cxx
index 576497b..66b86ed 100644
--- a/sw/source/ui/dialog/ascfldlg.cxx
+++ b/sw/source/ui/dialog/ascfldlg.cxx
@@ -36,6 +36,7 @@
 #include <shellio.hxx>
 #include <docsh.hxx>
 #include <doc.hxx>
+#include <IDocumentDeviceAccess.hxx>
 
 #include <dialog.hrc>
 
commit 7eaed070558a1e9acc08844cb00e71949165c02b
Author: Valentin Kettner <vakevk+libreoffice at gmail.com>
Date:   Sun May 25 19:43:26 2014 +0200

    Removed IDocumentSettingAccess.hxx include in SwDoc.hxx
    
    Because it is not needed there anymore with IDocumentSettingManager.
    
    Change-Id: Iad5e0a03f2628c9d26698d23e691b3e6228eee0b

diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index 49a3554..7922f02 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -21,7 +21,6 @@
 
 // SwDoc interfaces
 #include <IInterface.hxx>
-#include <IDocumentSettingAccess.hxx>
 #include <IDocumentMarkAccess.hxx>
 #include <IDocumentDeviceAccess.hxx> //from this class's persective this isnt even necessary anymore but I encountered at least
                                      //one different class that relies on this being included here. What to do?
diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx
index 0b0ba92..00d627f 100644
--- a/sw/source/core/doc/notxtfrm.cxx
+++ b/sw/source/core/doc/notxtfrm.cxx
@@ -39,6 +39,7 @@
 #include <swrect.hxx>
 #include <fesh.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <flyfrm.hxx>
 #include <flyfrms.hxx>
 #include <frmtool.hxx>
diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx
index 71e0569..e890b69 100644
--- a/sw/source/core/doc/tblrwcl.cxx
+++ b/sw/source/core/doc/tblrwcl.cxx
@@ -29,6 +29,7 @@
 #include <fmtfsize.hxx>
 #include <fmtornt.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <cntfrm.hxx>
 #include <tabfrm.hxx>
 #include <frmtool.hxx>
diff --git a/sw/source/core/edit/edglbldc.cxx b/sw/source/core/edit/edglbldc.cxx
index b0f259a..a3eaeb2 100644
--- a/sw/source/core/edit/edglbldc.cxx
+++ b/sw/source/core/edit/edglbldc.cxx
@@ -19,6 +19,7 @@
 
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <editsh.hxx>
 #include <pam.hxx>
 #include <ndtxt.hxx>
diff --git a/sw/source/core/edit/editsh.cxx b/sw/source/core/edit/editsh.cxx
index 53a086d..c536aab 100644
--- a/sw/source/core/edit/editsh.cxx
+++ b/sw/source/core/edit/editsh.cxx
@@ -31,6 +31,7 @@
 #include <charfmt.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <docary.hxx>
 #include <editsh.hxx>
 #include <frame.hxx>
diff --git a/sw/source/core/fields/ddetbl.cxx b/sw/source/core/fields/ddetbl.cxx
index 99a5d6d..e52463e 100644
--- a/sw/source/core/fields/ddetbl.cxx
+++ b/sw/source/core/fields/ddetbl.cxx
@@ -20,6 +20,7 @@
 #include <comphelper/string.hxx>
 #include <frmfmt.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <index.hxx>
 #include <ndtxt.hxx>
 #include <swtable.hxx>
diff --git a/sw/source/core/layout/anchoredobject.cxx b/sw/source/core/layout/anchoredobject.cxx
index b4a0cd8..b2addec 100644
--- a/sw/source/core/layout/anchoredobject.cxx
+++ b/sw/source/core/layout/anchoredobject.cxx
@@ -20,6 +20,7 @@
 #include <txtfrm.hxx>
 #include <fmtornt.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <fmtsrnd.hxx>
 #include <dcontact.hxx>
 #include <editeng/ulspitem.hxx>
diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
index b06a2b7..28671ea 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -49,6 +49,7 @@
 #include <layouter.hxx>
 #include <fmtfollowtextflow.hxx>
 #include <switerator.hxx>
+#include <IDocumentSettingAccess.hxx>
 
 bool SwFlowFrm::m_bMoveBwdJump = false;
 
diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx
index 6c541c7..e5d128c 100644
--- a/sw/source/core/layout/fly.cxx
+++ b/sw/source/core/layout/fly.cxx
@@ -57,6 +57,7 @@
 #include "sectfrm.hxx"
 #include <vcl/svapp.hxx>
 #include "switerator.hxx"
+#include <IDocumentSettingAccess.hxx>
 
 using namespace ::com::sun::star;
 
diff --git a/sw/source/core/layout/flycnt.cxx b/sw/source/core/layout/flycnt.cxx
index 4926b6d..45da584 100644
--- a/sw/source/core/layout/flycnt.cxx
+++ b/sw/source/core/layout/flycnt.cxx
@@ -22,6 +22,7 @@
 #include "txtfrm.hxx"
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include "frmtool.hxx"
 #include "dflyobj.hxx"
 #include "hints.hxx"
diff --git a/sw/source/core/layout/flyincnt.cxx b/sw/source/core/layout/flyincnt.cxx
index 0929a8f..422e7d7 100644
--- a/sw/source/core/layout/flyincnt.cxx
+++ b/sw/source/core/layout/flyincnt.cxx
@@ -24,6 +24,7 @@
 #include "txtfrm.hxx"
 #include "flyfrms.hxx"
 #include <dflyobj.hxx>
+#include <IDocumentSettingAccess.hxx>
 
 SwFlyInCntFrm::SwFlyInCntFrm( SwFlyFrmFmt *pFmt, SwFrm* pSib, SwFrm *pAnch ) :
     SwFlyFrm( pFmt, pSib, pAnch )
diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx
index 3d0f269..15a694b 100644
--- a/sw/source/core/layout/flylay.cxx
+++ b/sw/source/core/layout/flylay.cxx
@@ -38,6 +38,7 @@
 #include <environmentofanchoredobject.hxx>
 #include <sortedobjs.hxx>
 #include <viewimp.hxx>
+#include <IDocumentSettingAccess.hxx>
 
 using namespace ::com::sun::star;
 
diff --git a/sw/source/core/layout/newfrm.cxx b/sw/source/core/layout/newfrm.cxx
index 0d5bd85..ee10a0d 100644
--- a/sw/source/core/layout/newfrm.cxx
+++ b/sw/source/core/layout/newfrm.cxx
@@ -34,6 +34,7 @@
 #include <hints.hxx>
 #include <viewopt.hxx>
 #include <set>
+#include <IDocumentSettingAccess.hxx>
 
 SwLayVout     *SwRootFrm::pVout = 0;
 bool           SwRootFrm::bInPaint = false;
diff --git a/sw/source/core/layout/objectformatter.cxx b/sw/source/core/layout/objectformatter.cxx
index ea45b83..c8af458 100644
--- a/sw/source/core/layout/objectformatter.cxx
+++ b/sw/source/core/layout/objectformatter.cxx
@@ -27,6 +27,7 @@
 #include <layact.hxx>
 #include <fmtanchr.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 
 #include <vector>
 
diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx
index f1307bc..ae3a7ea 100644
--- a/sw/source/core/layout/pagechg.cxx
+++ b/sw/source/core/layout/pagechg.cxx
@@ -44,6 +44,7 @@
 #include "cntfrm.hxx"
 #include "flyfrm.hxx"
 #include "doc.hxx"
+#include <IDocumentSettingAccess.hxx>
 #include "fesh.hxx"
 #include "dview.hxx"
 #include "dflyobj.hxx"
diff --git a/sw/source/core/layout/sectfrm.cxx b/sw/source/core/layout/sectfrm.cxx
index 8991fd4..b09e7c0 100644
--- a/sw/source/core/layout/sectfrm.cxx
+++ b/sw/source/core/layout/sectfrm.cxx
@@ -27,6 +27,7 @@
 #include "section.hxx"
 #include "frmtool.hxx"
 #include "doc.hxx"
+#include <IDocumentSettingAccess.hxx>
 #include "cntfrm.hxx"
 #include "rootfrm.hxx"
 #include "pagefrm.hxx"
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index bbab6c3..772caa2 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -36,6 +36,7 @@
 #include <viewimp.hxx>
 #include "viewopt.hxx"
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <fesh.hxx>
 #include <docsh.hxx>
 #include <flyfrm.hxx>
diff --git a/sw/source/core/text/itratr.cxx b/sw/source/core/text/itratr.cxx
index 9493250..9fe54f1 100644
--- a/sw/source/core/text/itratr.cxx
+++ b/sw/source/core/text/itratr.cxx
@@ -34,6 +34,7 @@
 #include <frmfmt.hxx>
 #include <fmtfld.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <viewsh.hxx>
 #include <rootfrm.hxx>
 #include <docary.hxx>
diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
index ac3afd1..3d014a1 100644
--- a/sw/source/core/text/itrform2.cxx
+++ b/sw/source/core/text/itrform2.cxx
@@ -55,6 +55,7 @@
 #include <pormulti.hxx>
 #include <unotools/charclass.hxx>
 #include <xmloff/odffields.hxx>
+#include <IDocumentSettingAccess.hxx>
 
 #include <vector>
 
diff --git a/sw/source/core/text/porfld.cxx b/sw/source/core/text/porfld.cxx
index 5c946a7..71fc8e7 100644
--- a/sw/source/core/text/porfld.cxx
+++ b/sw/source/core/text/porfld.cxx
@@ -34,6 +34,7 @@
 #include <viewsh.hxx>
 #include <docsh.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include "rootfrm.hxx"
 #include <breakit.hxx>
 #include <porrst.hxx>
diff --git a/sw/source/core/text/txtfld.cxx b/sw/source/core/text/txtfld.cxx
index 4b9db82..7ff9e62 100644
--- a/sw/source/core/text/txtfld.cxx
+++ b/sw/source/core/text/txtfld.cxx
@@ -50,6 +50,7 @@
 #include "fmtmeta.hxx"
 #include "reffld.hxx"
 #include "flddat.hxx"
+#include <IDocumentSettingAccess.hxx>
 
 static bool lcl_IsInBody( SwFrm *pFrm )
 {
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index ab0d613..4414923 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -31,6 +31,7 @@
 #include <swmodule.hxx>
 #include <SwSmartTagMgr.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include "rootfrm.hxx"
 #include <pagefrm.hxx>
 #include <viewsh.hxx>
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 386e4c5..0ad4c8f 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -51,6 +51,7 @@
 #include <ndtxt.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <docary.hxx>
 #include <pam.hxx>
 #include <fldbas.hxx>
diff --git a/sw/source/core/uibase/dbui/dbmgr.cxx b/sw/source/core/uibase/dbui/dbmgr.cxx
index 4574a91..11cfb94 100644
--- a/sw/source/core/uibase/dbui/dbmgr.cxx
+++ b/sw/source/core/uibase/dbui/dbmgr.cxx
@@ -77,6 +77,7 @@
 #include <dbui.hxx>
 #include <dbmgr.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <swwait.hxx>
 #include <swunohelper.hxx>
 #include <dbui.hrc>
diff --git a/sw/source/core/uibase/docvw/PostItMgr.cxx b/sw/source/core/uibase/docvw/PostItMgr.cxx
index d51ebff..e370f79 100644
--- a/sw/source/core/uibase/docvw/PostItMgr.cxx
+++ b/sw/source/core/uibase/docvw/PostItMgr.cxx
@@ -40,6 +40,7 @@
 #include <docsh.hxx>
 #include <wrtsh.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <fldbas.hxx>
 #include <fmtfld.hxx>
 #include <docufld.hxx>
diff --git a/sw/source/core/uibase/uiview/view2.cxx b/sw/source/core/uibase/uiview/view2.cxx
index eac7a19..2976b7d 100644
--- a/sw/source/core/uibase/uiview/view2.cxx
+++ b/sw/source/core/uibase/uiview/view2.cxx
@@ -79,6 +79,7 @@
 #include <docsh.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <wrtsh.hxx>
 #include <viewopt.hxx>
 #include <basesh.hxx>
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index 0e0b141..673e927 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -64,6 +64,7 @@
 #include <fmtcntnt.hxx>
 #include <ndindex.hxx>
 #include <doc.hxx>
+#include <IDocumentSettingAccess.hxx>
 #include <docary.hxx>
 #include <pam.hxx>
 #include <swrect.hxx>
commit 761f5ecc651e8bd60cdf0d81dab8aa79f4490e6e
Author: Valentin Kettner <vakevk+libreoffice at gmail.com>
Date:   Sun May 25 14:10:13 2014 +0200

    Removed DocumentSettingManager methods from SwDoc.
    
    And moved all calls to those methods to GetDocumentSettingManager().
    
    Change-Id: I9b6cc8c3aa9b57bbc0c39f39499dfb4f5f254ad9

diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index ef9671b..49a3554 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -248,7 +248,6 @@ void StartGrammarChecking( SwDoc &rDoc );
 // Represents the model of a Writer document.
 class SW_DLLPUBLIC SwDoc :
     public IInterface,
-    public IDocumentSettingAccess,
     public IDocumentRedlineAccess,
     public IDocumentLinksAdministration,
     public IDocumentFieldsAccess,
@@ -592,26 +591,10 @@ public:
     virtual sal_Int32 getReferenceCount() const SAL_OVERRIDE;
 
     // IDocumentSettingAccess
-    virtual bool get(/*[in]*/ DocumentSettingId id) const SAL_OVERRIDE;
-    virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) SAL_OVERRIDE;
-    virtual const com::sun::star::i18n::ForbiddenCharacters* getForbiddenCharacters(/*[in]*/ sal_uInt16 nLang, /*[in]*/ bool bLocaleData ) const SAL_OVERRIDE;
-    virtual void setForbiddenCharacters(/*[in]*/ sal_uInt16 nLang, /*[in]*/ const com::sun::star::i18n::ForbiddenCharacters& rForbiddenCharacters ) SAL_OVERRIDE;
-    virtual rtl::Reference<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() SAL_OVERRIDE;
-    virtual const rtl::Reference<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const SAL_OVERRIDE;
-    virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const SAL_OVERRIDE;
-    virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode ) SAL_OVERRIDE;
-    virtual SwFldUpdateFlags getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const SAL_OVERRIDE;
-    virtual void setFieldUpdateFlags( /*[in]*/ SwFldUpdateFlags eMode ) SAL_OVERRIDE;
-    virtual SwCharCompressType getCharacterCompressionType() const SAL_OVERRIDE;
-    virtual void setCharacterCompressionType( /*[in]*/SwCharCompressType nType ) SAL_OVERRIDE;
     virtual sal_uInt32 getRsid() const;
     virtual void setRsid( sal_uInt32 nVal );
     virtual sal_uInt32 getRsidRoot() const;
     virtual void setRsidRoot( sal_uInt32 nVal );
-    virtual sal_uInt32 Getn32DummyCompatabilityOptions1() const SAL_OVERRIDE;
-    virtual void Setn32DummyCompatabilityOptions1( const sal_uInt32 CompatabilityOptions1 ) SAL_OVERRIDE;
-    virtual sal_uInt32 Getn32DummyCompatabilityOptions2() const SAL_OVERRIDE;
-    virtual void Setn32DummyCompatabilityOptions2( const sal_uInt32 CompatabilityOptions2 ) SAL_OVERRIDE;
 
     // IDocumentDeviceAccess
     IDocumentDeviceAccess const & getIDocumentDeviceAccess() const;
diff --git a/sw/source/core/attr/format.cxx b/sw/source/core/attr/format.cxx
index c0ca4b5..377c125 100644
--- a/sw/source/core/attr/format.cxx
+++ b/sw/source/core/attr/format.cxx
@@ -18,6 +18,7 @@
  */
 
 #include <doc.hxx>
+#include <DocumentSettingManager.hxx> //For SwFmt::getIDocumentSettingAccess()
 #include <fmtcolfunc.hxx>
 #include <frame.hxx>
 #include <format.hxx>
@@ -753,7 +754,7 @@ bool SwFmt::IsShadowTransparent() const
 /*
  * Document Interface Access
  */
-const IDocumentSettingAccess* SwFmt::getIDocumentSettingAccess() const { return GetDoc(); }
+const IDocumentSettingAccess* SwFmt::getIDocumentSettingAccess() const { return & GetDoc()->GetDocumentSettingManager(); }
 const IDocumentDrawModelAccess* SwFmt::getIDocumentDrawModelAccess() const { return GetDoc(); }
 IDocumentDrawModelAccess* SwFmt::getIDocumentDrawModelAccess() { return GetDoc(); }
 const IDocumentLayoutAccess* SwFmt::getIDocumentLayoutAccess() const { return GetDoc(); }
diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx
index 14cdadc..36c0aa2 100644
--- a/sw/source/core/crsr/pam.cxx
+++ b/sw/source/core/crsr/pam.cxx
@@ -38,6 +38,7 @@
 #include <ndtxt.hxx>
 
 #include <IMark.hxx>
+#include <DocumentSettingManager.hxx>
 #include <hints.hxx>
 #include <xmloff/odffields.hxx>
 
@@ -701,7 +702,7 @@ bool SwPaM::HasReadonlySel( bool bFormView, bool bAnnotationMode ) const
             bool bAtStartA = pA != NULL && pA->GetMarkStart() == *GetPoint();
             bool bAtStartB = pB != NULL && pB->GetMarkStart() == *GetMark();
             bRet = ( pA != pB ) || bAtStartA || bAtStartB;
-            bool bProtectForm = pDoc->get( IDocumentSettingAccess::PROTECT_FORM );
+            bool bProtectForm = pDoc->GetDocumentSettingManager().get( IDocumentSettingAccess::PROTECT_FORM );
             if ( bProtectForm )
                 bRet |= ( pA == NULL || pB == NULL );
         }
diff --git a/sw/source/core/doc/DocumentDeviceManager.cxx b/sw/source/core/doc/DocumentDeviceManager.cxx
index 7ca4fbd..524b231 100644
--- a/sw/source/core/doc/DocumentDeviceManager.cxx
+++ b/sw/source/core/doc/DocumentDeviceManager.cxx
@@ -21,6 +21,7 @@
 
 #include <IDocumentDeviceAccess.hxx>
 #include <doc.hxx>
+#include <DocumentSettingManager.hxx>
 #include <sfx2/printer.hxx>
 #include <vcl/virdev.hxx>
 #include <vcl/outdev.hxx>
@@ -76,14 +77,14 @@ void DocumentDeviceManager::setPrinter(/*[in]*/ SfxPrinter *pP,/*[in]*/ bool bDe
              mpPrt->SetMapMode( aMapMode );
         }
 
-        if ( m_rSwdoc.GetDrawModel() && !m_rSwdoc.get( IDocumentSettingAccess::USE_VIRTUAL_DEVICE ) )
+        if ( m_rSwdoc.GetDrawModel() && !m_rSwdoc.GetDocumentSettingManager().get( IDocumentSettingAccess::USE_VIRTUAL_DEVICE ) )
             m_rSwdoc.GetDrawModel()->SetRefDevice( mpPrt );
     }
 
     if ( bCallPrtDataChanged &&
          // #i41075# Do not call PrtDataChanged() if we do not
          // use the printer for formatting:
-         !m_rSwdoc.get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
+         !m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
         PrtDataChanged();
 }
 
@@ -106,7 +107,7 @@ void DocumentDeviceManager::setVirtualDevice(/*[in]*/ VirtualDevice* pVd,/*[in]*
             delete mpVirDev;
         mpVirDev = pVd;
 
-        if ( m_rSwdoc.GetDrawModel() && m_rSwdoc.get( IDocumentSettingAccess::USE_VIRTUAL_DEVICE ) )
+        if ( m_rSwdoc.GetDrawModel() && m_rSwdoc.GetDocumentSettingManager().get( IDocumentSettingAccess::USE_VIRTUAL_DEVICE ) )
             m_rSwdoc.GetDrawModel()->SetRefDevice( mpVirDev );
     }
 }
@@ -114,7 +115,7 @@ void DocumentDeviceManager::setVirtualDevice(/*[in]*/ VirtualDevice* pVd,/*[in]*
 OutputDevice* DocumentDeviceManager::getReferenceDevice(/*[in]*/ bool bCreate ) const
 {
     OutputDevice* pRet = 0;
-    if ( !m_rSwdoc.get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
+    if ( !m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
     {
         pRet = getPrinter( bCreate );
 
@@ -133,8 +134,8 @@ OutputDevice* DocumentDeviceManager::getReferenceDevice(/*[in]*/ bool bCreate )
 
 void DocumentDeviceManager::setReferenceDeviceType(/*[in]*/ bool bNewVirtual, /*[in]*/ bool bNewHiRes )
 {
-    if ( m_rSwdoc.get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) != bNewVirtual ||
-         m_rSwdoc.get(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE) != bNewHiRes )
+    if ( m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) != bNewVirtual ||
+         m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE) != bNewHiRes )
     {
         if ( bNewVirtual )
         {
@@ -160,8 +161,8 @@ void DocumentDeviceManager::setReferenceDeviceType(/*[in]*/ bool bNewVirtual, /*
                 m_rSwdoc.GetDrawModel()->SetRefDevice( pPrinter );
         }
 
-        m_rSwdoc.set(IDocumentSettingAccess::USE_VIRTUAL_DEVICE, bNewVirtual );
-        m_rSwdoc.set(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE, bNewHiRes );
+        m_rSwdoc.GetDocumentSettingManager().set(IDocumentSettingAccess::USE_VIRTUAL_DEVICE, bNewVirtual );
+        m_rSwdoc.GetDocumentSettingManager().set(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE, bNewHiRes );
         PrtDataChanged();
         m_rSwdoc.SetModified();
     }
@@ -209,7 +210,7 @@ void DocumentDeviceManager::setJobsetup(/*[in]*/ const JobSetup &rJobSetup )
             bDataChanged = true;
         }
     }
-    if ( bDataChanged && !m_rSwdoc.get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
+    if ( bDataChanged && !m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
         PrtDataChanged();
 }
 
@@ -257,7 +258,7 @@ VirtualDevice& DocumentDeviceManager::CreateVirtualDevice_() const
     pNewVir->SetReferenceDevice( VirtualDevice::REFDEV_MODE_MSO1 );
 
     // #i60945# External leading compatibility for unix systems.
-    if ( m_rSwdoc.get(IDocumentSettingAccess::UNIX_FORCE_ZERO_EXT_LEADING ) )
+    if ( m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::UNIX_FORCE_ZERO_EXT_LEADING ) )
         pNewVir->Compat_ZeroExtleadBug();
 
     MapMode aMapMode( pNewVir->GetMapMode() );
@@ -321,7 +322,7 @@ void DocumentDeviceManager::PrtDataChanged()
             bDraw = false;
             if( m_rSwdoc.GetDrawModel() )
             {
-                m_rSwdoc.GetDrawModel()->SetAddExtLeading( m_rSwdoc.get(IDocumentSettingAccess::ADD_EXT_LEADING) );
+                m_rSwdoc.GetDrawModel()->SetAddExtLeading( m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::ADD_EXT_LEADING) );
                 m_rSwdoc.GetDrawModel()->SetRefDevice( getReferenceDevice( false ) );
             }
 
@@ -340,7 +341,7 @@ void DocumentDeviceManager::PrtDataChanged()
     }
     if ( bDraw && m_rSwdoc.GetDrawModel() )
     {
-        const bool bTmpAddExtLeading = m_rSwdoc.get(IDocumentSettingAccess::ADD_EXT_LEADING);
+        const bool bTmpAddExtLeading = m_rSwdoc.GetDocumentSettingManager().get(IDocumentSettingAccess::ADD_EXT_LEADING);
         if ( bTmpAddExtLeading != m_rSwdoc.GetDrawModel()->IsAddExtLeading() )
             m_rSwdoc.GetDrawModel()->SetAddExtLeading( bTmpAddExtLeading );
 
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index c98a578..b02d0ae 100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -149,48 +149,6 @@ sal_Int32 SwDoc::getReferenceCount() const
 }
 
 /* IDocumentSettingAccess */
-bool SwDoc::get(/*[in]*/ DocumentSettingId id) const
-{
-    return m_pDocumentSettingManager->get(id);
-}
-
-void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value)
-{
-    m_pDocumentSettingManager->set(id,value);
-}
-
-const i18n::ForbiddenCharacters*
-    SwDoc::getForbiddenCharacters(/*[in]*/ sal_uInt16 nLang, /*[in]*/ bool bLocaleData ) const
-{
-    return m_pDocumentSettingManager->getForbiddenCharacters(nLang,bLocaleData);
-}
-
-void SwDoc::setForbiddenCharacters(/*[in]*/ sal_uInt16 nLang,
-                                   /*[in]*/ const com::sun::star::i18n::ForbiddenCharacters& rFChars )
-{
-    m_pDocumentSettingManager->setForbiddenCharacters(nLang,rFChars);
-}
-
-rtl::Reference<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable()
-{
-    return m_pDocumentSettingManager->getForbiddenCharacterTable();
-}
-
-const rtl::Reference<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable() const
-{
-    return m_pDocumentSettingManager->getForbiddenCharacterTable();
-}
-
-sal_uInt16 SwDoc::getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const
-{
-    return m_pDocumentSettingManager->getLinkUpdateMode(bGlobalSettings);
-}
-
-void SwDoc::setLinkUpdateMode( /*[in]*/sal_uInt16 eMode )
-{
-    m_pDocumentSettingManager->setLinkUpdateMode(eMode);
-}
-
 sal_uInt32 SwDoc::getRsid() const
 {
     return mnRsid;
@@ -223,45 +181,6 @@ void SwDoc::setRsidRoot( sal_uInt32 nVal )
     mnRsidRoot = nVal;
 }
 
-SwFldUpdateFlags SwDoc::getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const
-{
-    return m_pDocumentSettingManager->getFieldUpdateFlags(bGlobalSettings);
-}
-
-void SwDoc::setFieldUpdateFlags(/*[in]*/SwFldUpdateFlags eMode )
-{
-    m_pDocumentSettingManager->setFieldUpdateFlags(eMode);
-}
-
-SwCharCompressType SwDoc::getCharacterCompressionType() const
-{
-    return m_pDocumentSettingManager->getCharacterCompressionType();
-}
-
-void SwDoc::setCharacterCompressionType( /*[in]*/SwCharCompressType n )
-{
-    m_pDocumentSettingManager->setCharacterCompressionType(n);
-}
-
-sal_uInt32 SwDoc::Getn32DummyCompatabilityOptions1() const
-{
-    return GetDocumentSettingManager().Getn32DummyCompatabilityOptions1();
-}
-
-void SwDoc::Setn32DummyCompatabilityOptions1( const sal_uInt32 CompatabilityOptions1 )
-{
-    GetDocumentSettingManager().Setn32DummyCompatabilityOptions1( CompatabilityOptions1 );
-}
-
-sal_uInt32 SwDoc::Getn32DummyCompatabilityOptions2() const
-{
-     return GetDocumentSettingManager().Getn32DummyCompatabilityOptions2();
-}
-
-void SwDoc::Setn32DummyCompatabilityOptions2( const sal_uInt32 CompatabilityOptions2 )
-{
-    GetDocumentSettingManager().Setn32DummyCompatabilityOptions2( CompatabilityOptions2 );
-}
 
 // IDocumentDeviceAccess
 IDocumentDeviceAccess const & SwDoc::getIDocumentDeviceAccess() const
@@ -2112,17 +2031,17 @@ bool SwDoc::EmbedAllLinks()
 
 bool SwDoc::IsInsTblFormatNum() const
 {
-    return SW_MOD()->IsInsTblFormatNum(get(IDocumentSettingAccess::HTML_MODE));
+    return SW_MOD()->IsInsTblFormatNum(GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE));
 }
 
 bool SwDoc::IsInsTblChangeNumFormat() const
 {
-    return SW_MOD()->IsInsTblChangeNumFormat(get(IDocumentSettingAccess::HTML_MODE));
+    return SW_MOD()->IsInsTblChangeNumFormat(GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE));
 }
 
 bool SwDoc::IsInsTblAlignNum() const
 {
-    return SW_MOD()->IsInsTblAlignNum(get(IDocumentSettingAccess::HTML_MODE));
+    return SW_MOD()->IsInsTblAlignNum(GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE));
 }
 
 /// Set up the InsertDB as Undo table
diff --git a/sw/source/core/doc/docdraw.cxx b/sw/source/core/doc/docdraw.cxx
index 8b7e1ba..8489e37 100644
--- a/sw/source/core/doc/docdraw.cxx
+++ b/sw/source/core/doc/docdraw.cxx
@@ -39,6 +39,7 @@
 #include <swhints.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <docsh.hxx>
 #include <rootfrm.hxx>
 #include <poolfmt.hxx>
@@ -594,7 +595,7 @@ void SwDoc::InitDrawModel()
     // Set the LinkManager in the model so that linked graphics can be inserted.
     // The WinWord import needs it too.
     mpDrawModel->SetLinkManager( &GetLinkManager() );
-    mpDrawModel->SetAddExtLeading( get(IDocumentSettingAccess::ADD_EXT_LEADING) );
+    mpDrawModel->SetAddExtLeading( GetDocumentSettingManager().get(IDocumentSettingAccess::ADD_EXT_LEADING) );
 
     OutputDevice* pRefDev = getIDocumentDeviceAccess().getReferenceDevice( false );
     if ( pRefDev )
diff --git a/sw/source/core/doc/docglbl.cxx b/sw/source/core/doc/docglbl.cxx
index 5b1793f..d727d89 100644
--- a/sw/source/core/doc/docglbl.cxx
+++ b/sw/source/core/doc/docglbl.cxx
@@ -32,6 +32,7 @@
 #include <fmtanchr.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <docary.hxx>
 #include <pam.hxx>
 #include <ndtxt.hxx>
@@ -153,7 +154,7 @@ bool SwDoc::SplitDoc( sal_uInt16 eDocType, const OUString& rPath, bool bOutline,
     // document for every single one and replace linked sections (GlobalDoc) for links (HTML).
     // Finally, we save this document as a GlobalDoc/HTMLDoc.
     if( !mpDocShell || !mpDocShell->GetMedium() ||
-        ( SPLITDOC_TO_GLOBALDOC == eDocType && get(IDocumentSettingAccess::GLOBAL_DOCUMENT) ) )
+        ( SPLITDOC_TO_GLOBALDOC == eDocType && GetDocumentSettingManager().get(IDocumentSettingAccess::GLOBAL_DOCUMENT) ) )
         return false;
 
     sal_uInt16 nOutl = 0;
@@ -487,7 +488,7 @@ bool SwDoc::SplitDoc( sal_uInt16 eDocType, const OUString& rPath, bool bOutline,
     switch( eDocType )
     {
     case SPLITDOC_TO_HTML:
-        if( get(IDocumentSettingAccess::GLOBAL_DOCUMENT) )
+        if( GetDocumentSettingManager().get(IDocumentSettingAccess::GLOBAL_DOCUMENT) )
         {
             // save all remaining sections
             while( !GetSections().empty() )
@@ -500,8 +501,8 @@ bool SwDoc::SplitDoc( sal_uInt16 eDocType, const OUString& rPath, bool bOutline,
 
     default:
         // save the Globaldoc
-        set(IDocumentSettingAccess::GLOBAL_DOCUMENT, true);
-        set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, false);
+        GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT, true);
+        GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, false);
     }
 
     // The medium isn't locked after reopening the document.
diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index 58cff5c..791253c 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -62,6 +62,7 @@
 #include <ndole.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <rootfrm.hxx>
 #include <pagefrm.hxx>
 #include <cntfrm.hxx>
@@ -710,7 +711,7 @@ SwFlyFrmFmt* SwDoc::MakeFlySection( RndStdIds eAnchorType,
             pFrmFmt = GetFrmFmtFromPool( RES_POOLFRM_FRAME );
 
         sal_uInt16 nCollId = static_cast<sal_uInt16>(
-            get(IDocumentSettingAccess::HTML_MODE) ? RES_POOLCOLL_TEXT : RES_POOLCOLL_FRAME );
+            GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) ? RES_POOLCOLL_TEXT : RES_POOLCOLL_FRAME );
 
         /* If there is no adjust item in the paragraph style for the content node of the new fly section
            propagate an existing adjust item at the anchor to the new content node. */
@@ -1843,7 +1844,7 @@ IMPL_LINK( SwDoc, DoIdleJobs, Timer *, pTimer )
             }
         }
 
-        SwFldUpdateFlags nFldUpdFlag = getFieldUpdateFlags(true);
+        SwFldUpdateFlags nFldUpdFlag = GetDocumentSettingManager().getFieldUpdateFlags(true);
         if( ( AUTOUPD_FIELD_ONLY == nFldUpdFlag
                     || AUTOUPD_FIELD_AND_CHARTS == nFldUpdFlag ) &&
                 GetUpdtFlds().IsFieldsDirty()
diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
index 90f8eae..358aac4 100644
--- a/sw/source/core/doc/docnew.cxx
+++ b/sw/source/core/doc/docnew.cxx
@@ -314,7 +314,7 @@ SwDoc::SwDoc()
                                   OUTLINE_RULE );
     AddNumRule(mpOutlineRule);
     // Counting of phantoms depends on <IsOldNumbering()>
-    mpOutlineRule->SetCountPhantoms( !get(IDocumentSettingAccess::OLD_NUMBERING) );
+    mpOutlineRule->SetCountPhantoms( !GetDocumentSettingManager().get(IDocumentSettingAccess::OLD_NUMBERING) );
 
     new SwTxtNode(
             SwNodeIndex(GetUndoManager().GetUndoNodes().GetEndOfContent()),
@@ -760,7 +760,7 @@ void SwDoc::ClearDoc()
                                   OUTLINE_RULE );
     AddNumRule(mpOutlineRule);
     // Counting of phantoms depends on <IsOldNumbering()>
-    mpOutlineRule->SetCountPhantoms( !get(IDocumentSettingAccess::OLD_NUMBERING) );
+    mpOutlineRule->SetCountPhantoms( !GetDocumentSettingManager().get(IDocumentSettingAccess::OLD_NUMBERING) );
 
     // remove the dummy pagedec from the array and delete all the old ones
     maPageDescs.erase( maPageDescs.begin() + nDummyPgDsc );
@@ -861,7 +861,7 @@ IGrammarContact* getGrammarContact( const SwTxtNode& rTxtNode )
 void SwDoc::UpdateLinks( bool bUI )
 {
     SfxObjectCreateMode eMode;
-    sal_uInt16 nLinkMode = getLinkUpdateMode( true );
+    sal_uInt16 nLinkMode = GetDocumentSettingManager().getLinkUpdateMode( true );
     if ( GetDocShell()) {
         sal_uInt16 nUpdateDocMode = GetDocShell()->GetUpdateDocMode();
         if( (nLinkMode != NEVER ||  document::UpdateDocMode::FULL_UPDATE == nUpdateDocMode) &&
diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx
index c16f576..421ab9a 100644
--- a/sw/source/core/doc/doctxm.cxx
+++ b/sw/source/core/doc/doctxm.cxx
@@ -36,6 +36,7 @@
 #include <pagedesc.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <pagefrm.hxx>
 #include <ndtxt.hxx>
 #include <swtable.hxx>
@@ -1704,7 +1705,7 @@ void SwTOXBaseSection::GenerateText( sal_uInt16 nArrayIdx,
                     else
                         nRightMargin = aNdRect.Width();
                     //#i24363# tab stops relative to indent
-                    if( pDoc->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT) )
+                    if( pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT) )
                     {
                         // left margin of paragraph style
                         const SvxLRSpaceItem& rLRSpace = pTOXNd->GetTxtColl()->GetLRSpace();
diff --git a/sw/source/core/doc/poolfmt.cxx b/sw/source/core/doc/poolfmt.cxx
index 5340ee3..b6330c5 100644
--- a/sw/source/core/doc/poolfmt.cxx
+++ b/sw/source/core/doc/poolfmt.cxx
@@ -46,6 +46,7 @@
 #include <viewopt.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <fmtanchr.hxx>
 #include <fmtornt.hxx>
 #include <fmtsrnd.hxx>
@@ -187,7 +188,7 @@ static void lcl_SetHeadline( SwDoc* pDoc, SwTxtFmtColl* pColl,
 {
     SetAllScriptItem( rSet, SvxWeightItem( WEIGHT_BOLD, RES_CHRATR_WEIGHT ) );
     SvxFontHeightItem aHItem(240, 100, RES_CHRATR_FONTSIZE);
-    const bool bHTMLMode = pDoc->get(IDocumentSettingAccess::HTML_MODE);
+    const bool bHTMLMode = pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE);
     if( bHTMLMode )
         aHItem.SetHeight( aHeadlineSizes[ MAXLEVEL + nLevel ] );
     else
@@ -356,7 +357,7 @@ SwTxtFmtColl* SwDoc::GetTxtCollFromPool( sal_uInt16 nId, bool bRegardLanguage )
         mpTxtFmtCollTbl->push_back( pNewColl );
     }
 
-    bool bNoDefault = get( IDocumentSettingAccess::STYLES_NODEFAULT );
+    bool bNoDefault = GetDocumentSettingManager().get( IDocumentSettingAccess::STYLES_NODEFAULT );
     if ( !bNoDefault )
     {
         switch( nId )
@@ -387,7 +388,7 @@ SwTxtFmtColl* SwDoc::GetTxtCollFromPool( sal_uInt16 nId, bool bRegardLanguage )
                                         RES_PARATR_LINESPACING );
                 SvxULSpaceItem aUL( 0, PT_7, RES_UL_SPACE );
                 aLSpc.SetPropLineSpace( (const sal_uInt8) 120 );
-                if( get(IDocumentSettingAccess::HTML_MODE) ) aUL.SetLower( HTML_PARSPACE );
+                if( GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) ) aUL.SetLower( HTML_PARSPACE );
                 aSet.Put( aUL );
                 aSet.Put( aLSpc );
             }
@@ -466,7 +467,7 @@ SwTxtFmtColl* SwDoc::GetTxtCollFromPool( sal_uInt16 nId, bool bRegardLanguage )
 
                 SvxFontHeightItem aFntSize( PT_14, 100, RES_CHRATR_FONTSIZE );
                 SvxULSpaceItem aUL( PT_12, PT_6, RES_UL_SPACE );
-                if( get(IDocumentSettingAccess::HTML_MODE) )
+                if( GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
                     aUL.SetLower( HTML_PARSPACE );
                 aSet.Put( SvxFmtKeepItem( true, RES_KEEP ));
 
@@ -639,7 +640,7 @@ SwTxtFmtColl* SwDoc::GetTxtCollFromPool( sal_uInt16 nId, bool bRegardLanguage )
 
         case RES_POOLCOLL_SENDADRESS:           // Sender address
             {
-                if( get(IDocumentSettingAccess::HTML_MODE) )
+                if( GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
                     SetAllScriptItem( aSet, SvxPostureItem(ITALIC_NORMAL, RES_CHRATR_POSTURE) );
                 else
                 {
@@ -1290,7 +1291,7 @@ SwFmt* SwDoc::GetFmtFromPool( sal_uInt16 nId )
 
     case RES_POOLFRM_FRAME:
         {
-            if ( get(IDocumentSettingAccess::HTML_MODE) )
+            if ( GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
             {
                 aSet.Put( SwFmtAnchor( FLY_AS_CHAR ));
                 aSet.Put( SwFmtVertOrient( 0, text::VertOrientation::LINE_CENTER, text::RelOrientation::PRINT_AREA ) );
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index c10acd5..90d623b 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -40,6 +40,7 @@
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
 #include <UndoManager.hxx>
+#include <DocumentSettingManager.hxx>
 #include <cntfrm.hxx>
 #include <pam.hxx>
 #include <swcrsr.hxx>
@@ -4103,7 +4104,7 @@ void SwDoc::ChkBoxNumFmt( SwTableBox& rBox, bool bCallUpdate )
 
             // TL_CHART2: update charts (when cursor leaves cell and
             // automatic update is enabled)
-            if (AUTOUPD_FIELD_AND_CHARTS == getFieldUpdateFlags(true))
+            if (AUTOUPD_FIELD_AND_CHARTS == GetDocumentSettingManager().getFieldUpdateFlags(true))
                 pTblNd->GetTable().UpdateCharts();
         }
         SetModified();
diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx
index 3979d0d..ee6df0b 100644
--- a/sw/source/core/docnode/node.cxx
+++ b/sw/source/core/docnode/node.cxx
@@ -60,6 +60,7 @@
 #include <rootfrm.hxx>
 #include <istyleaccess.hxx>
 #include <IDocumentListItems.hxx>
+#include <DocumentSettingManager.hxx>
 #include <switerator.hxx>
 #include "ndole.hxx"
 
@@ -1914,7 +1915,7 @@ SwOLENodes* SwCntntNode::CreateOLENodesArray( const SwFmtColl& rColl, bool bOnly
 /*
  * Document Interface Access
  */
-const IDocumentSettingAccess* SwNode::getIDocumentSettingAccess() const { return GetDoc(); }
+const IDocumentSettingAccess* SwNode::getIDocumentSettingAccess() const { return &GetDoc()->GetDocumentSettingManager(); }
 const IDocumentDeviceAccess* SwNode::getIDocumentDeviceAccess() const { return &GetDoc()->getIDocumentDeviceAccess(); }
 const IDocumentRedlineAccess* SwNode::getIDocumentRedlineAccess() const { return GetDoc(); }
 const IDocumentStylePoolAccess* SwNode::getIDocumentStylePoolAccess() const { return GetDoc(); }
diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx
index 4886a8e..7f6236d 100644
--- a/sw/source/core/draw/drawdoc.cxx
+++ b/sw/source/core/draw/drawdoc.cxx
@@ -36,6 +36,7 @@
 #include <shellio.hxx>
 #include <hintids.hxx>
 #include <com/sun/star/embed/ElementModes.hpp>
+#include <DocumentSettingManager.hxx>
 
 using namespace com::sun::star;
 
@@ -110,9 +111,9 @@ SwDrawDocument::SwDrawDocument( SwDoc* pD ) :
                 }
     }
 
-    SetForbiddenCharsTable( pD->getForbiddenCharacterTable() );
+    SetForbiddenCharsTable( pD->GetDocumentSettingManager().getForbiddenCharacterTable() );
     // Implementation for asian compression
-    SetCharCompressType( static_cast<sal_uInt16>(pD->getCharacterCompressionType() ));
+    SetCharCompressType( static_cast<sal_uInt16>(pD->GetDocumentSettingManager().getCharacterCompressionType() ));
 }
 
 // Destructor
diff --git a/sw/source/core/draw/dview.cxx b/sw/source/core/draw/dview.cxx
index 09b8acf..069af81 100644
--- a/sw/source/core/draw/dview.cxx
+++ b/sw/source/core/draw/dview.cxx
@@ -45,6 +45,7 @@
 #include <fmtanchr.hxx>
 #include "shellres.hxx"
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 
 #include <com/sun/star/embed/Aspects.hpp>
 
@@ -845,7 +846,7 @@ void SwDrawView::CheckPossibilities()
                             SwDoc* pDoc = Imp().GetShell()->GetDoc();
                             const bool bProtectMathPos = SotExchange::IsMath( xObj->getClassID() )
                                     && FLY_AS_CHAR == pFly->GetFmt()->GetAnchor().GetAnchorId()
-                                    && pDoc->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
+                                    && pDoc->GetDocumentSettingManager().get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
                             if (bProtectMathPos)
                                 bMoveProtect = true;
                         }
diff --git a/sw/source/core/edit/edfld.cxx b/sw/source/core/edit/edfld.cxx
index ef432da..3478c0d 100644
--- a/sw/source/core/edit/edfld.cxx
+++ b/sw/source/core/edit/edfld.cxx
@@ -36,6 +36,7 @@
 #include <hints.hxx>
 #include <switerator.hxx>
 #include <fieldhint.hxx>
+#include <DocumentSettingManager.hxx>
 
 /// count field types with a ResId, if 0 count all
 sal_uInt16 SwEditShell::GetFldTypeCount(sal_uInt16 nResId, bool bUsed ) const
@@ -412,7 +413,7 @@ SwFldUpdateFlags SwEditShell::GetFldUpdateFlags(bool bDocSettings) const
 
 void SwEditShell::SetLabelDoc( bool bFlag )
 {
-    GetDoc()->set(IDocumentSettingAccess::LABEL_DOCUMENT, bFlag );
+    GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::LABEL_DOCUMENT, bFlag );
 }
 
 bool SwEditShell::IsLabelDoc() const
diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx
index 03d3a39..25a76bd 100644
--- a/sw/source/core/frmedt/feshview.cxx
+++ b/sw/source/core/frmedt/feshview.cxx
@@ -37,6 +37,7 @@
 #include <svx/svdpage.hxx>
 #include <svx/svdpagv.hxx>
 #include <IDocumentSettingAccess.hxx>
+#include <DocumentSettingManager.hxx>
 #include <cmdid.h>
 #include <poolfmt.hrc>
 #include <frmfmt.hxx>
@@ -2280,7 +2281,7 @@ sal_uInt8 SwFEShell::IsSelObjProtected( sal_uInt16 eType ) const
                             // set FLYPROTECT_POS if it is a Math object anchored 'as char' and baseline alignment is activated
                             const bool bProtectMathPos = SotExchange::IsMath( xObj->getClassID() )
                                     && FLY_AS_CHAR == pFly->GetFmt()->GetAnchor().GetAnchorId()
-                                    && mpDoc->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
+                                    && mpDoc->GetDocumentSettingManager().get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
                             if ((FLYPROTECT_POS & eType) && bProtectMathPos)
                                 nChk |= FLYPROTECT_POS;
                         }
diff --git a/sw/source/core/layout/anchoreddrawobject.cxx b/sw/source/core/layout/anchoreddrawobject.cxx
index a6fab3f..37918e3 100644
--- a/sw/source/core/layout/anchoreddrawobject.cxx
+++ b/sw/source/core/layout/anchoreddrawobject.cxx
@@ -27,6 +27,7 @@
 #include <txtfrm.hxx>
 #include <vector>
 #include <svx/svdogrp.hxx>
+#include <DocumentSettingManager.hxx>
 
 using namespace ::com::sun::star;
 
@@ -218,7 +219,7 @@ void SwAnchoredDrawObject::UpdateLayoutDir()
 
     if ( !NotYetPositioned() &&
          GetFrmFmt().GetLayoutDir() != nOldLayoutDir &&
-         GetFrmFmt().GetDoc()->get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE) &&
+         GetFrmFmt().GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE) &&
          !IsOutsidePage() )
     {
         mbCaptureAfterLayoutDirChange = true;
diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx
index 348789a..d1898f8 100644
--- a/sw/source/core/layout/calcmove.cxx
+++ b/sw/source/core/layout/calcmove.cxx
@@ -41,6 +41,8 @@
 #include <layouter.hxx>
 #include <flyfrms.hxx>
 
+#include <DocumentSettingManager.hxx>
+
 // Move methods
 
 /// Return value tells whether the Frm should be moved.
@@ -853,7 +855,7 @@ void SwLayoutFrm::MakeAll()
 
 bool SwTxtNode::IsCollapse() const
 {
-    if (GetDoc()->get( IDocumentSettingAccess::COLLAPSE_EMPTY_CELL_PARA )
+    if (GetDoc()->GetDocumentSettingManager().get( IDocumentSettingAccess::COLLAPSE_EMPTY_CELL_PARA )
         &&  GetTxt().isEmpty())
     {
         sal_uLong nIdx=GetIndex();
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 3418f3d..f3acf53 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -60,6 +60,7 @@
 #include <sortedobjs.hxx>
 #include <objectformatter.hxx>
 #include <switerator.hxx>
+#include <DocumentSettingManager.hxx>
 
 // ftnfrm.cxx:
 void sw_RemoveFtns( SwFtnBossFrm* pBoss, bool bPageOnly, bool bEndNotes );
@@ -135,7 +136,7 @@ SwFrmNotify::~SwFrmNotify()
                         if ( !bInvalidPrePos && pPre->IsTabFrm() )
                         {
                             SwTabFrm* pPreTab = static_cast<SwTabFrm*>(pPre);
-                            if ( pPreTab->GetFmt()->GetDoc()->get(IDocumentSettingAccess::TABLE_ROW_KEEP) )
+                            if ( pPreTab->GetFmt()->GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::TABLE_ROW_KEEP) )
                             {
                                 SwRowFrm* pLastRow = static_cast<SwRowFrm*>(pPreTab->GetLastLower());
                                 if ( pLastRow && pLastRow->ShouldRowKeepWithNext() )
@@ -1819,7 +1820,7 @@ long SwBorderAttrs::CalcRight( const SwFrm* pCaller ) const
 {
     long nRight=0;
 
-    if (!pCaller->IsTxtFrm() || !((SwTxtFrm*)pCaller)->GetTxtNode()->GetDoc()->get(IDocumentSettingAccess::INVERT_BORDER_SPACING)) {
+    if (!pCaller->IsTxtFrm() || !((SwTxtFrm*)pCaller)->GetTxtNode()->GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::INVERT_BORDER_SPACING)) {
     // OD 23.01.2003 #106895# - for cell frame in R2L text direction the left
     // and right border are painted on the right respectively left.
     if ( pCaller->IsCellFrm() && pCaller->IsRightToLeft() )
@@ -1867,7 +1868,7 @@ long SwBorderAttrs::CalcLeft( const SwFrm *pCaller ) const
 {
     long nLeft=0;
 
-    if (!pCaller->IsTxtFrm() || !((SwTxtFrm*)pCaller)->GetTxtNode()->GetDoc()->get(IDocumentSettingAccess::INVERT_BORDER_SPACING)) {
+    if (!pCaller->IsTxtFrm() || !((SwTxtFrm*)pCaller)->GetTxtNode()->GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::INVERT_BORDER_SPACING)) {
     // OD 23.01.2003 #106895# - for cell frame in R2L text direction the left
     // and right border are painted on the right respectively left.
     if ( pCaller->IsCellFrm() && pCaller->IsRightToLeft() )
@@ -1885,7 +1886,7 @@ long SwBorderAttrs::CalcLeft( const SwFrm *pCaller ) const
         if (pCaller->IsTxtFrm())
         {
             const SwTxtFrm* pTxtFrm = (const SwTxtFrm*)pCaller;
-            if (pTxtFrm->GetTxtNode()->GetDoc()->get(IDocumentSettingAccess::FLOATTABLE_NOMARGINS))
+            if (pTxtFrm->GetTxtNode()->GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::FLOATTABLE_NOMARGINS))
             {
                 // If this is explicitly requested, ignore the margins next to the floating table.
                 if (lcl_hasTabFrm(pTxtFrm))
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 8d16d93..e999607 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -68,6 +68,7 @@
 #include <svx/sdr/contact/viewobjectcontactredirector.hxx>
 #include <svx/sdr/contact/viewobjectcontact.hxx>
 #include <svx/sdr/contact/viewcontact.hxx>
+#include <DocumentSettingManager.hxx>
 
 #include <ndole.hxx>
 #include <svx/charthelper.hxx>
@@ -3292,7 +3293,7 @@ void SwRootFrm::Paint(SwRect const& rRect, SwPrintData const*const pPrintData) c
                     pLines->LockLines( false );
                 }
 
-                if ( pSh->GetDoc()->get( IDocumentSettingAccess::BACKGROUND_PARA_OVER_DRAWINGS ) )
+                if ( pSh->GetDoc()->GetDocumentSettingManager().get( IDocumentSettingAccess::BACKGROUND_PARA_OVER_DRAWINGS ) )
                     pPage->PaintBaBo( aPaintRect, pPage, true, /*bOnlyTxtBackground=*/true );
 
                 if( pSh->GetWin() )
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 110459d..ba2f4f3 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -64,6 +64,7 @@
 #include <objectformatter.hxx>
 #include <layouter.hxx>
 #include <switerator.hxx>
+#include <DocumentSettingManager.hxx>
 
 extern void AppendObjs( const SwFrmFmts *pTbl, sal_uLong nIndex,
                         SwFrm *pFrm, SwPageFrm *pPage );
@@ -1774,7 +1775,7 @@ void SwTabFrm::MakeAll()
     // #131283#
     // Indicates that two individual rows may keep together, based on the keep
     // attribute set at the first paragraph in the first cell.
-    const bool bTableRowKeep = !bDontSplit && GetFmt()->GetDoc()->get(IDocumentSettingAccess::TABLE_ROW_KEEP);
+    const bool bTableRowKeep = !bDontSplit && GetFmt()->GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::TABLE_ROW_KEEP);
 
     // The Magic Move: Used for the table row keep feature.
     // If only the last row of the table wants to keep (implicitly by setting
@@ -5241,7 +5242,7 @@ SwTwips SwTabFrm::CalcHeightOfFirstContentLine() const
     // Calculate the height of the keeping lines
     // (headlines + following keeping lines):
     SwTwips nKeepHeight = nRepeatHeight;
-    if ( GetFmt()->GetDoc()->get(IDocumentSettingAccess::TABLE_ROW_KEEP) )
+    if ( GetFmt()->GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::TABLE_ROW_KEEP) )
     {
         sal_uInt16 nKeepRows = nRepeat;
 
diff --git a/sw/source/core/layout/trvlfrm.cxx b/sw/source/core/layout/trvlfrm.cxx
index 6fc290f..5e0bd5b 100644
--- a/sw/source/core/layout/trvlfrm.cxx
+++ b/sw/source/core/layout/trvlfrm.cxx
@@ -41,6 +41,7 @@
 #include <viewsh.hxx>
 #include <viewopt.hxx>
 #include <doc.hxx>
+#include <DocumentSettingManager.hxx>
 #include <viscrs.hxx>
 #include <frmfmt.hxx>
 #include <swtable.hxx>
@@ -1645,7 +1646,7 @@ bool SwFrm::IsProtected() const
     if (this->IsCntntFrm() && ((SwCntntFrm*)this)->GetNode())
     {
         const SwDoc *pDoc=((SwCntntFrm*)this)->GetNode()->GetDoc();
-        bool isFormProtected=pDoc->get(IDocumentSettingAccess::PROTECT_FORM );
+        bool isFormProtected=pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::PROTECT_FORM );
         if (isFormProtected)
         {
             return false; // TODO a hack for now, well deal with it later, I we return true here we have a "double" locking
diff --git a/sw/source/core/ole/ndole.cxx b/sw/source/core/ole/ndole.cxx
index 81528f2..909386a 100644
--- a/sw/source/core/ole/ndole.cxx
+++ b/sw/source/core/ole/ndole.cxx
@@ -47,6 +47,7 @@
 #include <cntfrm.hxx>
 #include <frmatr.hxx>
 #include <ndole.hxx>
+#include <DocumentSettingManager.hxx>
 
 #include <comphelper/classids.hxx>
 #include <vcl/graph.hxx>
@@ -851,7 +852,7 @@ bool SwOLEObj::UnloadObject( uno::Reference< embed::XEmbeddedObject > xObj, cons
         SfxObjectShell* p = pDoc->GetPersist();
         if( p )
         {
-            if( pDoc->get(IDocumentSettingAccess::PURGE_OLE) )
+            if( pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::PURGE_OLE) )
             {
                 try
                 {
diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx
index 8ed3059..ca536da 100644
--- a/sw/source/core/txtnode/txtedt.cxx
+++ b/sw/source/core/txtnode/txtedt.cxx
@@ -63,6 +63,7 @@
 #include <fmtautofmt.hxx>
 #include <istyleaccess.hxx>
 #include <unicode/uchar.h>
+#include <DocumentSettingManager.hxx>
 
 #include <unomid.h>
 
@@ -159,7 +160,7 @@ lcl_MaskRedlinesAndHiddenText( const SwTxtNode& rNode, OUStringBuffer& rText,
         nRedlinesMasked = lcl_MaskRedlines( rNode, rText, nStt, nEnd, cChar );
     }
 
-    const bool bHideHidden = !SW_MOD()->GetViewOption(rDoc.get(IDocumentSettingAccess::HTML_MODE))->IsShowHiddenChar();
+    const bool bHideHidden = !SW_MOD()->GetViewOption(rDoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE))->IsShowHiddenChar();
 
     // If called from word count, we want to mask the hidden ranges even
     // if they are visible:
diff --git a/sw/source/core/uibase/app/appopt.cxx b/sw/source/core/uibase/app/appopt.cxx
index 9af525d..ea4dba7 100644
--- a/sw/source/core/uibase/app/appopt.cxx
+++ b/sw/source/core/uibase/app/appopt.cxx
@@ -45,6 +45,7 @@
 #include <doc.hxx>
 #include <wrtsh.hxx>
 #include <IDocumentDeviceAccess.hxx>
+#include <DocumentSettingManager.hxx>
 #include <uitool.hxx>
 #include <initui.hxx>
 #include <fldbas.hxx>
@@ -395,7 +396,7 @@ void SwModule::ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet )
     if( pAppView )
     {
         SwWrtShell &rWrtSh = pAppView->GetWrtShell();
-        const bool bAlignFormulas = rWrtSh.GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
+        const bool bAlignFormulas = rWrtSh.GetDoc()->GetDocumentSettingManager().get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
         pPref->SetAlignMathObjectsToBaseline( bAlignFormulas );
 
         // don't align formulas in documents that are currently loading
diff --git a/sw/source/core/uibase/app/docsh.cxx b/sw/source/core/uibase/app/docsh.cxx
index 963fdf6..a5da17a 100644
--- a/sw/source/core/uibase/app/docsh.cxx
+++ b/sw/source/core/uibase/app/docsh.cxx
@@ -69,6 +69,7 @@
 #include <docstyle.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <docstat.hxx>
 #include <pagedesc.hxx>
 #include <pview.hxx>
@@ -259,7 +260,7 @@ bool SwDocShell::ConvertFrom( SfxMedium& rMedium )
     SW_MOD()->SetEmbeddedLoadSave(
                             SFX_CREATE_MODE_EMBEDDED == GetCreateMode() );
 
-    pRdr->GetDoc()->set(IDocumentSettingAccess::HTML_MODE, ISA(SwWebDocShell));
+    pRdr->GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::HTML_MODE, ISA(SwWebDocShell));
 
     /* #106748# Restore the pool default if reading a saved document. */
     pDoc->RemoveAllFmtLanguageDependencies();
@@ -310,10 +311,10 @@ bool SwDocShell::Save()
     // #i62875#
     // reset compatibility flag <DoNotCaptureDrawObjsOnPage>, if possible
     if ( pWrtShell && pDoc &&
-         pDoc->get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE) &&
+         pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE) &&
          docfunc::AllDrawObjsOnPage( *pDoc ) )
     {
-        pDoc->set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, false);
+        pDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, false);
     }
 
     sal_uLong nErr = ERR_SWG_WRITE_ERROR, nVBWarning = ERRCODE_NONE;
@@ -402,8 +403,8 @@ bool SwDocShell::SaveAs( SfxMedium& rMedium )
         pView->GetPostItMgr()->UpdateDataOnActiveSidebarWin();
     }
 
-    if( pDoc->get(IDocumentSettingAccess::GLOBAL_DOCUMENT) &&
-        !pDoc->get(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS) )
+    if( pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::GLOBAL_DOCUMENT) &&
+        !pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS) )
         RemoveOLEObjects();
 
     {
@@ -431,17 +432,17 @@ bool SwDocShell::SaveAs( SfxMedium& rMedium )
     // #i62875#
     // reset compatibility flag <DoNotCaptureDrawObjsOnPage>, if possible
     if ( pWrtShell &&
-         pDoc->get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE) &&
+         pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE) &&
          docfunc::AllDrawObjsOnPage( *pDoc ) )
     {
-        pDoc->set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, false);
+        pDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, false);
     }
 
     sal_uLong nErr = ERR_SWG_WRITE_ERROR, nVBWarning = ERRCODE_NONE;
     uno::Reference < embed::XStorage > xStor = rMedium.GetOutputStorage();
     if( SfxObjectShell::SaveAs( rMedium ) )
     {
-        if( GetDoc()->get(IDocumentSettingAccess::GLOBAL_DOCUMENT) && !ISA( SwGlobalDocShell ) )
+        if( GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::GLOBAL_DOCUMENT) && !ISA( SwGlobalDocShell ) )
         {
             // This is to set the correct class id if SaveAs is
             // called from SwDoc::SplitDoc to save a normal doc as
@@ -608,10 +609,10 @@ bool SwDocShell::ConvertTo( SfxMedium& rMedium )
     // #i62875#
     // reset compatibility flag <DoNotCaptureDrawObjsOnPage>, if possible
     if ( pWrtShell &&
-         pDoc->get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE) &&
+         pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE) &&
          docfunc::AllDrawObjsOnPage( *pDoc ) )
     {
-        pDoc->set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, false);
+        pDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, false);
     }
 
     if( xWriter->IsStgWriter() &&
@@ -641,15 +642,15 @@ bool SwDocShell::ConvertTo( SfxMedium& rMedium )
             nSaveType = 2;
 
         // Change Flags of the Document accordingly
-        bool bIsHTMLModeSave = GetDoc()->get(IDocumentSettingAccess::HTML_MODE);
-        bool bIsGlobalDocSave = GetDoc()->get(IDocumentSettingAccess::GLOBAL_DOCUMENT);
-        bool bIsGlblDocSaveLinksSave = GetDoc()->get(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS);
+        bool bIsHTMLModeSave = GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE);
+        bool bIsGlobalDocSave = GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::GLOBAL_DOCUMENT);
+        bool bIsGlblDocSaveLinksSave = GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS);
         if( nMyType != nSaveType )
         {
-            GetDoc()->set(IDocumentSettingAccess::HTML_MODE, 1 == nSaveType);
-            GetDoc()->set(IDocumentSettingAccess::GLOBAL_DOCUMENT, 2 == nSaveType);
+            GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::HTML_MODE, 1 == nSaveType);
+            GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT, 2 == nSaveType);
             if( 2 != nSaveType )
-                GetDoc()->set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, false);
+                GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, false);
         }
 
         // if the target format is storage based, then the output storage must be already created
@@ -674,9 +675,9 @@ bool SwDocShell::ConvertTo( SfxMedium& rMedium )
 
         if( nMyType != nSaveType )
         {
-            GetDoc()->set(IDocumentSettingAccess::HTML_MODE, bIsHTMLModeSave );
-            GetDoc()->set(IDocumentSettingAccess::GLOBAL_DOCUMENT, bIsGlobalDocSave);
-            GetDoc()->set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, bIsGlblDocSaveLinksSave);
+            GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::HTML_MODE, bIsHTMLModeSave );
+            GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT, bIsGlobalDocSave);
+            GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, bIsGlblDocSaveLinksSave);
         }
 
         return bRet;
@@ -996,7 +997,7 @@ void SwDocShell::GetState(SfxItemSet& rSet)
         case SID_BROWSER_MODE:
         case FN_PRINT_LAYOUT:
             {
-                bool bState = GetDoc()->get(IDocumentSettingAccess::BROWSE_MODE);
+                bool bState = GetDoc()->GetDocumentSettingManager().get(IDocumentSettingAccess::BROWSE_MODE);
                 if(FN_PRINT_LAYOUT == nWhich)
                     bState = !bState;
                 rSet.Put( SfxBoolItem( nWhich, bState));
diff --git a/sw/source/core/uibase/app/docsh2.cxx b/sw/source/core/uibase/app/docsh2.cxx
index e68de40..508db88 100644
--- a/sw/source/core/uibase/app/docsh2.cxx
+++ b/sw/source/core/uibase/app/docsh2.cxx
@@ -74,6 +74,7 @@
 #include <docstyle.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <pagedesc.hxx>
 #include <shellio.hxx>
 #include <pview.hxx>
@@ -148,7 +149,7 @@ SfxDocumentInfoDialog* SwDocShell::CreateDocumentInfoDialog(
 
 void SwDocShell::ToggleBrowserMode(bool bSet, SwView* _pView )
 {
-    GetDoc()->set(IDocumentSettingAccess::BROWSE_MODE, bSet );
+    GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::BROWSE_MODE, bSet );
     UpdateFontList();
     SwView* pTempView = _pView ? _pView : (SwView*)GetView();
     if( pTempView )
@@ -1326,7 +1327,7 @@ void SwDocShell::ReloadFromHtml( const OUString& rStreamName, SwSrcView* pSrcVie
         }
     }
 #endif
-    bool bWasBrowseMode = pDoc->get(IDocumentSettingAccess::BROWSE_MODE);
+    bool bWasBrowseMode = pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::BROWSE_MODE);
     RemoveLink();
 
     // now also the UNO-Model has to be informed about the new Doc #51535#
@@ -1337,7 +1338,7 @@ void SwDocShell::ReloadFromHtml( const OUString& rStreamName, SwSrcView* pSrcVie
     AddLink();
     //#116402# update font list when new document is created
     UpdateFontList();
-    pDoc->set(IDocumentSettingAccess::BROWSE_MODE, bWasBrowseMode);
+    pDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::BROWSE_MODE, bWasBrowseMode);
     pSrcView->SetPool(&GetPool());
 
     const OUString& rMedname = GetMedium()->GetName();
diff --git a/sw/source/core/uibase/app/docshini.cxx b/sw/source/core/uibase/app/docshini.cxx
index 9a68b17..5c25387 100644
--- a/sw/source/core/uibase/app/docshini.cxx
+++ b/sw/source/core/uibase/app/docshini.cxx
@@ -59,6 +59,7 @@
 #include <wdocsh.hxx>
 #include <swmodule.hxx>
 #include <doc.hxx>
+#include <DocumentSettingManager.hxx>
 #include <docfac.hxx>
 #include <docstyle.hxx>
 #include <shellio.hxx>
@@ -102,7 +103,7 @@ bool SwDocShell::InitNew( const uno::Reference < embed::XStorage >& xStor )
         if ( bWeb )
             bHTMLTemplSet = SetHTMLTemplate( *GetDoc() );// Styles from HTML.vor
         else if( ISA( SwGlobalDocShell ) )
-            GetDoc()->set(IDocumentSettingAccess::GLOBAL_DOCUMENT, true);       // Globaldokument
+            GetDoc()->GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT, true);       // Globaldokument
 
         if ( GetCreateMode() ==  SFX_CREATE_MODE_EMBEDDED )
             SwTransferable::InitOle( this, *pDoc );
@@ -118,12 +119,12 @@ bool SwDocShell::InitNew( const uno::Reference < embed::XStorage >& xStor )
                 ForbiddenCharacters aForbidden;
                 aAsian.GetStartEndChars( pLocales[i], aForbidden.beginLine, aForbidden.endLine);
                 LanguageType  eLang = LanguageTag::convertToLanguageType(pLocales[i]);
-                pDoc->setForbiddenCharacters( eLang, aForbidden);
+                pDoc->GetDocumentSettingManager().setForbiddenCharacters( eLang, aForbidden);
             }
         }
-        pDoc->set(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION,
+        pDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION,
                   !aAsian.IsKerningWesternTextOnly());
-        pDoc->setCharacterCompressionType(static_cast<SwCharCompressType>(aAsian.GetCharDistanceCompression()));
+        pDoc->GetDocumentSettingManager().setCharacterCompressionType(static_cast<SwCharCompressType>(aAsian.GetCharDistanceCompression()));
         pDoc->getIDocumentDeviceAccess().setPrintData(*SW_MOD()->GetPrtOptions(bWeb));
 
         SubInitNew();
@@ -286,7 +287,7 @@ bool SwDocShell::InitNew( const uno::Reference < embed::XStorage >& xStor )
         // the default for documents created via 'File/New' should be 'on'
         // (old documents, where this property was not yet implemented, will get the
         // value 'false' in the SwDoc c-tor)
-        pDoc->set( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT,
+        pDoc->GetDocumentSettingManager().set( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT,
                 SW_MOD()->GetUsrPref( bWeb )->IsAlignMathObjectsToBaseline() );
     }
 
@@ -400,7 +401,7 @@ void SwDocShell::AddLink()
         SwDocFac aFactory;
         pDoc = aFactory.GetDoc();
         pDoc->acquire();
-        pDoc->set(IDocumentSettingAccess::HTML_MODE, ISA(SwWebDocShell) );
+        pDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::HTML_MODE, ISA(SwWebDocShell) );
     }
     else
         pDoc->acquire();
@@ -531,13 +532,13 @@ bool  SwDocShell::Load( SfxMedium& rMedium )
                         // by this formats.
                         if( ISA( SwWebDocShell ) )
                         {
-                            if( !pDoc->get(IDocumentSettingAccess::HTML_MODE) )
-                                pDoc->set(IDocumentSettingAccess::HTML_MODE, true);
+                            if( !pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
+                                pDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::HTML_MODE, true);
                         }
                         if( ISA( SwGlobalDocShell ) )
                         {
-                            if( !pDoc->get(IDocumentSettingAccess::GLOBAL_DOCUMENT) )
-                                pDoc->set(IDocumentSettingAccess::GLOBAL_DOCUMENT, true);
+                            if( !pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::GLOBAL_DOCUMENT) )
+                                pDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT, true);
                         }
                     }
                 }
@@ -616,8 +617,8 @@ void SwDocShell::SubInitNew()
     UpdateFontList();
     InitDraw();
 
-    pDoc->setLinkUpdateMode( GLOBALSETTING );
-    pDoc->setFieldUpdateFlags( AUTOUPD_GLOBALSETTING );
+    pDoc->GetDocumentSettingManager().setLinkUpdateMode( GLOBALSETTING );
+    pDoc->GetDocumentSettingManager().setFieldUpdateFlags( AUTOUPD_GLOBALSETTING );
 
     bool bWeb = ISA(SwWebDocShell);
 
@@ -679,7 +680,7 @@ void SwDocShell::SubInitNew()
  * Document Interface Access
  */
 IDocumentDeviceAccess* SwDocShell::getIDocumentDeviceAccess() { return &pDoc->getIDocumentDeviceAccess(); }
-const IDocumentSettingAccess* SwDocShell::getIDocumentSettingAccess() const { return pDoc; }
+const IDocumentSettingAccess* SwDocShell::getIDocumentSettingAccess() const { return &pDoc->GetDocumentSettingManager(); }
 IDocumentChartDataProviderAccess* SwDocShell::getIDocumentChartDataProviderAccess() { return pDoc; }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/uibase/app/docst.cxx b/sw/source/core/uibase/app/docst.cxx
index 75e38c6..396cd17 100644
--- a/sw/source/core/uibase/app/docst.cxx
+++ b/sw/source/core/uibase/app/docst.cxx
@@ -57,6 +57,7 @@
 #include "viewopt.hxx"
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include "swstyle.h"
 #include "frmfmt.hxx"
 #include "charfmt.hxx"
@@ -152,7 +153,7 @@ void  SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh)
                     SfxTemplateItem aItem(nWhich, aName);
 
                     sal_uInt16 nMask = 0;
-                    if( pDoc->get(IDocumentSettingAccess::HTML_MODE) )
+                    if( pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
                         nMask = SWSTYLEBIT_HTML;
                     else
                     {
@@ -178,7 +179,7 @@ void  SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh)
 
             case SID_STYLE_FAMILY3:
 
-                if( pDoc->get(IDocumentSettingAccess::HTML_MODE) )
+                if( pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
                     rSet.DisableItem( nWhich );
                 else
                 {
@@ -194,7 +195,7 @@ void  SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh)
             case SID_STYLE_FAMILY4:
             {
                 SvxHtmlOptions& rHtmlOpt = SvxHtmlOptions::Get();
-                if( pDoc->get(IDocumentSettingAccess::HTML_MODE) && !rHtmlOpt.IsPrintLayoutExtension())
+                if( pDoc->GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) && !rHtmlOpt.IsPrintLayoutExtension())
                     rSet.DisableItem( nWhich );
                 else
                 {
diff --git a/sw/source/core/uibase/app/docstyle.cxx b/sw/source/core/uibase/app/docstyle.cxx
index 500bc59..bde99af 100644
--- a/sw/source/core/uibase/app/docstyle.cxx
+++ b/sw/source/core/uibase/app/docstyle.cxx
@@ -39,6 +39,7 @@
 #include <ccoll.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <cmdid.h>
 #include <swstyle.h>
 #include <app.hrc>
@@ -2385,7 +2386,7 @@ SfxStyleSheetBase* SwDocStyleSheetPool::Find( const OUString& rName,
                                               SfxStyleFamily eFam, sal_uInt16 n )
 {
     sal_uInt16 nSMask = n;
-    if( SFX_STYLE_FAMILY_PARA == eFam && rDoc.get(IDocumentSettingAccess::HTML_MODE) )
+    if( SFX_STYLE_FAMILY_PARA == eFam && rDoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
     {
         // then only HTML-Templates are of interest
         if( USHRT_MAX == nSMask )
@@ -2544,7 +2545,7 @@ SfxStyleSheetBase*  SwStyleSheetIterator::First()
                     continue;
                 }
 
-                if( rDoc.get(IDocumentSettingAccess::HTML_MODE) && !(nId & USER_FMT) &&
+                if( rDoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) && !(nId & USER_FMT) &&
                     !( RES_POOLCHR_HTML_BEGIN <= nId &&
                           nId < RES_POOLCHR_HTML_END ) &&
                     RES_POOLCHR_INET_NORMAL != nId &&
@@ -2563,7 +2564,7 @@ SfxStyleSheetBase*  SwStyleSheetIterator::First()
         // PoolFormate
         if( bAll )
         {
-            if( !rDoc.get(IDocumentSettingAccess::HTML_MODE) )
+            if( !rDoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
                 AppendStyleList(SwStyleNameMapper::GetChrFmtUINameArray(),
                                 bIsSearchUsed, bSearchHidden, bOnlyHidden,
                                 nsSwGetPoolIdFromName::GET_POOLID_CHRFMT, cCHAR);
@@ -2588,7 +2589,7 @@ SfxStyleSheetBase*  SwStyleSheetIterator::First()
         nSearchFamily == SFX_STYLE_FAMILY_ALL )
     {
         sal_uInt16 nSMask = nSrchMask;
-        if( rDoc.get(IDocumentSettingAccess::HTML_MODE) )
+        if( rDoc.GetDocumentSettingManager().get(IDocumentSettingAccess::HTML_MODE) )
         {
             // then only HTML-Template are of interest
             if( SFXSTYLEBIT_ALL_VISIBLE == ( nSMask & SFXSTYLEBIT_ALL_VISIBLE ) )
diff --git a/sw/source/core/uibase/dochdl/swdtflvr.cxx b/sw/source/core/uibase/dochdl/swdtflvr.cxx
index 62938d5..ca778e2 100644
--- a/sw/source/core/uibase/dochdl/swdtflvr.cxx
+++ b/sw/source/core/uibase/dochdl/swdtflvr.cxx
@@ -79,6 +79,7 @@
 #include <ddefld.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <pagedesc.hxx>
 #include <IMark.hxx>
 #include <docary.hxx>
@@ -311,7 +312,7 @@ void SwTransferable::InitOle( SfxObjectShell* pDoc, SwDoc& rDoc )
     const Size aSz( OLESIZE );
     SwRect aVis( Point( DOCUMENTBORDER, DOCUMENTBORDER ), aSz );
     pDoc->SetVisArea( aVis.SVRect() );
-    rDoc.set(IDocumentSettingAccess::BROWSE_MODE, true );
+    rDoc.GetDocumentSettingManager().set(IDocumentSettingAccess::BROWSE_MODE, true );
 }
 
 uno::Reference < embed::XEmbeddedObject > SwTransferable::FindOLEObj( sal_Int64& nAspect ) const
diff --git a/sw/source/core/uibase/shells/basesh.cxx b/sw/source/core/uibase/shells/basesh.cxx
index aa63b4f..8c263a1 100644
--- a/sw/source/core/uibase/shells/basesh.cxx
+++ b/sw/source/core/uibase/shells/basesh.cxx
@@ -94,6 +94,7 @@
 #include <crsskip.hxx>
 #include <fmtinfmt.hxx>
 #include <doc.hxx>
+#include <DocumentSettingManager.hxx>
 
 #include "swabstdlg.hxx"
 #include "dialog.hrc"
@@ -1017,7 +1018,7 @@ void SwBaseShell::Execute(SfxRequest &rReq)
             // pre-conditions are met then align the formula to the baseline of the text
             const uno::Reference < embed::XEmbeddedObject > xObj( rSh.GetOleRef() );
             const bool bDoMathBaselineAlignment = xObj.is() && SotExchange::IsMath( xObj->getClassID() )
-                    && FLY_AS_CHAR == eSet && rSh.GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
+                    && FLY_AS_CHAR == eSet && rSh.GetDoc()->GetDocumentSettingManager().get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT );
             if (bDoMathBaselineAlignment)
                 rSh.AlignFormulaToBaseline( xObj );
 
diff --git a/sw/source/core/uibase/shells/frmsh.cxx b/sw/source/core/uibase/shells/frmsh.cxx
index 6656c24..ee0ceb65 100644
--- a/sw/source/core/uibase/shells/frmsh.cxx
+++ b/sw/source/core/uibase/shells/frmsh.cxx
@@ -63,6 +63,7 @@
 #include <swwait.hxx>
 #include <docstat.hxx>
 #include <IDocumentStatistics.hxx>
+#include <DocumentSettingManager.hxx>
 #include <comphelper/processfactory.hxx>
 #include <com/sun/star/ui/dialogs/XSLTFilterDialog.hpp>
 
@@ -482,7 +483,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
 
                 // disable vertical positioning for Math Objects anchored 'as char' if baseline alignment is activated
                 aSet.Put( SfxBoolItem( FN_MATH_BASELINE_ALIGNMENT,
-                        rSh.GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ) ) );
+                        rSh.GetDoc()->GetDocumentSettingManager().get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ) ) );
                 const uno::Reference < embed::XEmbeddedObject > xObj( rSh.GetOleRef() );
                 aSet.Put( SfxBoolItem( FN_OLE_IS_MATH, xObj.is() && SotExchange::IsMath( xObj->getClassID() ) ) );
 
diff --git a/sw/source/core/uibase/uiview/swcli.cxx b/sw/source/core/uibase/uiview/swcli.cxx
index d3e1f83..e54aecc 100644
--- a/sw/source/core/uibase/uiview/swcli.cxx
+++ b/sw/source/core/uibase/uiview/swcli.cxx
@@ -20,6 +20,7 @@
 #include <com/sun/star/embed/NoVisualAreaSizeException.hpp>
 #include <wrtsh.hxx>
 #include <doc.hxx>
+#include <DocumentSettingManager.hxx>
 #include <swtypes.hxx>
 #include <view.hxx>
 #include <edtwin.hxx>
@@ -164,7 +165,7 @@ void SwOleClient::FormatChanged()
     if ( pView && xObj.is() && SotExchange::IsMath( xObj->getClassID() ) )
     {
         SwWrtShell & rWrtSh = pView->GetWrtShell();
-        if (rWrtSh.GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ))
+        if (rWrtSh.GetDoc()->GetDocumentSettingManager().get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ))
             rWrtSh.AlignFormulaToBaseline( xObj );
     }
 }
diff --git a/sw/source/core/uibase/uiview/view.cxx b/sw/source/core/uibase/uiview/view.cxx
index 1d3ecd9..45a4d38 100644
--- a/sw/source/core/uibase/uiview/view.cxx
+++ b/sw/source/core/uibase/uiview/view.cxx
@@ -71,6 +71,7 @@
 #include <srcview.hxx>
 #include <doc.hxx>
 #include <IDocumentUndoRedo.hxx>
+#include <DocumentSettingManager.hxx>
 #include <drawdoc.hxx>
 #include <wdocsh.hxx>
 #include <wview.hxx>
@@ -191,7 +192,7 @@ void SwView::GotFocus() const
     {
         SwWrtShell& rWrtShell = GetWrtShell();
         rWrtShell.GetDoc()->SetCurrentViewShell( GetWrtShellPtr() );
-        rWrtShell.GetDoc()->set( IDocumentSettingAccess::BROWSE_MODE,
+        rWrtShell.GetDoc()->GetDocumentSettingManager().set( IDocumentSettingAccess::BROWSE_MODE,
                                  rWrtShell.GetViewOptions()->getBrowseMode() );
     }
 }
@@ -756,7 +757,7 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
     // but loading of docs with embedded fonts happens after SwDocShell is created
     // but before SwEditWin (which handles the VCL event) is created. So update
     // manually.
-    if( pDocSh->GetDoc()->get( IDocumentSettingAccess::EMBED_FONTS ))
+    if( pDocSh->GetDoc()->GetDocumentSettingManager().get( IDocumentSettingAccess::EMBED_FONTS ))
         pDocSh->UpdateFontList();
     bool bWebDShell = pDocSh->ISA(SwWebDocShell);
 
@@ -807,7 +808,7 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
         if( !bOldShellWasSrcView && bWebDShell && !m_bOldShellWasPagePreview )
             aUsrPref.setBrowseMode( true );
         else
-            aUsrPref.setBrowseMode( rDoc.get(IDocumentSettingAccess::BROWSE_MODE) );
+            aUsrPref.setBrowseMode( rDoc.GetDocumentSettingManager().get(IDocumentSettingAccess::BROWSE_MODE) );
 
         //For the BrowseMode we do not assume a factor.
         if( aUsrPref.getBrowseMode() && aUsrPref.GetZoomType() != SVX_ZOOM_PERCENT )
diff --git a/sw/source/core/uibase/uno/SwXDocumentSettings.cxx b/sw/source/core/uibase/uno/SwXDocumentSettings.cxx
index 6a472ab..92b4a51 100644
--- a/sw/source/core/uibase/uno/SwXDocumentSettings.cxx
+++ b/sw/source/core/uibase/uno/SwXDocumentSettings.cxx
@@ -26,6 +26,7 @@
 #include <com/sun/star/i18n/XForbiddenCharacters.hpp>
 #include <com/sun/star/document/PrinterIndependentLayout.hpp>
 #include <doc.hxx>
+#include <DocumentSettingManager.hxx>
 #include <docsh.hxx>
 #include <fldupde.hxx>
 #include <linkenum.hxx>
@@ -325,14 +326,14 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
                 default:
                     throw IllegalArgumentException();
             }
-            mpDoc->setLinkUpdateMode(nMode);
+            mpDoc->GetDocumentSettingManager().setLinkUpdateMode(nMode);
         }
         break;
         case HANDLE_FIELD_AUTO_UPDATE:
         {
             bool bUpdateField = *(sal_Bool*)rValue.getValue();
-            SwFldUpdateFlags nFlag = mpDoc->getFieldUpdateFlags(true);
-            mpDoc->setFieldUpdateFlags( bUpdateField ?
+            SwFldUpdateFlags nFlag = mpDoc->GetDocumentSettingManager().getFieldUpdateFlags(true);
+            mpDoc->GetDocumentSettingManager().setFieldUpdateFlags( bUpdateField ?
                                         nFlag == AUTOUPD_FIELD_AND_CHARTS ?
                                         AUTOUPD_FIELD_AND_CHARTS :
                                         AUTOUPD_FIELD_ONLY :
@@ -342,8 +343,8 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
         case HANDLE_CHART_AUTO_UPDATE:
         {
             bool bUpdateChart = *(sal_Bool*)rValue.getValue();
-            SwFldUpdateFlags nFlag = mpDoc->getFieldUpdateFlags(true);
-            mpDoc->setFieldUpdateFlags( (nFlag == AUTOUPD_FIELD_ONLY || nFlag == AUTOUPD_FIELD_AND_CHARTS ) ?
+            SwFldUpdateFlags nFlag = mpDoc->GetDocumentSettingManager().getFieldUpdateFlags(true);
+            mpDoc->GetDocumentSettingManager().setFieldUpdateFlags( (nFlag == AUTOUPD_FIELD_ONLY || nFlag == AUTOUPD_FIELD_AND_CHARTS ) ?
                                         bUpdateChart ?
                                         AUTOUPD_FIELD_AND_CHARTS :
                                         AUTOUPD_FIELD_ONLY :
@@ -354,20 +355,20 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
         {
             bool bParaSpace = false;
             rValue >>= bParaSpace;
-            mpDoc->set(IDocumentSettingAccess::PARA_SPACE_MAX, bParaSpace );
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::PARA_SPACE_MAX, bParaSpace );
         }
         break;
         case HANDLE_ADD_PARA_TABLE_SPACING_AT_START:
         {
             bool bParaSpacePage = false;
             rValue >>= bParaSpacePage;
-            mpDoc->set(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES, bParaSpacePage );
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES, bParaSpacePage );
         }
         break;
         case HANDLE_ALIGN_TAB_STOP_POSITION:
         {
             bool bAlignTab = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::TAB_COMPAT, bAlignTab);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::TAB_COMPAT, bAlignTab);
         }
         break;
         case HANDLE_PRINTER_NAME:
@@ -432,7 +433,7 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
         case HANDLE_IS_KERN_ASIAN_PUNCTUATION:
         {
             bool bIsKern = *(sal_Bool*)(rValue).getValue();
-            mpDoc->set(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION, bIsKern);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION, bIsKern);
             SwEditShell* pEditSh = mpDoc->GetEditShell();
             if(pEditSh)
                 pEditSh->ChgHyphenation();
@@ -451,7 +452,7 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
                 default:
                     throw IllegalArgumentException();
             }
-            mpDoc->setCharacterCompressionType(static_cast < SwCharCompressType > (nMode) );
+            mpDoc->GetDocumentSettingManager().setCharacterCompressionType(static_cast < SwCharCompressType > (nMode) );
         }
         break;
         case HANDLE_APPLY_USER_DATA:
@@ -462,7 +463,7 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
         case HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS:
         {
             bool bSaveGlobal = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, bSaveGlobal );
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, bSaveGlobal );
         }
         break;
         case HANDLE_CURRENT_DATABASE_DATA_SOURCE:
@@ -526,31 +527,31 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
             bool bSet = false;
             if(!(rValue >>= bSet))
                 throw IllegalArgumentException();
-            mpDoc->set(IDocumentSettingAccess::LABEL_DOCUMENT, bSet);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::LABEL_DOCUMENT, bSet);
         }
         break;
         case HANDLE_IS_ADD_FLY_OFFSET:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::ADD_FLY_OFFSETS, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::ADD_FLY_OFFSETS, bTmp);
         }
         break;
         case HANDLE_IS_ADD_EXTERNAL_LEADING:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::ADD_EXT_LEADING, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::ADD_EXT_LEADING, bTmp);
         }
         break;
         case HANDLE_OLD_NUMBERING: // #111955#
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::OLD_NUMBERING, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::OLD_NUMBERING, bTmp);
         }
         break;
         case HANDLE_OUTLINELEVEL_YIELDS_NUMBERING:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::OUTLINE_LEVEL_YIELDS_OUTLINE_RULE, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::OUTLINE_LEVEL_YIELDS_OUTLINE_RULE, bTmp);
         }
         break;
         case HANDLE_ALLOW_PRINTJOB_CANCEL:
@@ -564,25 +565,25 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
         case HANDLE_USE_FORMER_LINE_SPACING:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::OLD_LINE_SPACING, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::OLD_LINE_SPACING, bTmp);
         }
         break;
         case HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS, bTmp);
         }
         break;
         case HANDLE_USE_FORMER_OBJECT_POSITIONING:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::USE_FORMER_OBJECT_POS, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::USE_FORMER_OBJECT_POS, bTmp);
         }
         break;
         case HANDLE_USE_FORMER_TEXT_WRAPPING:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING, bTmp);
         }
         break;
         case HANDLE_CHANGES_PASSWORD:
@@ -603,37 +604,37 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
         case HANDLE_CONSIDER_WRAP_ON_OBJPOS:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION, bTmp );
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION, bTmp );
         }
         break;
         case HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING, bTmp);
         }
         break;
         case HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK, bTmp);
         }
         break;
         case HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT, bTmp);
         }
         break;
         case HANDLE_TABLE_ROW_KEEP:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::TABLE_ROW_KEEP, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::TABLE_ROW_KEEP, bTmp);
         }
         break;
         case HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION, bTmp);
+            mpDoc->GetDocumentSettingManager().set(IDocumentSettingAccess::IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION, bTmp);
         }
         break;
         case HANDLE_LOAD_READONLY:
@@ -644,19 +645,19 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
         case HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE:
         {
             bool bTmp = *(sal_Bool*)rValue.getValue();
-            mpDoc->set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, bTmp);

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list