LibreOffice Module sw (master)  1
doc.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 #ifndef INCLUDED_SW_INC_DOC_HXX
20 #define INCLUDED_SW_INC_DOC_HXX
21 
22 // SwDoc interfaces
23 #include <o3tl/deleter.hxx>
24 #include <o3tl/typed_flags_set.hxx>
25 #include <o3tl/sorted_vector.hxx>
26 #include <vcl/idle.hxx>
27 #include "swdllapi.h"
28 #include "swtypes.hxx"
29 #include "toxe.hxx"
30 #include "flyenum.hxx"
31 #include "flypos.hxx"
32 #include "swdbdata.hxx"
33 #include <sfx2/objsh.hxx>
34 #include <svl/style.hxx>
35 #include <editeng/numitem.hxx>
36 #include "tox.hxx"
37 #include "frmfmt.hxx"
38 #include "charfmt.hxx"
39 #include "docary.hxx"
40 #include "charformats.hxx"
41 #include "pagedesc.hxx"
42 #include "tblenum.hxx"
43 #include "ndarr.hxx"
44 #include "ndtyp.hxx"
45 #include <memory>
46 #include <mutex>
47 #include <set>
48 #include <tuple>
49 #include <unordered_map>
50 #include <vector>
51 
52 namespace editeng { class SvxBorderLine; }
53 
54 class SwExtTextInput;
55 class EditFieldInfo;
56 class Outliner;
57 class OutputDevice;
58 class Point;
59 class SbxArray;
60 class SdrObject;
61 class SdrUndoAction;
62 class SvNumberFormatter;
63 class SvxMacro;
64 class SwAutoCompleteWord;
66 class SwCellFrame;
67 class SwCellStyleTable;
68 class SwCursorShell;
69 class SwCursor;
70 class SwDocShell;
71 class SwDrawView;
72 class SwEditShell;
73 class SwFormat;
74 class SwFormatINetFormat;
75 class SwFormatRefMark;
76 class SwFootnoteIdxs;
77 class SwFootnoteInfo;
78 class SwEndNoteInfo;
79 class SwLineNumberInfo;
80 class SwDBManager;
81 class SwNodeIndex;
82 class SwNodeRange;
83 class SwNumRule;
85 class SwRootFrame;
86 class SwRubyListEntry;
87 class SwSectionFormat;
88 class SwSectionData;
89 class SwSelBoxes;
91 class SwTOXBaseSection;
92 class SwTabCols;
93 class SwTable;
94 class SwTableAutoFormat;
95 class SwTableBox;
96 class SwTableBoxFormat;
97 class SwTableFormat;
98 class SwTableLineFormat;
99 class SwTableNode;
100 class SwTextBlocks;
101 class SwURLStateChanged;
102 class SwUnoCursor;
103 class SwViewShell;
104 class SwDrawContact;
105 class SdrView;
106 class SdrMarkList;
107 class SwAuthEntry;
108 class SwLayoutCache;
109 class IStyleAccess;
110 struct SwCallMouseEvent;
111 struct SwDocStat;
112 struct SwSortOptions;
113 struct SwDefTOXBase_Impl;
114 class SwPrintUIOptions;
115 struct SwConversionArgs;
116 class IGrammarContact;
117 class SwRenderData;
118 class IDocumentUndoRedo;
125 class IDocumentListItems;
130 class IDocumentStatistics;
131 class IDocumentState;
135 class IDocumentMarkAccess;
136 class SetGetExpFields;
137 struct SwInsertTableOptions;
138 enum class SvMacroItemId : sal_uInt16;
139 enum class SvxFrameDirection;
140 enum class RndStdIds;
141 
142 namespace sw::mark { class MarkManager; }
143 namespace sw {
144  enum class RedlineMode;
145  enum class FieldmarkMode;
146  class MetaFieldManager;
147  class UndoManager;
148  class IShellCursorSupplier;
149  class DocumentSettingManager;
150  class DocumentDeviceManager;
151  class DocumentDrawModelManager;
152  class DocumentChartDataProviderManager;
153  class DocumentTimerManager;
154  class DocumentLinksAdministrationManager;
155  class DocumentListItemsManager;
156  class DocumentListsManager;
157  class DocumentOutlineNodesManager;
158  class DocumentContentOperationsManager;
159  class DocumentRedlineManager;
160  class DocumentFieldsManager;
161  class DocumentStatisticsManager;
162  class DocumentStateManager;
163  class DocumentLayoutManager;
164  class DocumentStylePoolManager;
165  class DocumentExternalDataManager;
166 }
167 
168 namespace com::sun::star {
169  namespace container {
170  class XNameContainer; //< for getXForms()/isXForms()/initXForms() methods
171  }
172  namespace embed { class XStorage; }
173  namespace linguistic2 { class XHyphenatedWord; }
174  namespace linguistic2 { class XProofreadingIterator; }
175  namespace linguistic2 { class XSpellChecker1; }
176  namespace script::vba { class XVBAEventProcessor; }
177 }
178 
179 namespace sfx2 {
180  class IXmlIdRegistry;
181 }
182 
183 void SetAllScriptItem( SfxItemSet& rSet, const SfxPoolItem& rItem );
184 
185 using SwRubyList = std::vector<std::unique_ptr<SwRubyListEntry>>;
186 
187 // Represents the model of a Writer document.
188 class SW_DLLPUBLIC SwDoc final
189 {
190  friend class ::sw::DocumentContentOperationsManager;
191 
192  friend void InitCore();
193  friend void FinitCore();
194 
195  // private Member
196  std::unique_ptr<SwNodes> m_pNodes; //< document content (Nodes Array)
197  rtl::Reference<SwAttrPool> mpAttrPool; //< the attribute pool
198  SwPageDescs m_PageDescs; //< PageDescriptors
199  Link<bool,void> maOle2Link; //< OLE 2.0-notification
200  /* @@@MAINTAINABILITY-HORROR@@@
201  Timer should not be members of the model
202  */
203  Idle maOLEModifiedIdle; //< Timer for update modified OLE-Objects
204  SwDBData maDBData; //< database descriptor
205  OUString msTOIAutoMarkURL; //< URL of table of index AutoMark file
206  std::vector<OUString> m_PatternNames; //< Array for names of document-templates
207  css::uno::Reference<css::container::XNameContainer>
208  mxXForms; //< container with XForms models
209  mutable css::uno::Reference< css::linguistic2::XProofreadingIterator > m_xGCIterator;
210 
211  const std::unique_ptr< ::sw::mark::MarkManager> mpMarkManager;
212  const std::unique_ptr< ::sw::MetaFieldManager > m_pMetaFieldManager;
213  const std::unique_ptr< ::sw::DocumentDrawModelManager > m_pDocumentDrawModelManager;
214  const std::unique_ptr< ::sw::DocumentRedlineManager > m_pDocumentRedlineManager;
215  const std::unique_ptr< ::sw::DocumentStateManager > m_pDocumentStateManager;
216  const std::unique_ptr< ::sw::UndoManager > m_pUndoManager;
217  const std::unique_ptr< ::sw::DocumentSettingManager > m_pDocumentSettingManager;
218  const std::unique_ptr< ::sw::DocumentChartDataProviderManager > m_pDocumentChartDataProviderManager;
219  std::unique_ptr< ::sw::DocumentDeviceManager > m_pDeviceAccess;
220  const std::unique_ptr< ::sw::DocumentTimerManager > m_pDocumentTimerManager;
221  const std::unique_ptr< ::sw::DocumentLinksAdministrationManager > m_pDocumentLinksAdministrationManager;
222  const std::unique_ptr< ::sw::DocumentListItemsManager > m_pDocumentListItemsManager;
223  const std::unique_ptr< ::sw::DocumentListsManager > m_pDocumentListsManager;
224  const std::unique_ptr< ::sw::DocumentOutlineNodesManager > m_pDocumentOutlineNodesManager;
225  const std::unique_ptr< ::sw::DocumentContentOperationsManager > m_pDocumentContentOperationsManager;
226  const std::unique_ptr< ::sw::DocumentFieldsManager > m_pDocumentFieldsManager;
227  const std::unique_ptr< ::sw::DocumentStatisticsManager > m_pDocumentStatisticsManager;
228  const std::unique_ptr< ::sw::DocumentLayoutManager > m_pDocumentLayoutManager;
229  const std::unique_ptr< ::sw::DocumentStylePoolManager > m_pDocumentStylePoolManager;
230  const std::unique_ptr< ::sw::DocumentExternalDataManager > m_pDocumentExternalDataManager;
231 
232  // Pointer
233  std::unique_ptr<SwFrameFormat> mpDfltFrameFormat; //< Default formats.
234  std::unique_ptr<SwFrameFormat> mpEmptyPageFormat; //< Format for the default empty page
235  std::unique_ptr<SwFrameFormat> mpColumnContFormat; //< Format for column container
236  std::unique_ptr<SwCharFormat> mpDfltCharFormat;
237  std::unique_ptr<SwTextFormatColl> mpDfltTextFormatColl; //< Defaultformatcollections
238  std::unique_ptr<SwGrfFormatColl> mpDfltGrfFormatColl;
239 
240  std::unique_ptr<SwFrameFormats> mpFrameFormatTable; //< Format table
241  std::unique_ptr<SwCharFormats> mpCharFormatTable;
242  std::unique_ptr<SwFrameFormats> mpSpzFrameFormatTable;
243  std::unique_ptr<SwSectionFormats> mpSectionFormatTable;
244  std::unique_ptr<SwFrameFormats> mpTableFrameFormatTable; //< For tables
245  std::unique_ptr<SwTextFormatColls> mpTextFormatCollTable; //< FormatCollections
246  std::unique_ptr<SwGrfFormatColls> mpGrfFormatCollTable;
247 
248  std::unique_ptr<SwTOXTypes> mpTOXTypes; //< Tables/indices
249  std::unique_ptr<SwDefTOXBase_Impl> mpDefTOXBases; //< defaults of SwTOXBase's
250 
251  std::unique_ptr<SwDBManager, o3tl::default_delete<SwDBManager>> m_pOwnDBManager; //< own DBManager
252  SwDBManager * m_pDBManager; //< DBManager for evaluation of DB-fields.
253 
255  std::unique_ptr<SwFootnoteInfo> mpFootnoteInfo;
256  std::unique_ptr<SwEndNoteInfo> mpEndNoteInfo;
257  std::unique_ptr<SwLineNumberInfo> mpLineNumberInfo;
258  std::unique_ptr<SwFootnoteIdxs> mpFootnoteIdxs;
259 
260  SwDocShell *mpDocShell; //< Ptr to SfxDocShell of Doc.
261  SfxObjectShellLock mxTmpDocShell; //< A temporary shell that is used to copy OLE-Nodes
262 
263  std::unique_ptr<SwAutoCorrExceptWord> mpACEWord;
265  std::unique_ptr<SwURLStateChanged> mpURLStateChgd; //< SfxClient for changes in INetHistory
266 
268  SvNumberFormatter* mpNumberFormatter; //< NumFormatter for tables / fields
269 
270  mutable std::unique_ptr<SwNumRuleTable> mpNumRuleTable; //< List of all named NumRules.
271 
272  // Hash map to find numrules by name
273  mutable std::unordered_map<OUString, SwNumRule *> maNumRuleMap;
274 
275  std::unique_ptr<SwPagePreviewPrtData> m_pPgPViewPrtData; //< Indenting / spacing for printing of page view.
277 
278  std::unique_ptr<IStyleAccess> mpStyleAccess; //< handling of automatic styles
279  std::unique_ptr<SwLayoutCache> mpLayoutCache;
282  std::unique_ptr<IGrammarContact> mpGrammarContact; //< for grammar checking in paragraphs during editing
283 
284  css::uno::Reference< css::script::vba::XVBAEventProcessor > mxVbaEvents;
285  css::uno::Reference<css::container::XNameContainer> m_xTemplateToProjectCache;
286 
288  std::unique_ptr<SwTableAutoFormatTable> m_pTableStyles;
290  std::unique_ptr<SwCellStyleTable> mpCellStyles;
291 private:
292  std::unique_ptr< ::sfx2::IXmlIdRegistry > m_pXmlIdRegistry;
293 
294  // other
295 
296  sal_uInt32 mnRsid; //< current session ID of the document
297  sal_uInt32 mnRsidRoot; //< session ID when the document was created
298 
299  oslInterlockedCount mReferenceCount;
300 
301  bool mbDtor : 1;
305  bool mbCopyIsMove : 1; //< TRUE: Copy is a hidden Move.
306  bool mbInReading : 1; //< TRUE: Document is in the process of being read.
307  bool mbInWriting : 1; //< TRUE: Document is in the process of being written.
308  bool mbInMailMerge : 1; //< TRUE: Document is in the process of being written by mail merge.
309  bool mbInXMLImport : 1; //< TRUE: During xml import, attribute portion building is not necessary.
310  bool mbInWriterfilterImport : 1; //< TRUE: writerfilter import (DOCX,RTF)
311  bool mbUpdateTOX : 1; //< TRUE: After loading document, update TOX.
312  bool mbInLoadAsynchron : 1; //< TRUE: Document is in the process of being loaded asynchronously.
313  bool mbIsAutoFormatRedline : 1; //< TRUE: Redlines are recorded by Autoformat.
314  bool mbOLEPrtNotifyPending : 1;
316  bool mbAllOLENotify : 1; //< True: Notification of all objects is required.
317  bool mbInsOnlyTextGlssry : 1; //< True: insert 'only text' glossary into doc
318  bool mbContains_MSVBasic : 1; //< True: MS-VBasic exist is in our storage
319  bool mbClipBoard : 1; //< TRUE: this document represents the clipboard
320  bool mbColumnSelection : 1; //< TRUE: this content has been created by a column selection (clipboard docs only)
321  bool mbIsPrepareSelAll : 1;
322 
323  enum MissingDictionary { False = -1, Undefined = 0, True = 1 };
325 
326  // true: Document contains at least one anchored object, which is anchored AT_PAGE with a content position.
327  // Thus, certain adjustment needed during formatting for these kind of anchored objects.
328  bool mbContainsAtPageObjWithContentAnchor : 1;
329 
330  static SwAutoCompleteWord *s_pAutoCompleteWords; //< List of all words for AutoComplete
331 
332  // private methods
333  SwFlyFrameFormat* MakeFlySection_( const SwPosition& rAnchPos,
334  const SwContentNode& rNode, RndStdIds eRequestId,
335  const SfxItemSet* pFlyAttrSet,
336  SwFrameFormat* );
337  sal_Int8 SetFlyFrameAnchor( SwFrameFormat& rFlyFormat, SfxItemSet& rSet, bool bNewFrames );
338 
339  typedef SwFormat* (SwDoc::*FNCopyFormat)( const OUString&, SwFormat*, bool, bool );
340  SwFormat* CopyFormat( const SwFormat& rFormat, const SwFormatsBase& rFormatArr,
341  FNCopyFormat fnCopyFormat, const SwFormat& rDfltFormat );
342  void CopyFormatArr( const SwFormatsBase& rSourceArr, SwFormatsBase const & rDestArr,
343  FNCopyFormat fnCopyFormat, SwFormat& rDfltFormat );
344  void CopyPageDescHeaderFooterImpl( bool bCpyHeader,
345  const SwFrameFormat& rSrcFormat, SwFrameFormat& rDestFormat );
346 
347  SwDoc( const SwDoc &) = delete;
348 
349  // Database fields:
350  void AddUsedDBToList( std::vector<OUString>& rDBNameList,
351  const std::vector<OUString>& rUsedDBNames );
352  void AddUsedDBToList( std::vector<OUString>& rDBNameList, const OUString& rDBName );
353  static bool IsNameInArray( const std::vector<OUString>& rOldNames, const OUString& rName );
354  void GetAllDBNames( std::vector<OUString>& rAllDBNames );
355  static OUString ReplaceUsedDBs( const std::vector<OUString>& rUsedDBNames,
356  const OUString& rNewName, const OUString& rFormula );
357  static std::vector<OUString>& FindUsedDBs( const std::vector<OUString>& rAllDBNames,
358  const OUString& rFormula,
359  std::vector<OUString>& rUsedDBNames );
360 
361  void EnsureNumberFormatter(); // must be called with mNumberFormatterMutex locked
362 
363  bool UnProtectTableCells( SwTable& rTable );
364 
367  bool SplitDoc( sal_uInt16 eDocType, const OUString& rPath, bool bOutline,
368  const SwTextFormatColl* pSplitColl, int nOutlineLevel = 0 );
369 
370  // Update charts of given table.
371  void UpdateCharts_( const SwTable& rTable, SwViewShell const & rVSh ) const;
372 
373  static bool SelectNextRubyChars( SwPaM& rPam, SwRubyListEntry& rRubyEntry );
374 
375  // CharTimer calls this method.
376  void DoUpdateAllCharts();
377  DECL_LINK( DoUpdateModifiedOLE, Timer *, void );
378 
379 public:
380  SwFormat *MakeCharFormat_(const OUString &, SwFormat *, bool, bool );
381  SwFormat *MakeFrameFormat_(const OUString &, SwFormat *, bool, bool );
382 
383 private:
384  SwFormat *MakeTextFormatColl_(const OUString &, SwFormat *, bool, bool );
385 
386 private:
387  OUString msDocAccTitle;
388 
389  void InitTOXTypes();
390 
391 public:
394  DOCTYPE_MSWORD // This doc model comes from MS Word
395  };
397  DocumentType GetDocumentType() const { return meDocType; }
398  void SetDocumentType( DocumentType eDocType ) { meDocType = eDocType; }
399 
400  // Life cycle
401  SwDoc();
402  ~SwDoc();
403 
404  bool IsInDtor() const { return mbDtor; }
405 
406  /* @@@MAINTAINABILITY-HORROR@@@
407  Implementation details made public.
408  */
409  SwNodes & GetNodes() { return *m_pNodes; }
410  SwNodes const& GetNodes() const { return *m_pNodes; }
411 
412 private:
413  friend class ::rtl::Reference<SwDoc>;
414 
422  sal_Int32 acquire();
431  sal_Int32 release();
435 public:
436  sal_Int32 getReferenceCount() const;
437 
438  // IDocumentSettingAccess
439  IDocumentSettingAccess const & getIDocumentSettingAccess() const; //The IDocumentSettingAccess interface
440  IDocumentSettingAccess & getIDocumentSettingAccess();
441  ::sw::DocumentSettingManager & GetDocumentSettingManager(); //The implementation of the interface with some additional methods
442  ::sw::DocumentSettingManager const& GetDocumentSettingManager() const;
443  sal_uInt32 getRsid() const;
444  void setRsid( sal_uInt32 nVal );
445  sal_uInt32 getRsidRoot() const;
446  void setRsidRoot( sal_uInt32 nVal );
447 
448  // IDocumentDeviceAccess
449  IDocumentDeviceAccess const & getIDocumentDeviceAccess() const;
450  IDocumentDeviceAccess & getIDocumentDeviceAccess();
451 
452  // IDocumentMarkAccess
453  IDocumentMarkAccess* getIDocumentMarkAccess();
454  const IDocumentMarkAccess* getIDocumentMarkAccess() const;
455 
456  // IDocumentRedlineAccess
457  IDocumentRedlineAccess const& getIDocumentRedlineAccess() const;
458  IDocumentRedlineAccess& getIDocumentRedlineAccess();
459 
460  ::sw::DocumentRedlineManager const& GetDocumentRedlineManager() const;
461  ::sw::DocumentRedlineManager& GetDocumentRedlineManager();
462 
463  // IDocumentUndoRedo
464  IDocumentUndoRedo & GetIDocumentUndoRedo();
465  IDocumentUndoRedo const& GetIDocumentUndoRedo() const;
466 
467  // IDocumentLinksAdministration
468  IDocumentLinksAdministration const & getIDocumentLinksAdministration() const;
469  IDocumentLinksAdministration & getIDocumentLinksAdministration();
470 
471  ::sw::DocumentLinksAdministrationManager const & GetDocumentLinksAdministrationManager() const;
472  ::sw::DocumentLinksAdministrationManager & GetDocumentLinksAdministrationManager();
473 
474  // IDocumentFieldsAccess
475  IDocumentFieldsAccess const & getIDocumentFieldsAccess() const;
476  IDocumentFieldsAccess & getIDocumentFieldsAccess();
477 
478  ::sw::DocumentFieldsManager & GetDocumentFieldsManager();
479 
480  // Returns 0 if the field cannot hide para, or a positive integer indicating the field type
481  // "weight" when several hiding fields' FieldHidesPara() give conflicting results
482  int FieldCanHideParaWeight(SwFieldIds eFieldId) const;
483  bool FieldHidesPara(const SwField& rField) const;
484 
485  // IDocumentContentOperations
486  IDocumentContentOperations const & getIDocumentContentOperations() const;
487  IDocumentContentOperations & getIDocumentContentOperations();
488  ::sw::DocumentContentOperationsManager const & GetDocumentContentOperationsManager() const;
489  ::sw::DocumentContentOperationsManager & GetDocumentContentOperationsManager();
490 
491  bool UpdateParRsid( SwTextNode *pTextNode, sal_uInt32 nVal = 0 );
492  void UpdateRsid( const SwPaM &rRg, sal_Int32 nLen );
493 
494  // IDocumentStylePoolAccess
495  IDocumentStylePoolAccess const & getIDocumentStylePoolAccess() const;
496  IDocumentStylePoolAccess & getIDocumentStylePoolAccess();
497 
498  // SwLineNumberInfo
499  const SwLineNumberInfo& GetLineNumberInfo() const;
500  void SetLineNumberInfo(const SwLineNumberInfo& rInfo);
501 
502  // IDocumentStatistics
503  IDocumentStatistics const & getIDocumentStatistics() const;
504  IDocumentStatistics & getIDocumentStatistics();
505 
506  ::sw::DocumentStatisticsManager const & GetDocumentStatisticsManager() const;
507  ::sw::DocumentStatisticsManager & GetDocumentStatisticsManager();
508 
509  // IDocumentState
510  IDocumentState const & getIDocumentState() const;
511  IDocumentState & getIDocumentState();
512 
513  // IDocumentDrawModelAccess
514  void AddDrawUndo( std::unique_ptr<SdrUndoAction> );
515  IDocumentDrawModelAccess const & getIDocumentDrawModelAccess() const;
516  IDocumentDrawModelAccess & getIDocumentDrawModelAccess();
517 
518  ::sw::DocumentDrawModelManager const & GetDocumentDrawModelManager() const;
519  ::sw::DocumentDrawModelManager & GetDocumentDrawModelManager();
520 
521  // IDocumentLayoutAccess
522  IDocumentLayoutAccess const & getIDocumentLayoutAccess() const;
523  IDocumentLayoutAccess & getIDocumentLayoutAccess();
524 
525  ::sw::DocumentLayoutManager const & GetDocumentLayoutManager() const;
526  ::sw::DocumentLayoutManager & GetDocumentLayoutManager();
527 
528  // IDocumentTimerAccess
529  // Our own 'IdleTimer' calls the following method
530  IDocumentTimerAccess const & getIDocumentTimerAccess() const;
531  IDocumentTimerAccess & getIDocumentTimerAccess();
532 
533  // IDocumentChartDataProviderAccess
534  IDocumentChartDataProviderAccess const & getIDocumentChartDataProviderAccess() const;
535  IDocumentChartDataProviderAccess & getIDocumentChartDataProviderAccess();
536 
537  // IDocumentListItems
538  IDocumentListItems const & getIDocumentListItems() const;
539  IDocumentListItems & getIDocumentListItems();
540 
541  // IDocumentOutlineNodes
542  IDocumentOutlineNodes const & getIDocumentOutlineNodes() const;
543  IDocumentOutlineNodes & getIDocumentOutlineNodes();
544 
545  // IDocumentListsAccess
546  IDocumentListsAccess const & getIDocumentListsAccess() const;
547  IDocumentListsAccess & getIDocumentListsAccess();
548 
549  //IDocumentExternalData
550  IDocumentExternalData const & getIDocumentExternalData() const;
551  IDocumentExternalData & getIDocumentExternalData();
552 
553  //End of Interfaces
554 
555  void setDocAccTitle( const OUString& rTitle ) { msDocAccTitle = rTitle; }
556  const OUString& getDocAccTitle() const { return msDocAccTitle; }
557 
558  // INextInterface here
559  DECL_LINK(CalcFieldValueHdl, EditFieldInfo*, void);
560 
561  // OLE ???
562  bool IsOLEPrtNotifyPending() const { return mbOLEPrtNotifyPending; }
563  inline void SetOLEPrtNotifyPending( bool bSet = true );
564  void PrtOLENotify( bool bAll ); // All or only marked
565 
566  bool IsPrepareSelAll() const { return mbIsPrepareSelAll; }
567  void SetPrepareSelAll() { mbIsPrepareSelAll = true; }
568 
569  void SetContainsAtPageObjWithContentAnchor( const bool bFlag )
570  {
571  mbContainsAtPageObjWithContentAnchor = bFlag;
572  }
574  {
575  return mbContainsAtPageObjWithContentAnchor;
576  }
577 
583  SwPosFlyFrames GetAllFlyFormats( const SwPaM*,
584  bool bDrawAlso,
585  bool bAsCharAlso = false ) const;
586 
587  SwFlyFrameFormat *MakeFlyFrameFormat (const OUString &rFormatName, SwFrameFormat *pDerivedFrom);
588  SwDrawFrameFormat *MakeDrawFrameFormat(const OUString &rFormatName, SwFrameFormat *pDerivedFrom);
589 
590  // From now on this interface has to be used for Flys.
591  // pAnchorPos must be set, if they are not attached to pages AND
592  // Anchor is not already set at valid ContentPos
593  // in FlySet/FrameFormat.
594  /* new parameter bCalledFromShell
595 
596  true: An existing adjust item at pAnchorPos is propagated to
597  the content node of the new fly section. That propagation only
598  takes place if there is no adjust item in the paragraph style
599  for the new fly section.
600 
601  false: no propagation
602  */
603  SwFlyFrameFormat* MakeFlySection( RndStdIds eAnchorType,
604  const SwPosition* pAnchorPos,
605  const SfxItemSet* pSet = nullptr,
606  SwFrameFormat *pParent = nullptr,
607  bool bCalledFromShell = false );
608  SwFlyFrameFormat* MakeFlyAndMove( const SwPaM& rPam, const SfxItemSet& rSet,
609  const SwSelBoxes* pSelBoxes,
610  SwFrameFormat *pParent );
611 
612  // Helper that checks for unique items for DrawingLayer items of type NameOrIndex
613  // and evtl. corrects that items to ensure unique names for that type. This call may
614  // modify/correct entries inside of the given SfxItemSet, and it will apply a name to
615  // the items in question (what is essential to make the named slots associated with
616  // these items work for the UNO API and thus e.g. for ODF import/export)
617  void CheckForUniqueItemForLineFillNameOrIndex(SfxItemSet& rSet);
618 
619  bool SetFlyFrameAttr( SwFrameFormat& rFlyFormat, SfxItemSet& rSet );
620 
621  bool SetFrameFormatToFly( SwFrameFormat& rFlyFormat, SwFrameFormat& rNewFormat,
622  SfxItemSet* pSet = nullptr, bool bKeepOrient = false );
623  void SetFlyFrameTitle( SwFlyFrameFormat& rFlyFrameFormat,
624  const OUString& sNewTitle );
625  void SetFlyFrameDescription( SwFlyFrameFormat& rFlyFrameFormat,
626  const OUString& sNewDescription );
627 
628  // Footnotes
629  // Footnote information
630  const SwFootnoteInfo& GetFootnoteInfo() const { return *mpFootnoteInfo; }
631  void SetFootnoteInfo(const SwFootnoteInfo& rInfo);
632  const SwEndNoteInfo& GetEndNoteInfo() const { return *mpEndNoteInfo; }
633  void SetEndNoteInfo(const SwEndNoteInfo& rInfo);
634  SwFootnoteIdxs& GetFootnoteIdxs() { return *mpFootnoteIdxs; }
635  const SwFootnoteIdxs& GetFootnoteIdxs() const { return *mpFootnoteIdxs; }
637  bool SetCurFootnote( const SwPaM& rPam, const OUString& rNumStr,
638  bool bIsEndNote );
639 
643  css::uno::Any
644  Spell( SwPaM&, css::uno::Reference< css::linguistic2::XSpellChecker1 > const &,
645  sal_uInt16* pPageCnt, sal_uInt16* pPageSt, bool bGrammarCheck,
646  SwRootFrame const* pLayout, // for grammar-check
647  SwConversionArgs *pConvArgs = nullptr ) const;
648 
649  css::uno::Reference< css::linguistic2::XHyphenatedWord >
650  Hyphenate( SwPaM *pPam, const Point &rCursorPos,
651  sal_uInt16* pPageCnt, sal_uInt16* pPageSt );
652 
653  // count words in pam
654  static void CountWords( const SwPaM& rPaM, SwDocStat& rStat );
655 
656  // Glossary Document
657  bool IsInsOnlyTextGlossary() const { return mbInsOnlyTextGlssry; }
658 
659  void Summary(SwDoc& rExtDoc, sal_uInt8 nLevel, sal_uInt8 nPara, bool bImpress);
660 
661  void ChangeAuthorityData(const SwAuthEntry* pNewData);
662 
663  bool IsInHeaderFooter( const SwNodeIndex& rIdx ) const;
664  SvxFrameDirection GetTextDirection( const SwPosition& rPos,
665  const Point* pPt = nullptr ) const;
666  bool IsInVerticalText( const SwPosition& rPos ) const;
667 
668  // Database and DB-Manager
669  void SetDBManager( SwDBManager* pNewMgr ) { m_pDBManager = pNewMgr; }
670  SwDBManager* GetDBManager() const { return m_pDBManager; }
671  void ChangeDBFields( const std::vector<OUString>& rOldNames,
672  const OUString& rNewName );
673  void SetInitDBFields(bool b);
674 
675  // Find out which databases are used by fields.
676  void GetAllUsedDB( std::vector<OUString>& rDBNameList,
677  const std::vector<OUString>* pAllDBNames = nullptr );
678 
679  void ChgDBData( const SwDBData& rNewData );
680  SwDBData const & GetDBData();
681 
682  // Some helper functions
683  OUString GetUniqueGrfName() const;
684  OUString GetUniqueOLEName() const;
685  OUString GetUniqueFrameName() const;
686  OUString GetUniqueShapeName() const;
687  OUString GetUniqueDrawObjectName() const;
688 
689  o3tl::sorted_vector<SwRootFrame*> GetAllLayouts();
690 
691  void SetFlyName( SwFlyFrameFormat& rFormat, const OUString& rName );
692  const SwFlyFrameFormat* FindFlyByName( const OUString& rName, SwNodeType nNdTyp = SwNodeType::NONE ) const;
693 
694  static void GetGrfNms( const SwFlyFrameFormat& rFormat, OUString* pGrfName, OUString* pFltName );
695 
696  // Set a valid name for all Flys that have none (Called by Readers after reading).
697  void SetAllUniqueFlyNames();
698 
703  void ResetAttrs( const SwPaM &rRg,
704  bool bTextAttr = true,
706  const bool bSendDataChangedEvents = true,
707  SwRootFrame const* pLayout = nullptr);
708  void RstTextAttrs(const SwPaM &rRg, bool bInclRefToxMark = false,
709  bool bExactRange = false, SwRootFrame const* pLayout = nullptr);
710 
713  void SetAttr( const SfxPoolItem&, SwFormat& );
716  void SetAttr( const SfxItemSet&, SwFormat& );
717 
718  // method to reset a certain attribute at the given format
719  void ResetAttrAtFormat( const sal_uInt16 nWhichId,
720  SwFormat& rChangedFormat );
721 
724  void SetDefault( const SfxPoolItem& );
725  void SetDefault( const SfxItemSet& );
726 
727  // Query default attribute in this document.
728  const SfxPoolItem& GetDefault( sal_uInt16 nFormatHint ) const;
729  template<class T> const T& GetDefault( TypedWhichId<T> nWhich ) const
730  {
731  return static_cast<const T&>(GetDefault(sal_uInt16(nWhich)));
732  }
733 
734  // Do not expand text attributes.
735  bool DontExpandFormat( const SwPosition& rPos, bool bFlag = true );
736 
737  // Formats
738  const SwFrameFormats* GetFrameFormats() const { return mpFrameFormatTable.get(); }
739  SwFrameFormats* GetFrameFormats() { return mpFrameFormatTable.get(); }
740  const SwCharFormats* GetCharFormats() const { return mpCharFormatTable.get();}
741  SwCharFormats* GetCharFormats() { return mpCharFormatTable.get();}
742 
743  // LayoutFormats (frames, DrawObjects), sometimes const sometimes not
744  const SwFrameFormats* GetSpzFrameFormats() const { return mpSpzFrameFormatTable.get(); }
745  SwFrameFormats* GetSpzFrameFormats() { return mpSpzFrameFormatTable.get(); }
746 
747  const SwFrameFormat *GetDfltFrameFormat() const { return mpDfltFrameFormat.get(); }
748  SwFrameFormat *GetDfltFrameFormat() { return mpDfltFrameFormat.get(); }
749  const SwFrameFormat *GetEmptyPageFormat() const { return mpEmptyPageFormat.get(); }
750  SwFrameFormat *GetEmptyPageFormat() { return mpEmptyPageFormat.get(); }
751  const SwFrameFormat *GetColumnContFormat() const{ return mpColumnContFormat.get(); }
752  SwFrameFormat *GetColumnContFormat() { return mpColumnContFormat.get(); }
753  const SwCharFormat *GetDfltCharFormat() const { return mpDfltCharFormat.get();}
754  SwCharFormat *GetDfltCharFormat() { return mpDfltCharFormat.get();}
755 
756  // @return the interface of the management of (auto)styles
757  IStyleAccess& GetIStyleAccess() { return *mpStyleAccess; }
758 
759  // Remove all language dependencies from all existing formats
760  void RemoveAllFormatLanguageDependencies();
761 
762  SwFrameFormat *MakeFrameFormat(const OUString &rFormatName, SwFrameFormat *pDerivedFrom,
763  bool bBroadcast = false, bool bAuto = true);
764  void DelFrameFormat( SwFrameFormat *pFormat, bool bBroadcast = false );
765  SwFrameFormat* FindFrameFormatByName( const OUString& rName ) const;
766 
767  SwCharFormat *MakeCharFormat(const OUString &rFormatName, SwCharFormat *pDerivedFrom,
768  bool bBroadcast = false );
769  void DelCharFormat(size_t nFormat, bool bBroadcast = false);
770  void DelCharFormat(SwCharFormat const * pFormat, bool bBroadcast = false);
771  SwCharFormat* FindCharFormatByName( const OUString& rName ) const
772  { return mpCharFormatTable->FindFormatByName(rName); }
773 
774  // Formatcollections (styles)
775  // TXT
776  const SwTextFormatColl* GetDfltTextFormatColl() const { return mpDfltTextFormatColl.get(); }
777  SwTextFormatColl* GetDfltTextFormatColl() { return mpDfltTextFormatColl.get(); }
778  const SwTextFormatColls *GetTextFormatColls() const { return mpTextFormatCollTable.get(); }
779  SwTextFormatColls *GetTextFormatColls() { return mpTextFormatCollTable.get(); }
780  SwTextFormatColl *MakeTextFormatColl( const OUString &rFormatName,
781  SwTextFormatColl *pDerivedFrom,
782  bool bBroadcast = false);
783  SwConditionTextFormatColl* MakeCondTextFormatColl( const OUString &rFormatName,
784  SwTextFormatColl *pDerivedFrom,
785  bool bBroadcast = false);
786  void DelTextFormatColl(size_t nFormat, bool bBroadcast = false);
787  void DelTextFormatColl( SwTextFormatColl const * pColl, bool bBroadcast = false );
795  bool SetTextFormatColl(const SwPaM &rRg, SwTextFormatColl *pFormat,
796  const bool bReset = true,
797  const bool bResetListAttrs = false,
798  SwRootFrame const* pLayout = nullptr);
799  SwTextFormatColl* FindTextFormatCollByName( const OUString& rName ) const
800  { return mpTextFormatCollTable->FindFormatByName(rName); }
801 
802  void ChkCondColls();
803 
804  const SwGrfFormatColl* GetDfltGrfFormatColl() const { return mpDfltGrfFormatColl.get(); }
805  SwGrfFormatColl* GetDfltGrfFormatColl() { return mpDfltGrfFormatColl.get(); }
806  const SwGrfFormatColls *GetGrfFormatColls() const { return mpGrfFormatCollTable.get(); }
807  SwGrfFormatColl *MakeGrfFormatColl(const OUString &rFormatName,
808  SwGrfFormatColl *pDerivedFrom);
809 
810  // Table formatting
811  const SwFrameFormats* GetTableFrameFormats() const { return mpTableFrameFormatTable.get(); }
812  SwFrameFormats* GetTableFrameFormats() { return mpTableFrameFormatTable.get(); }
813  size_t GetTableFrameFormatCount( bool bUsed ) const;
814  SwFrameFormat& GetTableFrameFormat(size_t nFormat, bool bUsed ) const;
815  SwTableFormat* MakeTableFrameFormat(const OUString &rFormatName, SwFrameFormat *pDerivedFrom);
816  void DelTableFrameFormat( SwTableFormat* pFormat );
817  SwTableFormat* FindTableFormatByName( const OUString& rName, bool bAll = false ) const;
818 
821  size_t GetFlyCount( FlyCntType eType, bool bIgnoreTextBoxes = false ) const;
822  SwFrameFormat* GetFlyNum(size_t nIdx, FlyCntType eType, bool bIgnoreTextBoxes = false );
823  std::vector<SwFrameFormat const*> GetFlyFrameFormats(
824  FlyCntType eType,
825  bool bIgnoreTextBoxes);
826 
827  // Copy formats in own arrays and return them.
828  SwFrameFormat *CopyFrameFormat ( const SwFrameFormat& );
829  SwCharFormat *CopyCharFormat( const SwCharFormat& );
830  SwTextFormatColl* CopyTextColl( const SwTextFormatColl& rColl );
831  SwGrfFormatColl* CopyGrfColl( const SwGrfFormatColl& rColl );
832 
833  // Replace all styles with those from rSource.
834  void ReplaceStyles( const SwDoc& rSource, bool bIncludePageStyles = true );
835 
836  // Replace all property defaults with those from rSource.
837  void ReplaceDefaults( const SwDoc& rSource );
838 
839  // Replace all compatibility options with those from rSource.
840  void ReplaceCompatibilityOptions( const SwDoc& rSource );
841 
845  void ReplaceUserDefinedDocumentProperties( const css::uno::Reference< css::document::XDocumentProperties >& xSourceDocProps );
846 
851  void ReplaceDocumentProperties(const SwDoc& rSource, bool mailMerge = false);
852 
853  // Query if style (paragraph- / character- / frame- / page-) is used.
854  bool IsUsed( const sw::BroadcastingModify& ) const;
856  bool IsUsed( const SwTableAutoFormat& ) const;
857  bool IsUsed( const SwNumRule& );
858 
859  // Set name of newly loaded document template.
860  size_t SetDocPattern(const OUString& rPatternName);
861 
862  // @return name of document template. Can be 0!
863  const OUString* GetDocPattern(size_t nPos) const;
864 
865  // travel over PaM Ring
866  bool InsertGlossary( SwTextBlocks& rBlock, const OUString& rEntry,
867  SwPaM& rPaM, SwCursorShell* pShell = nullptr);
868 
871  static void CalculatePagesForPrinting( const SwRootFrame& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport,
872  sal_Int32 nDocPageCount );
873  static void UpdatePagesForPrintingWithPostItData( SwRenderData &rData, const SwPrintUIOptions &rOptions,
874  sal_Int32 nDocPageCount );
875  static void CalculatePagePairsForProspectPrinting( const SwRootFrame& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions,
876  sal_Int32 nDocPageCount );
877  static void CalculateNonBlankPages( const SwRootFrame& rLayout, sal_uInt16& nDocPageCount, sal_uInt16& nActualPage );
878 
879  // PageDescriptor interface.
880  size_t GetPageDescCnt() const { return m_PageDescs.size(); }
881  const SwPageDesc& GetPageDesc(const size_t i) const { return *m_PageDescs[i]; }
882  SwPageDesc& GetPageDesc(size_t const i) { return *m_PageDescs[i]; }
883  SwPageDesc* FindPageDesc(const OUString& rName, size_t* pPos = nullptr) const;
884  // Just searches the pointer in the m_PageDescs vector!
885  bool ContainsPageDesc(const SwPageDesc *pDesc, size_t* pPos) const;
886 
889  void CopyPageDesc( const SwPageDesc& rSrcDesc, SwPageDesc& rDstDesc,
890  bool bCopyPoolIds = true );
891 
894  void CopyHeader( const SwFrameFormat& rSrcFormat, SwFrameFormat& rDestFormat )
895  { CopyPageDescHeaderFooterImpl( true, rSrcFormat, rDestFormat ); }
896 
899  void CopyFooter( const SwFrameFormat& rSrcFormat, SwFrameFormat& rDestFormat )
900  { CopyPageDescHeaderFooterImpl( false, rSrcFormat, rDestFormat ); }
901 
902  // For Reader
903  void ChgPageDesc( const OUString & rName, const SwPageDesc& );
904  void ChgPageDesc( size_t i, const SwPageDesc& );
905  void DelPageDesc( const OUString & rName, bool bBroadcast = false);
906  void DelPageDesc( size_t i, bool bBroadcast = false );
907  void PreDelPageDesc(SwPageDesc const * pDel);
908  SwPageDesc* MakePageDesc(const OUString &rName, const SwPageDesc* pCpy = nullptr,
909  bool bRegardLanguage = true,
910  bool bBroadcast = false);
911  void BroadcastStyleOperation(const OUString& rName, SfxStyleFamily eFamily,
912  SfxHintId nOp);
913 
916  void CheckDefaultPageFormat();
917 
918  // Methods for tables/indices
919  static sal_uInt16 GetCurTOXMark( const SwPosition& rPos, SwTOXMarks& );
920  void DeleteTOXMark( const SwTOXMark* pTOXMark );
921  const SwTOXMark& GotoTOXMark( const SwTOXMark& rCurTOXMark,
922  SwTOXSearch eDir, bool bInReadOnly );
923 
924  // Insert/Renew table/index
925  SwTOXBaseSection* InsertTableOf( const SwPosition& rPos,
926  const SwTOXBase& rTOX,
927  const SfxItemSet* pSet = nullptr,
928  bool bExpand = false,
929  SwRootFrame const* pLayout = nullptr);
930  SwTOXBaseSection* InsertTableOf( const SwPaM& aPam,
931  const SwTOXBase& rTOX,
932  const SfxItemSet* pSet = nullptr,
933  bool bExpand = false,
934  SwRootFrame const* pLayout = nullptr );
935  void InsertTableOf( SwNodeOffset nSttNd, SwNodeOffset nEndNd,
936  const SwTOXBase& rTOX,
937  const SfxItemSet* pSet );
938  static SwTOXBase* GetCurTOX( const SwPosition& rPos );
939  static const SwAttrSet& GetTOXBaseAttrSet(const SwTOXBase& rTOX);
940 
941  bool DeleteTOX( const SwTOXBase& rTOXBase, bool bDelNodes );
942  OUString GetUniqueTOXBaseName( const SwTOXType& rType,
943  const OUString& sChkStr ) const;
944 
945  bool SetTOXBaseName(const SwTOXBase& rTOXBase, const OUString& rName);
946 
947  // After reading file update all tables/indices
948  void SetUpdateTOX( bool bFlag ) { mbUpdateTOX = bFlag; }
949  bool IsUpdateTOX() const { return mbUpdateTOX; }
950 
951  const OUString& GetTOIAutoMarkURL() const {return msTOIAutoMarkURL;}
952  void SetTOIAutoMarkURL(const OUString& rSet) {msTOIAutoMarkURL = rSet;}
953 
954  bool IsInReading() const { return mbInReading; }
955  void SetInReading( bool bNew ) { mbInReading = bNew; }
956 
957  bool IsInWriting() const { return mbInWriting; }
958  void SetInWriting(bool bNew) { mbInWriting = bNew; }
959 
960  bool IsInMailMerge() const { return mbInMailMerge; }
961  void SetInMailMerge( bool bNew ) { mbInMailMerge = bNew; }
962 
963  bool IsClipBoard() const { return mbClipBoard; }
964  // N.B.: must be called right after constructor! (@see GetXmlIdRegistry)
965  void SetClipBoard( bool bNew ) { mbClipBoard = bNew; }
966 
967  bool IsColumnSelection() const { return mbColumnSelection; }
968  void SetColumnSelection( bool bNew ) { mbColumnSelection = bNew; }
969 
970  bool IsInXMLImport() const { return mbInXMLImport; }
971  void SetInXMLImport( bool bNew ) { mbInXMLImport = bNew; }
972  bool IsInWriterfilterImport() const { return mbInWriterfilterImport; }
973  void SetInWriterfilterImport(bool const b) { mbInWriterfilterImport = b; }
974 
975  // Manage types of tables/indices
976  sal_uInt16 GetTOXTypeCount( TOXTypes eTyp ) const;
977  const SwTOXType* GetTOXType( TOXTypes eTyp, sal_uInt16 nId ) const;
978  const SwTOXType* InsertTOXType( const SwTOXType& rTyp );
979  const SwTOXTypes& GetTOXTypes() const { return *mpTOXTypes; }
980 
981  const SwTOXBase* GetDefaultTOXBase( TOXTypes eTyp, bool bCreate );
982  void SetDefaultTOXBase(const SwTOXBase& rBase);
983 
984  // Key for management of index.
985  void GetTOIKeys(SwTOIKeyType eTyp, std::vector<OUString>& rArr,
986  SwRootFrame const& rLayout) const;
987 
988  // Sort table text.
989  bool SortTable(const SwSelBoxes& rBoxes, const SwSortOptions&);
990  bool SortText(const SwPaM&, const SwSortOptions&);
991 
992  // Correct the SwPosition-Objects that are registered with the document
993  // e. g. Bookmarks or tables/indices.
994  // If bMoveCursor is set move Cursor too.
995 
996  // Set everything in rOldNode on rNewPos + Offset.
997  void CorrAbs(
998  const SwNodeIndex& rOldNode,
999  const SwPosition& rNewPos,
1000  const sal_Int32 nOffset = 0,
1001  bool bMoveCursor = false );
1002 
1003  // Set everything in the range of [rStartNode, rEndNode] to rNewPos.
1004  static void CorrAbs(
1005  const SwNodeIndex& rStartNode,
1006  const SwNodeIndex& rEndNode,
1007  const SwPosition& rNewPos,
1008  bool bMoveCursor = false );
1009 
1010  // Set everything in this range from rRange to rNewPos.
1011  static void CorrAbs(
1012  const SwPaM& rRange,
1013  const SwPosition& rNewPos,
1014  bool bMoveCursor = false );
1015 
1016  // Set everything in rOldNode to relative Pos.
1017  void CorrRel(
1018  const SwNodeIndex& rOldNode,
1019  const SwPosition& rNewPos,
1020  const sal_Int32 nOffset = 0,
1021  bool bMoveCursor = false );
1022 
1023  // Query / set rules for Outline.
1025  {
1026  return mpOutlineRule;
1027  }
1028  void SetOutlineNumRule( const SwNumRule& rRule );
1029  void PropagateOutlineRule();
1030 
1031  // Outline - promote / demote.
1032  bool OutlineUpDown(const SwPaM& rPam, short nOffset, SwRootFrame const* pLayout = nullptr);
1033 
1035  bool MoveOutlinePara( const SwPaM& rPam, SwOutlineNodes::difference_type nOffset);
1036 
1037  bool GotoOutline(SwPosition& rPos, const OUString& rName, SwRootFrame const* = nullptr) const;
1038 
1049  OUString SetNumRule( const SwPaM&,
1050  const SwNumRule&,
1051  bool bCreateNewList,
1052  SwRootFrame const* pLayout = nullptr,
1053  const OUString& sContinuedListId = OUString(),
1054  bool bSetItem = true,
1055  const bool bResetIndentAttrs = false );
1056  void SetCounted(const SwPaM&, bool bCounted, SwRootFrame const* pLayout);
1057 
1058  void MakeUniqueNumRules(const SwPaM & rPaM);
1059 
1060  void SetNumRuleStart( const SwPosition& rPos, bool bFlag = true );
1061  void SetNodeNumStart( const SwPosition& rPos, sal_uInt16 nStt );
1062 
1063  // sw_redlinehide: may set rPos to different node (the one with the NumRule)
1064  static SwNumRule* GetNumRuleAtPos(SwPosition& rPos, SwRootFrame const* pLayout = nullptr);
1065 
1066  const SwNumRuleTable& GetNumRuleTable() const { return *mpNumRuleTable; }
1067 
1073  void AddNumRule(SwNumRule * pRule);
1074 
1075  // add optional parameter <eDefaultNumberFormatPositionAndSpaceMode>
1076  sal_uInt16 MakeNumRule( const OUString &rName,
1077  const SwNumRule* pCpy = nullptr,
1078  bool bBroadcast = false,
1079  const SvxNumberFormat::SvxNumPositionAndSpaceMode eDefaultNumberFormatPositionAndSpaceMode =
1081  sal_uInt16 FindNumRule( std::u16string_view rName ) const;
1082  SwNumRule* FindNumRulePtr( const OUString& rName ) const;
1083 
1084  // Deletion only possible if Rule is not used!
1085  bool RenameNumRule(const OUString & aOldName, const OUString & aNewName,
1086  bool bBroadcast = false);
1087  bool DelNumRule( const OUString& rName, bool bBroadCast = false );
1088  OUString GetUniqueNumRuleName( const OUString* pChkStr = nullptr, bool bAutoNum = true ) const;
1089 
1090  void UpdateNumRule(); // Update all invalids.
1091  void ChgNumRuleFormats( const SwNumRule& rRule );
1092  void ReplaceNumRule( const SwPosition& rPos, const OUString& rOldRule,
1093  const OUString& rNewRule );
1094 
1095  // Goto next/previous on same level.
1096  static bool GotoNextNum( SwPosition&, SwRootFrame const* pLayout,
1097  bool bOverUpper = true,
1098  sal_uInt8* pUpper = nullptr, sal_uInt8* pLower = nullptr );
1099  static bool GotoPrevNum( SwPosition&, SwRootFrame const* pLayout,
1100  bool bOverUpper = true );
1101 
1125  const SwNumRule * SearchNumRule(const SwPosition & rPos,
1126  const bool bForward,
1127  const bool bNum,
1128  const bool bOutline,
1129  int nNonEmptyAllowed,
1130  OUString& sListId,
1131  SwRootFrame const* pLayout,
1132  const bool bInvestigateStartNode = false );
1133 
1134  // Paragraphs without numbering but with indents.
1135  bool NoNum( const SwPaM& );
1136 
1137  // Delete, splitting of numbering list.
1138  void DelNumRules(const SwPaM&, SwRootFrame const* pLayout = nullptr);
1139 
1140  // Invalidates all numrules
1141  void InvalidateNumRules();
1142 
1143  bool NumUpDown(const SwPaM&, bool bDown, SwRootFrame const* pLayout = nullptr);
1144 
1147  bool MoveParagraph(SwPaM&, SwNodeOffset nOffset, bool bIsOutlMv = false);
1148  bool MoveParagraphImpl(SwPaM&, SwNodeOffset nOffset, bool bIsOutlMv, SwRootFrame const*);
1149 
1150  bool NumOrNoNum( const SwNodeIndex& rIdx, bool bDel = false);
1151 
1152  void StopNumRuleAnimations( const OutputDevice* );
1153 
1164  const SwTable* InsertTable( const SwInsertTableOptions& rInsTableOpts, // HeadlineNoBorder
1165  const SwPosition& rPos, sal_uInt16 nRows,
1166  sal_uInt16 nCols, sal_Int16 eAdjust,
1167  const SwTableAutoFormat* pTAFormat = nullptr,
1168  const std::vector<sal_uInt16> *pColArr = nullptr,
1169  bool bCalledFromShell = false,
1170  bool bNewModel = true );
1171 
1172  // If index is in a table, return TableNode, else 0.
1173  SwTableNode* IsIdxInTable( const SwNodeIndex& rIdx );
1174  inline const SwTableNode* IsIdxInTable( const SwNodeIndex& rIdx ) const;
1175 
1176  // Create a balanced table out of the selected range.
1177  const SwTable* TextToTable( const SwInsertTableOptions& rInsTableOpts, // HeadlineNoBorder,
1178  const SwPaM& rRange, sal_Unicode cCh,
1179  sal_Int16 eAdjust,
1180  const SwTableAutoFormat* );
1181 
1182  // text to table conversion - API support
1183  const SwTable* TextToTable( const std::vector< std::vector<SwNodeRange> >& rTableNodes );
1184 
1185  bool TableToText( const SwTableNode* pTableNd, sal_Unicode cCh );
1186 
1187  // Create columns / rows in table.
1188  void InsertCol( const SwCursor& rCursor,
1189  sal_uInt16 nCnt = 1, bool bBehind = true );
1190  bool InsertCol( const SwSelBoxes& rBoxes,
1191  sal_uInt16 nCnt = 1, bool bBehind = true );
1192  void InsertRow( const SwCursor& rCursor,
1193  sal_uInt16 nCnt = 1, bool bBehind = true );
1194  bool InsertRow( const SwSelBoxes& rBoxes,
1195  sal_uInt16 nCnt = 1, bool bBehind = true );
1196 
1197  // Delete Columns/Rows in table.
1198  enum class RowColMode { DeleteRow = 0, DeleteColumn = 1, DeleteProtected = 2 };
1199  bool DeleteRowCol(const SwSelBoxes& rBoxes, RowColMode eMode = RowColMode::DeleteRow);
1200  void DeleteRow( const SwCursor& rCursor );
1201  void DeleteCol( const SwCursor& rCursor );
1202 
1203  // Split / concatenate boxes in table.
1204  bool SplitTable( const SwSelBoxes& rBoxes, bool bVert,
1205  sal_uInt16 nCnt, bool bSameHeight = false );
1206 
1207  TableMergeErr MergeTable( SwPaM& rPam );
1208  OUString GetUniqueTableName() const;
1209  bool IsInsTableFormatNum() const;
1210  bool IsInsTableChangeNumFormat() const;
1211  bool IsInsTableAlignNum() const;
1212  bool IsSplitVerticalByDefault() const;
1213  void SetSplitVerticalByDefault(bool value);
1214 
1215  // From FEShell (for Undo and BModified).
1216  static void GetTabCols( SwTabCols &rFill, const SwCellFrame* pBoxFrame );
1217  void SetTabCols( const SwTabCols &rNew, bool bCurRowOnly,
1218  const SwCellFrame* pBoxFrame );
1219  static void GetTabRows( SwTabCols &rFill, const SwCellFrame* pBoxFrame );
1220  void SetTabRows( const SwTabCols &rNew, bool bCurColOnly,
1221  const SwCellFrame* pBoxFrame );
1222 
1223  // Direct access for UNO.
1224  void SetTabCols(SwTable& rTab, const SwTabCols &rNew, const SwTabCols &rOld,
1225  const SwTableBox *pStart, bool bCurRowOnly);
1226 
1227  void SetRowsToRepeat( SwTable &rTable, sal_uInt16 nSet );
1228 
1231  bool SetTableAutoFormat(const SwSelBoxes& rBoxes, const SwTableAutoFormat& rNew, bool bResetDirect = false, bool isSetStyleName = false);
1232 
1233  // Query attributes.
1234  bool GetTableAutoFormat( const SwSelBoxes& rBoxes, SwTableAutoFormat& rGet );
1235 
1237  SwTableAutoFormatTable& GetTableStyles();
1239  {
1240  return const_cast<SwDoc*>(this)->GetTableStyles();
1241  }
1243  bool HasTableStyles() const { return m_pTableStyles != nullptr; }
1244  // Create a new table style. Tracked by Undo.
1245  SwTableAutoFormat* MakeTableStyle(const OUString& rName, bool bBroadcast = false);
1246  // Delete table style named rName. Tracked by undo.
1247  std::unique_ptr<SwTableAutoFormat> DelTableStyle(const OUString& rName, bool bBroadcast = false);
1248  // Change (replace) a table style named rName. Tracked by undo.
1249  void ChgTableStyle(const OUString& rName, const SwTableAutoFormat& rNewFormat);
1250 
1251  const SwCellStyleTable& GetCellStyles() const { return *mpCellStyles; }
1252  SwCellStyleTable& GetCellStyles() { return *mpCellStyles; }
1253 
1254  void AppendUndoForInsertFromDB( const SwPaM& rPam, bool bIsTable );
1255 
1256  void SetColRowWidthHeight( SwTableBox& rCurrentBox, TableChgWidthHeightType eType,
1257  SwTwips nAbsDiff, SwTwips nRelDiff );
1258  SwTableBoxFormat* MakeTableBoxFormat();
1259  SwTableLineFormat* MakeTableLineFormat();
1260 
1261  // helper function: cleanup before checking number value
1262  bool IsNumberFormat( const OUString& rString, sal_uInt32& F_Index, double& fOutNumber);
1263  // Check if box has numerical value. Change format of box if required.
1264  void ChkBoxNumFormat( SwTableBox& rCurrentBox, bool bCallUpdate );
1265  void SetTableBoxFormulaAttrs( SwTableBox& rBox, const SfxItemSet& rSet );
1266  void ClearBoxNumAttrs( const SwNodeIndex& rNode );
1267  void ClearLineNumAttrs( SwPosition const & rPos );
1268 
1269  bool InsCopyOfTable( SwPosition& rInsPos, const SwSelBoxes& rBoxes,
1270  const SwTable* pCpyTable, bool bCpyName = false,
1271  bool bCorrPos = false, const OUString& rStyleName = "" );
1272 
1273  void UnProtectCells( const OUString& rTableName );
1274  bool UnProtectCells( const SwSelBoxes& rBoxes );
1275  void UnProtectTables( const SwPaM& rPam );
1276  bool HasTableAnyProtection( const SwPosition* pPos,
1277  const OUString* pTableName,
1278  bool* pFullTableProtection );
1279 
1280  // Split table at baseline position, i.e. create a new table.
1281  void SplitTable( const SwPosition& rPos, SplitTable_HeadlineOption eMode,
1282  bool bCalcNewSize );
1283 
1286  bool MergeTable( const SwPosition& rPos, bool bWithPrev,
1287  sal_uInt16 nMode = 0 );
1288 
1289  // Make charts of given table update.
1290  void UpdateCharts( const OUString& rName ) const;
1291 
1292  // Update all charts, for that exists any table.
1293  void UpdateAllCharts() { DoUpdateAllCharts(); }
1294 
1295  // Table is renamed and refreshes charts.
1296  void SetTableName( SwFrameFormat& rTableFormat, const OUString &rNewName );
1297 
1298  // @return the reference in document that is set for name.
1299  const SwFormatRefMark* GetRefMark( std::u16string_view rName ) const;
1300 
1301  // @return RefMark via index - for UNO.
1302  const SwFormatRefMark* GetRefMark( sal_uInt16 nIndex ) const;
1303 
1306  sal_uInt16 GetRefMarks( std::vector<OUString>* = nullptr ) const;
1307 
1308  // Insert label. If a FlyFormat is created, return it.
1309  SwFlyFrameFormat* InsertLabel( const SwLabelType eType, const OUString &rText, const OUString& rSeparator,
1310  const OUString& rNumberingSeparator,
1311  const bool bBefore, const sal_uInt16 nId, const SwNodeOffset nIdx,
1312  const OUString& rCharacterStyle,
1313  const bool bCpyBrd );
1314  SwFlyFrameFormat* InsertDrawLabel(
1315  const OUString &rText, const OUString& rSeparator, const OUString& rNumberSeparator,
1316  const sal_uInt16 nId, const OUString& rCharacterStyle, SdrObject& rObj );
1317 
1318  // Query attribute pool.
1319  const SwAttrPool& GetAttrPool() const { return *mpAttrPool; }
1320  SwAttrPool& GetAttrPool() { return *mpAttrPool; }
1321 
1322  // Search for an EditShell.
1323  SwEditShell const * GetEditShell() const;
1324  SwEditShell* GetEditShell();
1325  ::sw::IShellCursorSupplier * GetIShellCursorSupplier();
1326 
1327  // OLE 2.0-notification.
1328  void SetOle2Link(const Link<bool,void>& rLink) {maOle2Link = rLink;}
1329  const Link<bool,void>& GetOle2Link() const {return maOle2Link;}
1330 
1331  // insert section (the ODF kind of section, not the nodesarray kind)
1332  SwSection * InsertSwSection(SwPaM const& rRange, SwSectionData &,
1333  std::tuple<SwTOXBase const*, sw::RedlineMode, sw::FieldmarkMode> const* pTOXBase,
1334  SfxItemSet const*const pAttr, bool const bUpdate = true);
1335  static sal_uInt16 IsInsRegionAvailable( const SwPaM& rRange,
1336  const SwNode** ppSttNd = nullptr );
1337  static SwSection* GetCurrSection( const SwPosition& rPos );
1338  SwSectionFormats& GetSections() { return *mpSectionFormatTable; }
1339  const SwSectionFormats& GetSections() const { return *mpSectionFormatTable; }
1340  SwSectionFormat *MakeSectionFormat();
1341  void DelSectionFormat( SwSectionFormat *pFormat, bool bDelNodes = false );
1342  void UpdateSection(size_t const nSect, SwSectionData &,
1343  SfxItemSet const*const = nullptr, bool const bPreventLinkUpdate = false);
1344  OUString GetUniqueSectionName( const OUString* pChkStr = nullptr ) const;
1345 
1346  /* @@@MAINTAINABILITY-HORROR@@@
1347  The model should not have anything to do with a shell.
1348  Unnecessary compile/link time dependency.
1349  */
1350 
1351  // Pointer to SfxDocShell from Doc. Can be 0!!
1352  SwDocShell* GetDocShell() { return mpDocShell; }
1353  const SwDocShell* GetDocShell() const { return mpDocShell; }
1354  void SetDocShell( SwDocShell* pDSh );
1355 
1358  void SetTmpDocShell( SfxObjectShellLock rLock ) { mxTmpDocShell = rLock; }
1359  const SfxObjectShellLock& GetTmpDocShell() const { return mxTmpDocShell; }
1360 
1361  // For Autotexts? (text modules) They have only one SVPersist at their disposal.
1362  SfxObjectShell* GetPersist() const;
1363 
1364  // Pointer to storage of SfxDocShells. Can be 0!!!
1365  css::uno::Reference< css::embed::XStorage > GetDocStorage();
1366 
1367  // Query / set flag indicating if document is loaded asynchronously at this moment.
1368  bool IsInLoadAsynchron() const { return mbInLoadAsynchron; }
1369  void SetInLoadAsynchron( bool bFlag ) { mbInLoadAsynchron = bFlag; }
1370 
1371  // For Drag&Move: (e.g. allow "moving" of RefMarks)
1372  bool IsCopyIsMove() const { return mbCopyIsMove; }
1373  void SetCopyIsMove( bool bFlag ) { mbCopyIsMove = bFlag; }
1374 
1375  SwDrawContact* GroupSelection( SdrView& );
1376  void UnGroupSelection( SdrView& );
1377  bool DeleteSelection( SwDrawView& );
1378 
1379  // Invalidates OnlineSpell-WrongLists.
1380  void SpellItAgainSam( bool bInvalid, bool bOnlyWrong, bool bSmartTags );
1381  void InvalidateAutoCompleteFlag();
1382 
1383  void SetCalcFieldValueHdl(Outliner* pOutliner);
1384 
1385  // Query if URL was visited.
1386  // Query via Doc, if only a Bookmark has been given.
1387  // In this case the document name has to be set in front.
1388  bool IsVisitedURL( const OUString& rURL );
1389 
1390  // Save current values for automatic registration of exceptions in Autocorrection.
1391  void SetAutoCorrExceptWord( std::unique_ptr<SwAutoCorrExceptWord> pNew );
1392  SwAutoCorrExceptWord* GetAutoCorrExceptWord() { return mpACEWord.get(); }
1393  void DeleteAutoCorrExceptWord();
1394 
1395  const SwFormatINetFormat* FindINetAttr( std::u16string_view rName ) const;
1396 
1397  // Call into intransparent Basic; expect possible Return String.
1398  void ExecMacro( const SvxMacro& rMacro, OUString* pRet, SbxArray* pArgs );
1399 
1400  // Call into intransparent Basic / JavaScript.
1401  sal_uInt16 CallEvent( SvMacroItemId nEvent, const SwCallMouseEvent& rCallEvent,
1402  bool bChkPtr = false );
1403 
1407  void MoveLeftMargin(const SwPaM& rPam, bool bRight, bool bModulus,
1408  SwRootFrame const* pLayout = nullptr);
1409 
1410  // Query NumberFormatter.
1412  {
1413  std::scoped_lock lock(mNumberFormatterMutex);
1414  if (bCreate)
1415  EnsureNumberFormatter();
1416  return mpNumberFormatter;
1417  }
1418 
1419  const SvNumberFormatter* GetNumberFormatter(bool bCreate = true) const
1420  {
1421  return const_cast<SwDoc*>(this)->GetNumberFormatter(bCreate);
1422  }
1423 
1424  bool HasInvisibleContent() const;
1425  // delete invisible content, like hidden sections and paragraphs
1426  bool RemoveInvisibleContent();
1427  // restore the invisible content if it's available on the undo stack
1428  bool RestoreInvisibleContent();
1429 
1430  bool ConvertFieldsToText(SwRootFrame const& rLayout);
1431 
1432  // Create sub-documents according to given collection.
1433  // If no collection is given, use chapter styles for 1st level.
1434  bool GenerateGlobalDoc( const OUString& rPath,
1435  const SwTextFormatColl* pSplitColl );
1436  bool GenerateGlobalDoc( const OUString& rPath, int nOutlineLevel );
1437  bool GenerateHTMLDoc( const OUString& rPath,
1438  const SwTextFormatColl* pSplitColl );
1439  bool GenerateHTMLDoc( const OUString& rPath, int nOutlineLevel );
1440 
1441  // Compare two documents.
1442  tools::Long CompareDoc( const SwDoc& rDoc );
1443 
1444  // Merge two documents.
1445  tools::Long MergeDoc( const SwDoc& rDoc );
1446 
1447  bool IsAutoFormatRedline() const { return mbIsAutoFormatRedline; }
1448  void SetAutoFormatRedline( bool bFlag ) { mbIsAutoFormatRedline = bFlag; }
1449 
1450  // For AutoFormat: with Undo/Redlining.
1451  void SetTextFormatCollByAutoFormat( const SwPosition& rPos, sal_uInt16 nPoolId,
1452  const SfxItemSet* pSet );
1453  void SetFormatItemByAutoFormat( const SwPaM& rPam, const SfxItemSet& );
1454 
1455  // Only for SW-textbloxks! Does not pay any attention to layout!
1456  void ClearDoc(); // Deletes all content!
1457 
1458  // Query /set data for PagePreview.
1459  const SwPagePreviewPrtData* GetPreviewPrtData() const { return m_pPgPViewPrtData.get(); }
1460 
1461  // If pointer == 0 destroy pointer in document.
1462  // Else copy object.
1463  // Pointer is not transferred to ownership by document!
1464  void SetPreviewPrtData( const SwPagePreviewPrtData* pData );
1465 
1468  void SetOLEObjModified();
1469 
1470  // Uno - Interfaces
1471  std::shared_ptr<SwUnoCursor> CreateUnoCursor( const SwPosition& rPos, bool bTableCursor = false );
1472 
1473  // FeShell - Interfaces
1474  // !!! These assume always an existing layout !!!
1475  bool ChgAnchor( const SdrMarkList& _rMrkList,
1476  RndStdIds _eAnchorType,
1477  const bool _bSameOnly,
1478  const bool _bPosCorr );
1479 
1480  void SetRowHeight( const SwCursor& rCursor, const SwFormatFrameSize &rNew );
1481  static std::unique_ptr<SwFormatFrameSize> GetRowHeight( const SwCursor& rCursor );
1482  void SetRowSplit( const SwCursor& rCursor, const SwFormatRowSplit &rNew );
1483  static std::unique_ptr<SwFormatRowSplit> GetRowSplit( const SwCursor& rCursor );
1484 
1488  bool BalanceRowHeight( const SwCursor& rCursor, bool bTstOnly, const bool bOptimize );
1489  void SetRowBackground( const SwCursor& rCursor, const SvxBrushItem &rNew );
1490  static bool GetRowBackground( const SwCursor& rCursor, std::unique_ptr<SvxBrushItem>& rToFill );
1493  void SetRowNotTracked( const SwCursor& rCursor, const SvxPrintItem &rNotTracked, bool bAll = false );
1494  void SetTabBorders( const SwCursor& rCursor, const SfxItemSet& rSet );
1495  void SetTabLineStyle( const SwCursor& rCursor,
1496  const Color* pColor, bool bSetLine,
1497  const editeng::SvxBorderLine* pBorderLine );
1498  static void GetTabBorders( const SwCursor& rCursor, SfxItemSet& rSet );
1499  void SetBoxAttr( const SwCursor& rCursor, const SfxPoolItem &rNew );
1510  static bool GetBoxAttr( const SwCursor& rCursor, std::unique_ptr<SfxPoolItem>& rToFill );
1511  void SetBoxAlign( const SwCursor& rCursor, sal_uInt16 nAlign );
1512  static sal_uInt16 GetBoxAlign( const SwCursor& rCursor );
1516  void AdjustCellWidth( const SwCursor& rCursor, const bool bBalance, const bool bNoShrink );
1517 
1518  SwChainRet Chainable( const SwFrameFormat &rSource, const SwFrameFormat &rDest );
1519  SwChainRet Chain( SwFrameFormat &rSource, const SwFrameFormat &rDest );
1520  void Unchain( SwFrameFormat &rFormat );
1521 
1522  // For Copy/Move from FrameShell.
1523  SdrObject* CloneSdrObj( const SdrObject&, bool bMoveWithinDoc = false,
1524  bool bInsInPage = true );
1525 
1526  // FeShell - Interface end
1527 
1528  // Interface for TextInputData - for text input of Chinese and Japanese.
1529  SwExtTextInput* CreateExtTextInput( const SwPaM& rPam );
1530  void DeleteExtTextInput( SwExtTextInput* pDel );
1531  SwExtTextInput* GetExtTextInput( const SwNode& rNd,
1532  sal_Int32 nContentPos = -1) const;
1533  SwExtTextInput* GetExtTextInput() const;
1534 
1535  // Interface for access to AutoComplete-List.
1536  static SwAutoCompleteWord& GetAutoCompleteWords() { return *s_pAutoCompleteWords; }
1537 
1538  bool ContainsMSVBasic() const { return mbContains_MSVBasic; }
1539  void SetContainsMSVBasic( bool bFlag ) { mbContains_MSVBasic = bFlag; }
1540 
1541  // Interface for the list of Ruby - texts/attributes
1542  static sal_uInt16 FillRubyList( const SwPaM& rPam, SwRubyList& rList );
1543  void SetRubyList( const SwPaM& rPam, const SwRubyList& rList );
1544 
1545  void ReadLayoutCache( SvStream& rStream );
1546  void WriteLayoutCache( SvStream& rStream );
1547  SwLayoutCache* GetLayoutCache() const { return mpLayoutCache.get(); }
1548 
1553  bool ContainsHiddenChars() const;
1554 
1555  IGrammarContact* getGrammarContact() const { return mpGrammarContact.get(); }
1556 
1566  void MarkListLevel( const OUString& sListId,
1567  const int nListLevel,
1568  const bool bValue );
1569 
1570  // Change a format undoable.
1571  void ChgFormat(SwFormat & rFormat, const SfxItemSet & rSet);
1572 
1573  void RenameFormat(SwFormat & rFormat, const OUString & sNewName,
1574  bool bBroadcast = false);
1575 
1576  // Change a TOX undoable.
1577  void ChangeTOX(SwTOXBase & rTOX, const SwTOXBase & rNew);
1578 
1596  static OUString GetPaMDescr(const SwPaM & rPaM);
1597 
1598  static bool IsFirstOfNumRuleAtPos(const SwPosition & rPos, SwRootFrame const& rLayout);
1599 
1600  // access methods for XForms model(s)
1601 
1602  // access container for XForms model; will be NULL if !isXForms()
1603  const css::uno::Reference<css::container::XNameContainer>&
1604  getXForms() const { return mxXForms;}
1605 
1606  css::uno::Reference< css::linguistic2::XProofreadingIterator > const & GetGCIterator() const;
1607 
1608  // #i31958# is this an XForms document?
1609  bool isXForms() const;
1610 
1611  // #i31958# initialize XForms models; turn this into an XForms document
1612  void initXForms( bool bCreateDefaultModel );
1613 
1614  // #i113606# for disposing XForms
1615  void disposeXForms( );
1616 
1617  //Update all the page masters
1618  void SetDefaultPageMode(bool bSquaredPageMode);
1619  bool IsSquaredPageMode() const;
1620 
1621  css::uno::Reference< css::script::vba::XVBAEventProcessor > const & GetVbaEventProcessor();
1622  void SetVBATemplateToProjectCache( css::uno::Reference< css::container::XNameContainer > const & xCache ) { m_xTemplateToProjectCache = xCache; };
1623  const css::uno::Reference< css::container::XNameContainer >& GetVBATemplateToProjectCache() const { return m_xTemplateToProjectCache; };
1624  ::sfx2::IXmlIdRegistry& GetXmlIdRegistry();
1625  ::sw::MetaFieldManager & GetMetaFieldManager();
1626  ::sw::UndoManager & GetUndoManager();
1627  ::sw::UndoManager const& GetUndoManager() const;
1628 
1629  SfxObjectShell* CreateCopy(bool bCallInitNew, bool bEmpty) const;
1630  SwNodeIndex AppendDoc(const SwDoc& rSource, sal_uInt16 nStartPageNumber,
1631  bool bDeletePrevious, int physicalPageOffset,
1632  const sal_uLong nDocNo);
1633 
1637  void dumpAsXml(xmlTextWriterPtr = nullptr) const;
1638 
1639  std::set<Color> GetDocColors();
1640  std::vector< std::weak_ptr<SwUnoCursor> > mvUnoCursorTable;
1641 
1642  // Remove expired UnoCursor weak pointers the document keeps to notify about document death.
1644  {
1645  auto & rTable = const_cast<SwDoc*>(this)->mvUnoCursorTable;
1646  // In most cases we'll remove most of the elements.
1647  rTable.erase( std::remove_if(rTable.begin(),
1648  rTable.end(),
1649  [] (std::weak_ptr<SwUnoCursor> const & x) { return x.expired(); }),
1650  rTable.end());
1651  }
1652 
1657  bool StartGrammarChecking( bool bSkipStart = false );
1658 
1660  void SetMissingDictionaries( bool bIsMissing );
1662  bool IsDictionaryMissing() const { return meDictionaryMissing == MissingDictionary::True; }
1663 
1664  void SetLanguage(const LanguageType eLang, const sal_uInt16 nId);
1665 
1666 private:
1667  // Copies master header to left / first one, if necessary - used by ChgPageDesc().
1668  void CopyMasterHeader(const SwPageDesc &rChged, const SwFormatHeader &rHead, SwPageDesc &pDesc, bool bLeft, bool bFirst);
1669  // Copies master footer to left / first one, if necessary - used by ChgPageDesc().
1670  void CopyMasterFooter(const SwPageDesc &rChged, const SwFormatFooter &rFoot, SwPageDesc &pDesc, bool bLeft, bool bFirst);
1671 
1672 };
1673 
1674 namespace o3tl {
1675  template<> struct typed_flags<SwDoc::RowColMode> : is_typed_flags<SwDoc::RowColMode, 3> {};
1676 }
1677 
1678 // This method is called in Dtor of SwDoc and deletes cache of ContourObjects.
1679 void ClrContourCache();
1680 
1681 inline const SwTableNode* SwDoc::IsIdxInTable( const SwNodeIndex& rIdx ) const
1682 {
1683  return const_cast<SwDoc*>(this)->IsIdxInTable( rIdx );
1684 }
1685 
1686 inline void SwDoc::SetOLEPrtNotifyPending( bool bSet )
1687 {
1688  mbOLEPrtNotifyPending = bSet;
1689  if( !bSet )
1690  mbAllOLENotify = false;
1691 }
1692 
1693 bool sw_GetPostIts(const IDocumentFieldsAccess& rIDFA, SetGetExpFields * pSrtLst);
1694 
1695 #endif //_DOC_HXX
1696 
1697 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SwFrameFormats * GetSpzFrameFormats()
Definition: doc.hxx:745
SwPageDesc & GetPageDesc(size_t const i)
Definition: doc.hxx:882
void SetCopyIsMove(bool bFlag)
Definition: doc.hxx:1373
OUString msDocAccTitle
Definition: doc.hxx:387
const std::unique_ptr< ::sw::UndoManager > m_pUndoManager
Definition: doc.hxx:216
sal_uInt32 mnRsidRoot
Definition: doc.hxx:297
const SwGrfFormatColls * GetGrfFormatColls() const
Definition: doc.hxx:806
std::set< SwPosFlyFramePtr, SwPosFlyFrameCmp > SwPosFlyFrames
Definition: flypos.hxx:51
TOXTypes
Definition: toxe.hxx:39
SwPageDescs m_PageDescs
Definition: doc.hxx:198
bool IsInMailMerge() const
Definition: doc.hxx:960
SwCellStyleTable & GetCellStyles()
Definition: doc.hxx:1252
SfxHintId
SwAutoCorrExceptWord * GetAutoCorrExceptWord()
Definition: doc.hxx:1392
const T & GetDefault(TypedWhichId< T > nWhich) const
Definition: doc.hxx:729
SwLabelType
Definition: swtypes.hxx:85
Represents the style of a paragraph.
Definition: fmtcol.hxx:56
std::unique_ptr< SwDefTOXBase_Impl > mpDefTOXBases
Definition: doc.hxx:249
Marks a position in the document model.
Definition: pam.hxx:36
const OUString & GetTOIAutoMarkURL() const
Definition: doc.hxx:951
size_t size() const
Definition: pagedesc.hxx:442
const std::unique_ptr< ::sw::DocumentOutlineNodesManager > m_pDocumentOutlineNodesManager
Definition: doc.hxx:224
void SetPrepareSelAll()
Definition: doc.hxx:567
const std::unique_ptr< ::sw::DocumentListItemsManager > m_pDocumentListItemsManager
Definition: doc.hxx:222
IGrammarContact * getGrammarContact() const
Definition: doc.hxx:1555
static SwAutoCompleteWord & GetAutoCompleteWords()
Definition: doc.hxx:1536
oslInterlockedCount mReferenceCount
Definition: doc.hxx:299
SwDocShell * GetDocShell()
Definition: doc.hxx:1352
SfxObjectShellLock mxTmpDocShell
Definition: doc.hxx:261
SvNumberFormatter * GetNumberFormatter(bool bCreate=true)
Definition: doc.hxx:1411
const SwFrameFormats * GetTableFrameFormats() const
Definition: doc.hxx:811
signed char sal_Int8
const std::unique_ptr< ::sw::DocumentLayoutManager > m_pDocumentLayoutManager
Definition: doc.hxx:228
const std::unique_ptr< ::sw::DocumentContentOperationsManager > m_pDocumentContentOperationsManager
Definition: doc.hxx:225
std::vector< OUString > m_PatternNames
Definition: doc.hxx:206
std::vector< SwNode * >::difference_type difference_type
sal_uInt16 char char * pDesc
SwDBManager * m_pDBManager
Definition: doc.hxx:252
Idle maOLEModifiedIdle
Definition: doc.hxx:203
SwTextFormatColl * FindTextFormatCollByName(const OUString &rName) const
Definition: doc.hxx:799
std::unique_ptr< SwNodes > m_pNodes
Definition: doc.hxx:196
SwAttrPool & GetAttrPool()
Definition: doc.hxx:1320
sal_uIntPtr sal_uLong
std::vector< SwTOXMark * > SwTOXMarks
Definition: tox.hxx:46
long Long
Provides numbered items of a document.
SwTextFormatColl * GetDfltTextFormatColl()
Definition: doc.hxx:777
std::vector< std::unique_ptr< SwRubyListEntry >> SwRubyList
Definition: doc.hxx:185
Base class of all fields.
Definition: fldbas.hxx:290
Handle the background jobs of a Writer document.
DocumentType meDocType
Definition: doc.hxx:396
knows all meta-fields in the document.
Definition: fmtmeta.hxx:196
exports com.sun.star. embed
Provides access to the marks of a document.
Definition: doc.hxx:188
void SetOle2Link(const Link< bool, void > &rLink)
Definition: doc.hxx:1328
TableChgWidthHeightType
Definition: tblenum.hxx:25
bool IsColumnSelection() const
Definition: doc.hxx:967
bool IsInWriting() const
Definition: doc.hxx:957
bool IsUpdateTOX() const
Definition: doc.hxx:949
const SwTableAutoFormatTable & GetTableStyles() const
Definition: doc.hxx:1238
SvMacroItemId
void SetTmpDocShell(SfxObjectShellLock rLock)
in case during copying of embedded object a new shell is created, it should be set here and cleaned l...
Definition: doc.hxx:1358
SvxFrameDirection
Dialog to specify the properties of date form field.
rtl::Reference< SwAttrPool > mpAttrPool
Definition: doc.hxx:197
std::unordered_map< OUString, SwNumRule * > maNumRuleMap
Definition: doc.hxx:273
std::unique_ptr< IStyleAccess > mpStyleAccess
Definition: doc.hxx:278
void SetClipBoard(bool bNew)
Definition: doc.hxx:965
const SwCellStyleTable & GetCellStyles() const
Definition: doc.hxx:1251
float x
The root element of a Writer document layout.
Definition: rootfrm.hxx:82
bool IsInsOnlyTextGlossary() const
Definition: doc.hxx:657
const SwFrameFormats * GetSpzFrameFormats() const
Definition: doc.hxx:744
exports com.sun.star. linguistic2
FieldmarkMode
Definition: rootfrm.hxx:50
Array of Undo-history.
Definition: docary.hxx:192
exports com.sun.star. container
std::unique_ptr< SwURLStateChanged > mpURLStateChgd
Definition: doc.hxx:265
const SwSectionFormats & GetSections() const
Definition: doc.hxx:1339
TableMergeErr
Definition: tblenum.hxx:62
sal_uInt16 sal_Unicode
bool DoesContainAtPageObjWithContentAnchor()
Definition: doc.hxx:573
const SwCharFormat * GetDfltCharFormat() const
Definition: doc.hxx:753
A class that stores temporary data that is needed for rendering the document.
Definition: printdata.hxx:203
provides some methods for generic operations on lists that contain SwFormat* subclasses.
Definition: docary.hxx:44
static SwAutoCompleteWord * s_pAutoCompleteWords
Definition: doc.hxx:330
std::unique_ptr< SwFrameFormats > mpTableFrameFormatTable
Definition: doc.hxx:244
void cleanupUnoCursorTable() const
Definition: doc.hxx:1643
const std::unique_ptr< ::sw::DocumentRedlineManager > m_pDocumentRedlineManager
Definition: doc.hxx:214
const SwTextFormatColl * GetDfltTextFormatColl() const
Definition: doc.hxx:776
SwTOXSearch
Definition: toxe.hxx:22
const Link< bool, void > & GetOle2Link() const
Definition: doc.hxx:1329
std::unique_ptr< SwNumRuleTable > mpNumRuleTable
Definition: doc.hxx:270
Footer, for pageformats Client of FrameFormat describing the footer.
Definition: fmthdft.hxx:64
SwTOIKeyType
Definition: toxe.hxx:30
std::unique_ptr< IGrammarContact > mpGrammarContact
Definition: doc.hxx:282
void SetTOIAutoMarkURL(const OUString &rSet)
Definition: doc.hxx:952
std::unique_ptr< ::sw::DocumentDeviceManager > m_pDeviceAccess
Definition: doc.hxx:219
css::uno::Reference< css::container::XNameContainer > mxXForms
Definition: doc.hxx:208
sal_uInt32 mnRsid
Definition: doc.hxx:296
std::unique_ptr< SwFrameFormats > mpSpzFrameFormatTable
Definition: doc.hxx:242
void SetInXMLImport(bool bNew)
Definition: doc.hxx:971
RowColMode
Definition: doc.hxx:1198
SwDocShell * mpDocShell
Definition: doc.hxx:260
const std::unique_ptr< ::sw::DocumentListsManager > m_pDocumentListsManager
Definition: doc.hxx:223
SfxStyleFamily
SwFrameFormats * GetTableFrameFormats()
Definition: doc.hxx:812
SwCharFormat * GetDfltCharFormat()
Definition: doc.hxx:754
const std::unique_ptr< ::sw::DocumentStateManager > m_pDocumentStateManager
Definition: doc.hxx:215
void SetDocumentType(DocumentType eDocType)
Definition: doc.hxx:398
Specific frame formats (frames, DrawObjects).
SwLayoutCache * GetLayoutCache() const
Definition: doc.hxx:1547
void SetContainsAtPageObjWithContentAnchor(const bool bFlag)
Definition: doc.hxx:569
Base class for various Writer styles.
Definition: format.hxx:46
SwDBData maDBData
Definition: doc.hxx:204
const std::unique_ptr< ::sw::DocumentChartDataProviderManager > m_pDocumentChartDataProviderManager
Definition: doc.hxx:218
const SwPagePreviewPrtData * GetPreviewPrtData() const
Definition: doc.hxx:1459
PaM is Point and Mark: a selection of the document model.
Definition: pam.hxx:137
struct _xmlTextWriter * xmlTextWriterPtr
std::unique_ptr< SwTableAutoFormatTable > m_pTableStyles
Table styles (autoformats that are applied with table changes).
Definition: doc.hxx:288
void SetOLEPrtNotifyPending(bool bSet=true)
Definition: doc.hxx:1686
bool sw_GetPostIts(const IDocumentFieldsAccess &rIDFA, SetGetExpFields *pSrtLst)
Definition: doc.cxx:515
std::unique_ptr< SwTextFormatColls > mpTextFormatCollTable
Definition: doc.hxx:245
void SetInWriterfilterImport(bool const b)
Definition: doc.hxx:973
const OUString & getDocAccTitle() const
Definition: doc.hxx:556
Style of a layout element.
Definition: frmfmt.hxx:59
bool IsPrepareSelAll() const
Definition: doc.hxx:566
bool IsOLEPrtNotifyPending() const
Definition: doc.hxx:562
SwNodeType
Definition: ndtyp.hxx:28
MissingDictionary meDictionaryMissing
Definition: doc.hxx:324
std::unique_ptr< SwTOXTypes > mpTOXTypes
Definition: doc.hxx:248
const SfxObjectShellLock & GetTmpDocShell() const
Definition: doc.hxx:1359
void SetDBManager(SwDBManager *pNewMgr)
Definition: doc.hxx:669
void SetAllScriptItem(SfxItemSet &rSet, const SfxPoolItem &rItem)
Definition: poolfmt.cxx:41
std::unique_ptr< SwLayoutCache > mpLayoutCache
Layout cache to read and save with the document for a faster formatting.
Definition: doc.hxx:279
Document statistics information.
const SwPageDesc & GetPageDesc(const size_t i) const
Definition: doc.hxx:881
std::vector< std::weak_ptr< SwUnoCursor > > mvUnoCursorTable
Definition: doc.hxx:1640
void SetInWriting(bool bNew)
Definition: doc.hxx:958
std::unique_ptr< SwEndNoteInfo > mpEndNoteInfo
Definition: doc.hxx:256
FlyCntType
Definition: flyenum.hxx:23
const std::unique_ptr< ::sw::mark::MarkManager > mpMarkManager
Definition: doc.hxx:211
const SwDocShell * GetDocShell() const
Definition: doc.hxx:1353
Document fields related interfaces.
void FinitCore()
Definition: init.cxx:666
SplitTable_HeadlineOption
Definition: tblenum.hxx:53
SwFieldIds
Definition: fldbas.hxx:45
void SetTextFormatColl(const css::uno::Any &rAny, SwPaM &rPaM)
const SwFrameFormat * GetEmptyPageFormat() const
Definition: doc.hxx:749
void SetUpdateTOX(bool bFlag)
Definition: doc.hxx:948
std::unique_ptr< SwTextFormatColl > mpDfltTextFormatColl
Definition: doc.hxx:237
std::unique_ptr< SwFrameFormat > mpColumnContFormat
Definition: doc.hxx:235
size_t GetPageDescCnt() const
Definition: doc.hxx:880
void setDocAccTitle(const OUString &rTitle)
Definition: doc.hxx:555
void UpdateAllCharts()
Definition: doc.hxx:1293
const SwFrameFormat * GetColumnContFormat() const
Definition: doc.hxx:751
void SetInLoadAsynchron(bool bFlag)
Definition: doc.hxx:1369
css::uno::Reference< css::linguistic2::XProofreadingIterator > m_xGCIterator
Definition: doc.hxx:209
Provides access to settings of a document.
std::mutex mNumberFormatterMutex
Definition: doc.hxx:267
SwNumRule * mpOutlineRule
Definition: doc.hxx:254
std::unique_ptr< SwPagePreviewPrtData > m_pPgPViewPrtData
Definition: doc.hxx:275
Link< bool, void > maOle2Link
Definition: doc.hxx:199
Marks a node in the document model.
Definition: ndindex.hxx:32
DocumentType
Definition: doc.hxx:392
Document links administration interface.
Text operation/manipulation interface.
void SetInReading(bool bNew)
Definition: doc.hxx:955
std::unique_ptr< SwGrfFormatColls > mpGrfFormatCollTable
Definition: doc.hxx:246
SwNodes const & GetNodes() const
Definition: doc.hxx:410
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
void CopyHeader(const SwFrameFormat &rSrcFormat, SwFrameFormat &rDestFormat)
Copy header (with contents) from SrcFormat to DestFormat (can also be copied into other document)...
Definition: doc.hxx:894
Represents the style of a text portion.
Definition: charfmt.hxx:26
std::unique_ptr< SwFrameFormat > mpEmptyPageFormat
Definition: doc.hxx:234
bool IsInReading() const
Definition: doc.hxx:954
SvNumberFormatter * mpNumberFormatter
Definition: doc.hxx:268
tools::Long SwTwips
Definition: swtypes.hxx:52
const std::unique_ptr< ::sw::DocumentDrawModelManager > m_pDocumentDrawModelManager
Definition: doc.hxx:213
SwTable is one table in the document model, containing rows (which contain cells).
Definition: swtable.hxx:113
SwFrameFormats * GetFrameFormats()
Definition: doc.hxx:739
RedlineMode
Definition: rootfrm.hxx:45
const SwTOXTypes & GetTOXTypes() const
Definition: doc.hxx:979
Provides access to the lists of a document.
< purpose of derivation from SwClient: character style for displaying the numbers.
Definition: lineinfo.hxx:37
The Undo actions need to create new Shell cursors.
const SwFrameFormat * GetDfltFrameFormat() const
Definition: doc.hxx:747
std::unique_ptr< SwSectionFormats > mpSectionFormatTable
Definition: doc.hxx:243
std::unique_ptr< ::sfx2::IXmlIdRegistry > m_pXmlIdRegistry
Definition: doc.hxx:292
bool IsDictionaryMissing() const
Returns true if no dictionary can be found for any content.
Definition: doc.hxx:1662
Provides access to the formatting devices of a document.
const css::uno::Reference< css::container::XNameContainer > & getXForms() const
Definition: doc.hxx:1604
void ClrContourCache()
Definition: txtfly.cxx:145
OUString msTOIAutoMarkURL
Definition: doc.hxx:205
SwCharFormat * FindCharFormatByName(const OUString &rName) const
Definition: doc.hxx:771
bool mbOLEPrtNotifyPending
TRUE: Printer has changed.
Definition: doc.hxx:314
const SvNumberFormatter * GetNumberFormatter(bool bCreate=true) const
Definition: doc.hxx:1419
const std::unique_ptr< ::sw::DocumentTimerManager > m_pDocumentTimerManager
Definition: doc.hxx:220
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:79
void InitCore()
Definition: init.cxx:447
const SwFootnoteIdxs & GetFootnoteIdxs() const
Definition: doc.hxx:635
const std::unique_ptr< ::sw::MetaFieldManager > m_pMetaFieldManager
Definition: doc.hxx:212
std::unique_ptr< SwAutoCorrExceptWord > mpACEWord
For the automated takeover of auto-corrected words that are "re-corrected".
Definition: doc.hxx:263
const SwCharFormats * GetCharFormats() const
Definition: doc.hxx:740
const std::unique_ptr< ::sw::DocumentStatisticsManager > m_pDocumentStatisticsManager
Definition: doc.hxx:227
void CopyFooter(const SwFrameFormat &rSrcFormat, SwFrameFormat &rDestFormat)
Copy footer (with contents) from SrcFormat to DestFormat.
Definition: doc.hxx:899
SwTableNode * IsIdxInTable(const SwNodeIndex &rIdx)
Definition: ndtbl.cxx:214
const SwTextFormatColls * GetTextFormatColls() const
Definition: doc.hxx:778
std::unique_ptr< SwCharFormat > mpDfltCharFormat
Definition: doc.hxx:236
bool IsInLoadAsynchron() const
Definition: doc.hxx:1368
unsigned char sal_uInt8
Provides outline nodes of a document.
css::uno::Reference< css::container::XNameContainer > m_xTemplateToProjectCache
Definition: doc.hxx:285
bool IsCopyIsMove() const
Definition: doc.hxx:1372
const SwNumRuleTable & GetNumRuleTable() const
Definition: doc.hxx:1066
void SetColumnSelection(bool bNew)
Definition: doc.hxx:968
const css::uno::Reference< css::container::XNameContainer > & GetVBATemplateToProjectCache() const
Definition: doc.hxx:1623
std::unique_ptr< SwCharFormats > mpCharFormatTable
Definition: doc.hxx:241
bool IsClipBoard() const
Definition: doc.hxx:963
SwNodes & GetNodes()
Definition: doc.hxx:409
SwFrameFormat * GetColumnContFormat()
Definition: doc.hxx:752
const std::unique_ptr< ::sw::DocumentExternalDataManager > m_pDocumentExternalDataManager
Definition: doc.hxx:230
SwFrameFormat * GetEmptyPageFormat()
Definition: doc.hxx:750
std::unique_ptr< SwFrameFormats > mpFrameFormatTable
Definition: doc.hxx:240
SwTableBox is one table cell in the document model.
Definition: swtable.hxx:406
Get information about the current document state.
Organizer of the contact between SwTextNodes and grammar checker.
std::unique_ptr< SwFootnoteIdxs > mpFootnoteIdxs
Definition: doc.hxx:258
SwTextFormatColls * GetTextFormatColls()
Definition: doc.hxx:779
const std::unique_ptr< ::sw::DocumentFieldsManager > m_pDocumentFieldsManager
Definition: doc.hxx:226
Header, for PageFormats Client of FrameFormat describing the header.
Definition: fmthdft.hxx:33
bool IsAutoFormatRedline() const
Definition: doc.hxx:1447
std::unique_ptr< SwCellStyleTable > mpCellStyles
Cell Styles not assigned to a Table Style.
Definition: doc.hxx:290
const std::unique_ptr< ::sw::DocumentStylePoolManager > m_pDocumentStylePoolManager
Definition: doc.hxx:229
SwFormat *(SwDoc::* FNCopyFormat)(const OUString &, SwFormat *, bool, bool)
Definition: doc.hxx:339
std::unique_ptr< SwDBManager, o3tl::default_delete< SwDBManager > > m_pOwnDBManager
Definition: doc.hxx:251
bool IsInDtor() const
Definition: doc.hxx:404
Provides access to the layout of a document.
SwFootnoteIdxs & GetFootnoteIdxs()
Definition: doc.hxx:634
Access to the style pool.
bool HasTableStyles() const
Counts table styles without triggering lazy-load of them.
Definition: doc.hxx:1243
RndStdIds
std::unique_ptr< SwFrameFormat > mpDfltFrameFormat
Definition: doc.hxx:233
std::unique_ptr< SwLineNumberInfo > mpLineNumberInfo
Definition: doc.hxx:257
Give access to the data-provider for chart.
css::uno::Reference< css::script::vba::XVBAEventProcessor > mxVbaEvents
Definition: doc.hxx:284
const std::unique_ptr< ::sw::DocumentSettingManager > m_pDocumentSettingManager
Definition: doc.hxx:217
void SetInMailMerge(bool bNew)
Definition: doc.hxx:961
void SetLanguage(SwWrtShell &rWrtSh, std::u16string_view rLangText, bool bIsForSelection, SfxItemSet &rCoreSet)
Definition: langhelper.cxx:214
const SwFrameFormats * GetFrameFormats() const
Definition: doc.hxx:738
bool ContainsMSVBasic() const
Definition: doc.hxx:1538
const std::unique_ptr< ::sw::DocumentLinksAdministrationManager > m_pDocumentLinksAdministrationManager
Definition: doc.hxx:221
const SwGrfFormatColl * GetDfltGrfFormatColl() const
Definition: doc.hxx:804
IStyleAccess & GetIStyleAccess()
Definition: doc.hxx:757
std::unique_ptr< SwFootnoteInfo > mpFootnoteInfo
Definition: doc.hxx:255
SwFrameFormat * GetDfltFrameFormat()
Definition: doc.hxx:748
SwSectionFormats & GetSections()
Definition: doc.hxx:1338
void SetContainsMSVBasic(bool bFlag)
Definition: doc.hxx:1539
bool mbAllOLENotify
Definition: doc.hxx:316
SwChainRet
Definition: flyenum.hxx:33
std::shared_ptr< osl::Mutex > const & lock()
const SwFootnoteInfo & GetFootnoteInfo() const
Definition: doc.hxx:630
SwGrfFormatColl * GetDfltGrfFormatColl()
Definition: doc.hxx:805
DocumentType GetDocumentType() const
Definition: doc.hxx:397
const SwEndNoteInfo & GetEndNoteInfo() const
Definition: doc.hxx:632
SwCellFrame is one table cell in the document layout.
Definition: cellfrm.hxx:30
SwExtTextInput * mpExtInputRing
Definition: doc.hxx:276
SwDBManager * GetDBManager() const
Definition: doc.hxx:670
static SwPageDesc * FindPageDesc(SwDoc *pDoc, sal_uInt16 nPoolId)
Definition: htmlcss1.cxx:1327
bool IsInWriterfilterImport() const
Definition: doc.hxx:972
bool IsInXMLImport() const
Definition: doc.hxx:970
const SwAttrPool & GetAttrPool() const
Definition: doc.hxx:1319
std::unique_ptr< SwGrfFormatColl > mpDfltGrfFormatColl
Definition: doc.hxx:238
SwNumRule * GetOutlineNumRule() const
Definition: doc.hxx:1024
void SetVBATemplateToProjectCache(css::uno::Reference< css::container::XNameContainer > const &xCache)
Definition: doc.hxx:1622
MissingDictionary
Definition: doc.hxx:323
void SetAutoFormatRedline(bool bFlag)
Definition: doc.hxx:1448
SwCharFormats * GetCharFormats()
Definition: doc.hxx:741
Base class of the Writer document model elements.
Definition: node.hxx:81