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