LibreOffice Module sc (master)  1
docsh.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 
20 #ifndef INCLUDED_SC_SOURCE_UI_INC_DOCSH_HXX
21 #define INCLUDED_SC_SOURCE_UI_INC_DOCSH_HXX
22 
23 #include <sfx2/objsh.hxx>
24 #include <sfx2/docfac.hxx>
25 #include <sfx2/sfxmodelfactory.hxx>
26 #include <sfx2/viewsh.hxx>
27 #include <o3tl/deleter.hxx>
29 
30 #include <scdllapi.h>
31 #include <document.hxx>
32 #include <shellids.hxx>
33 #include <optutil.hxx>
34 #include <docuno.hxx>
35 
36 #include <memory>
37 #include <unordered_map>
38 #include <map>
39 
43 class SfxStyleSheetHint;
44 class INetURLObject;
45 
46 class ScViewData;
47 class ScDocFunc;
48 class ScDrawLayer;
49 class ScTabViewShell;
50 class ScAutoStyleList;
51 class ScMarkData;
52 class ScPaintLockData;
53 class ScChangeAction;
54 class ScImportOptions;
56 class ScOptSolverSave;
57 class ScSheetSaveData;
59 struct ScColWidthParam;
60 class ScFormulaOptions;
61 namespace com::sun::star::script::vba { class XVBAScriptListener; }
62 namespace ooo::vba::excel { class XWorkbook; }
63 namespace com::sun::star::datatransfer { class XTransferable2; }
64 namespace sfx2 { class FileDialogHelper; }
66 
67 typedef std::unordered_map< sal_uLong, sal_uLong > ScChangeActionMergeMap;
68 
69 //enum ScDBFormat { SC_FORMAT_SDF, SC_FORMAT_DBF };
70 
72 
73  // Extra flags for Repaint
74 #define SC_PF_LINES 1
75 #define SC_PF_TESTMERGE 2
76 #define SC_PF_WHOLEROWS 4
77 
79 {
81 
82  OUString m_aDdeTextFmt;
83 
85  std::unique_ptr<DocShell_Impl> m_pImpl;
86  std::unique_ptr<ScDocFunc> m_pDocFunc;
87 
90  bool m_bIsInplace:1; // Is set by the View
91  bool m_bIsEmpty:1;
92  bool m_bIsInUndo:1;
93  bool m_bDocumentModifiedPending:1;
94  bool m_bUpdateEnabled:1;
95  bool m_bUcalcTest:1; // avoid loading the styles in the ucalc test
96  bool m_bAreasChangedNeedBroadcast:1;
97  sal_uInt16 m_nDocumentLock;
98  sal_Int16 m_nCanUpdate; // stores the UpdateDocMode from loading a document till update links
99 
100  std::unique_ptr<ScDBData> m_pOldAutoDBRange;
101 
102  std::unique_ptr<ScAutoStyleList> m_pAutoStyleList;
103  std::unique_ptr<ScPaintLockData> m_pPaintLockData;
104  std::unique_ptr<ScOptSolverSave> m_pSolverSaveData;
105  std::unique_ptr<ScSheetSaveData> m_pSheetSaveData;
106  std::unique_ptr<ScFormatSaveData> m_pFormatSaveData;
107 
108  std::unique_ptr<ScDocShellModificator, o3tl::default_delete<ScDocShellModificator>> m_pModificator; // #109979#; is used to load XML (created in BeforeXMLLoading and destroyed in AfterXMLLoading)
109 
110  css::uno::Reference< ooo::vba::excel::XWorkbook> mxAutomationWorkbookObject;
111 
112  // Only used by Vba helper functions
113  css::uno::Reference<css::script::vba::XVBAScriptListener> m_xVBAListener;
114  css::uno::Reference<css::datatransfer::XTransferable2> m_xClipData;
115 
116  SAL_DLLPRIVATE void InitItems();
117  SAL_DLLPRIVATE void DoEnterHandler();
118  SAL_DLLPRIVATE void InitOptions(bool bForLoading);
119  SAL_DLLPRIVATE void ResetDrawObjectShell();
120 
123  class SAL_DLLPRIVATE PrepareSaveGuard
124  {
125  public:
126  explicit PrepareSaveGuard( ScDocShell & rDocShell );
127  ~PrepareSaveGuard() COVERITY_NOEXCEPT_FALSE;
128  private:
130  };
131 
132  SAL_DLLPRIVATE bool LoadXML( SfxMedium* pMedium, const css::uno::Reference< css::embed::XStorage >& );
133  SAL_DLLPRIVATE bool SaveXML( SfxMedium* pMedium, const css::uno::Reference< css::embed::XStorage >& );
134  SAL_DLLPRIVATE SCTAB GetSaveTab();
135 
136  SAL_DLLPRIVATE ErrCode DBaseImport( const OUString& rFullFileName, rtl_TextEncoding eCharSet,
137  std::map<SCCOL, ScColWidthParam>& aColWidthParam, ScFlatBoolRowSegments& rRowHeightsRecalc );
138  SAL_DLLPRIVATE ErrCode DBaseExport(
139  const OUString& rFullFileName, rtl_TextEncoding eCharSet, bool& bHasMemo );
140 
141  SAL_DLLPRIVATE static bool MoveFile( const INetURLObject& rSource, const INetURLObject& rDest );
142  SAL_DLLPRIVATE static bool KillFile( const INetURLObject& rURL );
143  SAL_DLLPRIVATE static bool IsDocument( const INetURLObject& rURL );
144 
145  SAL_DLLPRIVATE void LockPaint_Impl(bool bDoc);
146  SAL_DLLPRIVATE void UnlockPaint_Impl(bool bDoc);
147  SAL_DLLPRIVATE void LockDocument_Impl(sal_uInt16 nNew);
148  SAL_DLLPRIVATE void UnlockDocument_Impl(sal_uInt16 nNew);
149 
150  SAL_DLLPRIVATE void EnableSharedSettings( bool bEnable );
151  SAL_DLLPRIVATE css::uno::Reference< css::frame::XModel > LoadSharedDocument();
152 
153  SAL_DLLPRIVATE void UseSheetSaveEntries();
154 
155  SAL_DLLPRIVATE std::unique_ptr<ScDocFunc> CreateDocFunc();
156 
157  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
158 
159 public:
161  SFX_DECL_OBJECTFACTORY();
162 
163 private:
165  static void InitInterface_Impl();
166 
167 public:
168  explicit ScDocShell( const ScDocShell& rDocShell ) = delete;
169  explicit ScDocShell( const SfxModelFlags i_nSfxCreationFlags = SfxModelFlags::EMBEDDED_OBJECT );
170  virtual ~ScDocShell() override;
171 
172  virtual SfxUndoManager*
173  GetUndoManager() override;
174 
175  virtual void FillClass( SvGlobalName * pClassName,
176  SotClipboardFormatId * pFormat,
177  OUString * pFullTypeName,
178  sal_Int32 nFileFormat,
179  bool bTemplate = false ) const override;
180 
181  virtual std::set<Color> GetDocColors() override;
182 
183  virtual bool InitNew( const css::uno::Reference< css::embed::XStorage >& ) override;
184  virtual bool Load( SfxMedium& rMedium ) override;
185  virtual bool LoadFrom( SfxMedium& rMedium ) override;
186  virtual bool ConvertFrom( SfxMedium &rMedium ) override;
187  virtual bool LoadExternal( SfxMedium& rMedium ) override;
188  virtual bool Save() override;
189  virtual bool SaveAs( SfxMedium& rMedium ) override;
190  virtual bool ConvertTo( SfxMedium &rMedium ) override;
191  virtual bool PrepareClose( bool bUI = true ) override;
192  virtual void LoadStyles( SfxObjectShell &rSource ) override;
193 
194  virtual bool DoSaveCompleted( SfxMedium * pNewStor=nullptr, bool bRegisterRecent=true ) override; // SfxObjectShell
195  virtual bool QuerySlotExecutable( sal_uInt16 nSlotId ) override;
196 
197  virtual void Draw( OutputDevice *, const JobSetup & rSetup, sal_uInt16 nAspect ) override;
198 
199  virtual void SetVisArea( const tools::Rectangle & rVisArea ) override;
200 
201  virtual void TerminateEditing() override;
202 
203  using SfxObjectShell::GetVisArea;
204  virtual tools::Rectangle GetVisArea( sal_uInt16 nAspect ) const override;
205 
206  virtual Printer* GetDocumentPrinter() override;
207 
208  virtual void SetModified( bool = true ) override;
209 
210  void SetVisAreaOrSize( const tools::Rectangle& rVisArea );
211 
212  virtual std::shared_ptr<SfxDocumentInfoDialog> CreateDocumentInfoDialog(weld::Window* pParent, const SfxItemSet &rSet) override;
213 
214  void GetDocStat( ScDocStat& rDocStat );
215 
216  const ScDocument& GetDocument() const { return m_aDocument; }
217  ScDocument& GetDocument() { return m_aDocument; }
218  ScDocFunc& GetDocFunc() { return *m_pDocFunc; }
219 
220  css::uno::Reference<css::datatransfer::XTransferable2> const & GetClipData() const { return m_xClipData; }
221  void SetClipData(const css::uno::Reference<css::datatransfer::XTransferable2>& xTransferable) { m_xClipData = xTransferable; }
222 
223  SfxPrinter* GetPrinter( bool bCreateIfNotExist = true );
224  sal_uInt16 SetPrinter( VclPtr<SfxPrinter> const & pNewPrinter, SfxPrinterChangeFlags nDiffFlags = SFX_PRINTER_ALL );
225 
226  void UpdateFontList();
227 
228  ScDrawLayer* MakeDrawLayer();
229 
230  void AsciiSave( SvStream& rStream, const ScImportOptions& rOpt );
231 
232  void Execute( SfxRequest& rReq );
233  void GetState( SfxItemSet &rSet );
234  void ExecutePageStyle ( const SfxViewShell& rCaller, SfxRequest& rReq, SCTAB nCurTab );
235  void GetStatePageStyle( SfxItemSet& rSet, SCTAB nCurTab );
236 
237  void CompareDocument( ScDocument& rOtherDoc );
238  void MergeDocument( ScDocument& rOtherDoc, bool bShared = false, bool bCheckDuplicates = false, sal_uLong nOffset = 0, ScChangeActionMergeMap* pMergeMap = nullptr, bool bInverseMap = false );
239  bool MergeSharedDocument( ScDocShell* pSharedDocShell );
240 
241  ScChangeAction* GetChangeAction( const ScAddress& rPos );
242  void SetChangeComment( ScChangeAction* pAction, const OUString& rComment );
243  void ExecuteChangeCommentDialog( ScChangeAction* pAction, weld::Window* pParent, bool bPrevNext = true );
249  bool ExecuteChangeProtectionDialog( bool bJustQueryIfProtected = false );
250 
251  void SetPrintZoom( SCTAB nTab, sal_uInt16 nScale, sal_uInt16 nPages );
252  bool AdjustPrintZoom( const ScRange& rRange );
253 
254  void LoadStylesArgs( ScDocShell& rSource, bool bReplace, bool bCellStyles, bool bPageStyles );
255 
256  void PageStyleModified( const OUString& rStyleName, bool bApi );
257 
258  void NotifyStyle( const SfxStyleSheetHint& rHint );
259  void DoAutoStyle( const ScRange& rRange, const OUString& rStyle );
260 
261  static weld::Window* GetActiveDialogParent();
262  void ErrorMessage(const char* pGlobStrId);
263  bool IsEditable() const;
264 
265  bool AdjustRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab );
266  void UpdateAllRowHeights( const ScMarkData* pTabMark = nullptr );
267  void UpdatePendingRowHeights( SCTAB nUpdateTab, bool bBefore = false );
268 
269  void RefreshPivotTables( const ScRange& rSource );
270  void DoConsolidate( const ScConsolidateParam& rParam, bool bRecord = true );
271  void UseScenario( SCTAB nTab, const OUString& rName, bool bRecord = true );
272  SCTAB MakeScenario(SCTAB nTab, const OUString& rName, const OUString& rComment,
273  const Color& rColor, ScScenarioFlags nFlags,
274  ScMarkData& rMark, bool bRecord = true);
275  void ModifyScenario(SCTAB nTab, const OUString& rName, const OUString& rComment,
276  const Color& rColor, ScScenarioFlags nFlags);
277  sal_uLong TransferTab( ScDocShell& rSrcDocShell, SCTAB nSrcPos,
278  SCTAB nDestPos, bool bInsertNew,
279  bool bNotifyAndPaint );
280 
281  bool MoveTable( SCTAB nSrcTab, SCTAB nDestTab, bool bCopy, bool bRecord );
282 
283  void DoRecalc( bool bApi );
284  void DoHardRecalc();
285 
286  void UpdateOle( const ScViewData* pViewData, bool bSnapSize = false);
287  bool IsOle() const;
288 
289  void DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2 );
290  ScDBData* GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGetDBSelection eSel );
291  ScDBData* GetAnonymousDBData(const ScRange& rRange);
292  std::unique_ptr<ScDBData> GetOldAutoDBRange();
293  void CancelAutoDBRange(); // called when dialog is cancelled
294 
295  virtual void ReconnectDdeLink(SfxObjectShell& rServer) override;
296  void UpdateLinks() override;
297  void ReloadAllLinks();
298  void ReloadTabLinks();
299  ScLkUpdMode GetLinkUpdateModeState() const;
300 
301  void SetFormulaOptions( const ScFormulaOptions& rOpt, bool bForLoading = false );
306  void CheckConfigOptions();
307 
308  void PostEditView( ScEditEngineDefaulter* pEditEngine, const ScAddress& rCursorPos );
309 
310  void PostPaint( SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab,
311  SCCOL nEndCol, SCROW nEndRow, SCTAB nEndTab, PaintPartFlags nPart,
312  sal_uInt16 nExtFlags = 0 );
313  void PostPaint( const ScRangeList& rRanges, PaintPartFlags nPart, sal_uInt16 nExtFlags = 0 );
314 
315  void PostPaintCell( SCCOL nCol, SCROW nRow, SCTAB nTab );
316  void PostPaintCell( const ScAddress& rPos );
317  void PostPaintGridAll();
318  void PostPaintExtras();
319 
320  bool IsPaintLocked() const { return m_pPaintLockData != nullptr; }
321 
322  void PostDataChanged();
323 
324  void UpdatePaintExt( sal_uInt16& rExtFlags, SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab,
325  SCCOL nEndCol, SCROW nEndRow, SCTAB nEndTab );
326  void UpdatePaintExt( sal_uInt16& rExtFlags, const ScRange& rRange );
327 
328  void SetDocumentModified();
329  void SetDrawModified();
330 
331  void LockPaint();
332  void UnlockPaint();
333  sal_uInt16 GetLockCount() const { return m_nDocumentLock;}
334  void SetLockCount(sal_uInt16 nNew);
335 
336  void LockDocument();
337  void UnlockDocument();
338 
339  DECL_LINK( DialogClosedHdl, sfx2::FileDialogHelper*, void );
340  DECL_LINK( ReloadAllLinksHdl, Button*, void );
341 
342  virtual SfxStyleSheetBasePool* GetStyleSheetPool() override;
343 
344  void SetInplace( bool bInplace );
345  bool IsEmpty() const { return m_bIsEmpty; }
346  void SetEmpty(bool bSet);
347 
348  bool IsInUndo() const { return m_bIsInUndo; }
349  void SetInUndo(bool bSet);
350 
351  void CalcOutputFactor();
352  double GetOutputFactor() const { return m_nPrtToScreenFactor;}
353  void GetPageOnFromPageStyleSet( const SfxItemSet* pStyleSet,
354  SCTAB nCurTab,
355  bool& rbHeader,
356  bool& rbFooter );
357 
358 #if defined(_WIN32)
359  virtual bool DdeGetData( const OUString& rItem, const OUString& rMimeType,
360  css::uno::Any & rValue ) override;
361  virtual bool DdeSetData( const OUString& rItem, const OUString& rMimeType,
362  const css::uno::Any & rValue ) override;
363 #endif
364 
365  virtual ::sfx2::SvLinkSource* DdeCreateLinkSource( const OUString& rItem ) override;
366 
367  const OUString& GetDdeTextFmt() const { return m_aDdeTextFmt; }
368 
369  SfxBindings* GetViewBindings();
370 
371  ScTabViewShell* GetBestViewShell( bool bOnlyVisible = true );
372 
373  void SetDocumentModifiedPending( bool bVal )
374  { m_bDocumentModifiedPending = bVal; }
376  { return m_bDocumentModifiedPending; }
377 
378  bool IsUpdateEnabled() const
379  { return m_bUpdateEnabled; }
380  void SetUpdateEnabled(bool bValue)
381  { m_bUpdateEnabled = bValue; }
382 
384  { m_bAreasChangedNeedBroadcast = true; }
385 
386  OutputDevice* GetRefDevice(); // WYSIWYG: Printer, otherwise VirtualDevice...
387 
388  static ScViewData* GetViewData();
389  static SCTAB GetCurTab();
390 
391  static ScDocShell* GetShellByNum( sal_uInt16 nDocNo );
392  static OUString GetOwnFilterName();
393  static OUString GetHtmlFilterName();
394  static OUString GetWebQueryFilterName();
395  static OUString GetAsciiFilterName();
396  static OUString GetLotusFilterName();
397  static OUString GetDBaseFilterName();
398  static OUString GetDifFilterName();
399  static bool HasAutomaticTableName( const OUString& rFilter );
400  static void LOKCommentNotify(LOKCommentNotificationType nType, const ScDocument* pDocument, const ScAddress& rPos, const ScPostIt* pNote);
401 
402  DECL_LINK( RefreshDBDataHdl, Timer*, void );
403 
404  void BeforeXMLLoading();
405  void AfterXMLLoading(bool bRet);
406 
408 
409  const ScOptSolverSave* GetSolverSaveData() const { return m_pSolverSaveData.get(); } // may be null
410  void SetSolverSaveData( std::unique_ptr<ScOptSolverSave> pData );
411  ScSheetSaveData* GetSheetSaveData();
412  ScFormatSaveData* GetFormatSaveData();
413 
414  static void ResetKeyBindings( ScOptionsUtil::KeyBindingType eType );
415 
416  // password protection for Calc (derived from SfxObjectShell)
417  // see also: FID_CHG_RECORD, SID_CHG_PROTECT
418  virtual bool IsChangeRecording() const override;
419  virtual bool HasChangeRecordProtection() const override;
420  virtual void SetChangeRecording( bool bActivate ) override;
421  virtual void SetProtectionPassword( const OUString &rPassword ) override;
422  virtual bool GetProtectionHash( /*out*/ css::uno::Sequence< sal_Int8 > &rPasswordHash ) override;
423 
424  void SnapVisArea( tools::Rectangle& rRect ) const;
425 
426  void SetIsInUcalc();
427 
428  void RegisterAutomationWorkbookObject(css::uno::Reference< ooo::vba::excel::XWorkbook > const& xWorkbook);
429 };
430 
432 
434 
451 {
453  std::unique_ptr<ScRefreshTimerProtector> mpProtector;
456 
457  ScDocShellModificator( const ScDocShellModificator& ) = delete;
459 
460 public:
461  explicit ScDocShellModificator( ScDocShell& );
462  ~ScDocShellModificator() COVERITY_NOEXCEPT_FALSE;
463  void SetDocumentModified();
464 };
465 
466 //#i97876# Spreadsheet data changes are not notified
468 {
470  {
471  ScModelObj* pModelObj = comphelper::getUnoTunnelImplementation<ScModelObj>(rDocShell.GetModel());
472  if (pModelObj && pModelObj->HasChangesListeners())
473  return pModelObj;
474  return nullptr;
475  }
476 
477  inline void Notify(ScModelObj &rModelObj, const ScRangeList &rChangeRanges,
478  const OUString &rType = OUString("cell-change"),
479  const css::uno::Sequence< css::beans::PropertyValue >& rProperties =
480  css::uno::Sequence< css::beans::PropertyValue >())
481  {
482  rModelObj.NotifyChanges(rType, rChangeRanges, rProperties);
483  }
484 
485  inline void NotifyIfChangesListeners(const ScDocShell &rDocShell, const ScRange &rRange,
486  const OUString &rType = OUString("cell-change"))
487  {
488  if (ScModelObj* pModelObj = getMustPropagateChangesModel(rDocShell))
489  {
490  ScRangeList aChangeRanges(rRange);
491  Notify(*pModelObj, aChangeRanges, rType);
492  }
493  }
494 };
495 
496 void VBA_InsertModule( ScDocument& rDoc, SCTAB nTab, const OUString& sModuleSource );
497 
498 #endif
499 
500 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void UpdateAcceptChangesDialog()
Definition: docsh4.cxx:1344
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
Definition: markdata.hxx:43
std::unordered_map< sal_uLong, sal_uLong > ScChangeActionMergeMap
Definition: docsh.hxx:65
std::unique_ptr< ScDBData > m_pOldAutoDBRange
Definition: docsh.hxx:100
virtual void UpdateLinks()
double m_nPrtToScreenFactor
Definition: docsh.hxx:84
ScScenarioFlags
Definition: global.hxx:236
css::uno::Reference< css::datatransfer::XTransferable2 > const & GetClipData() const
Definition: docsh.hxx:220
sal_uIntPtr sal_uLong
Do things that need to be done before saving to our own format and necessary clean ups in dtor...
Definition: docsh.hxx:123
bool IsUpdateEnabled() const
Definition: docsh.hxx:378
double GetOutputFactor() const
Definition: docsh.hxx:352
ScDocShell & rDocShell
Definition: docsh.hxx:452
void LOKCommentNotify(CommentNotificationType nType, const SfxViewShell *pViewShell, Reference< XAnnotation > const &rxAnnotation)
css::uno::Reference< css::frame::XModel > GetModel() const
css::uno::Reference< css::script::vba::XVBAScriptListener > m_xVBAListener
Definition: docsh.hxx:113
~ScDocShellModificator() COVERITY_NOEXCEPT_FALSE
Definition: docsh.cxx:3149
ScGetDBMode
Definition: global.hxx:390
sal_uInt16 GetLockCount() const
Definition: docsh.hxx:333
virtual SfxStyleSheetBasePool * GetStyleSheetPool()
DECL_LINK(SignDocumentHandler, Button *, void)
SfxPrinterChangeFlags
ScDocument & GetDocument()
Definition: docsh.hxx:217
Additional class containing cell annotation data.
Definition: postit.hxx:160
ScLkUpdMode
Definition: global.hxx:418
std::unique_ptr< ScPaintLockData > m_pPaintLockData
Definition: docsh.hxx:103
std::unique_ptr< ScDocFunc > m_pDocFunc
Definition: docsh.hxx:86
virtual void SetChangeRecording(bool bActivate)
const OUString & GetDdeTextFmt() const
Definition: docsh.hxx:367
SotClipboardFormatId
void SetClipData(const css::uno::Reference< css::datatransfer::XTransferable2 > &xTransferable)
Definition: docsh.hxx:221
bool IsDocumentModifiedPending() const
Definition: docsh.hxx:375
virtual void ReconnectDdeLink(SfxObjectShell &rServer)
virtual bool IsChangeRecording() const
virtual bool HasChangeRecordProtection() const
std::unique_ptr< ScAutoStyleList > m_pAutoStyleList
Definition: docsh.hxx:102
void Notify(ScModelObj &rModelObj, const ScRangeList &rChangeRanges, const OUString &rType=OUString("cell-change"), const css::uno::Sequence< css::beans::PropertyValue > &rProperties=css::uno::Sequence< css::beans::PropertyValue >())
Definition: docsh.hxx:477
std::unique_ptr< ScDocShellModificator, o3tl::default_delete< ScDocShellModificator > > m_pModificator
Definition: docsh.hxx:108
sal_Int16 SCCOL
Definition: types.hxx:22
sal_uInt16 m_nDocumentLock
Definition: docsh.hxx:97
virtual ::sfx2::SvLinkSource * DdeCreateLinkSource(const OUString &rItem)
sal_Int16 m_nCanUpdate
Definition: docsh.hxx:98
void SetPrinter(IDocumentDeviceAccess *, SfxPrinter const *, bool bWeb)
bool KillFile(const INetURLObject &rURL)
void SetAreasChangedNeedBroadcast()
Definition: docsh.hxx:383
virtual HiddenInformation GetHiddenInformationState(HiddenInformation nStates)
#define SCID_DOC_SHELL
Definition: shellids.hxx:25
bool m_bFooterOn
Definition: docsh.hxx:89
void SetUpdateEnabled(bool bValue)
Definition: docsh.hxx:380
bool IsPaintLocked() const
Definition: docsh.hxx:320
ScModelObj * getMustPropagateChangesModel(const ScDocShell &rDocShell)
Definition: docsh.hxx:469
std::unique_ptr< ScRefreshTimerProtector > mpProtector
Definition: docsh.hxx:453
void NotifyChanges(const OUString &rOperation, const ScRangeList &rRanges, const css::uno::Sequence< css::beans::PropertyValue > &rProperties)
Definition: docuno.cxx:3132
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint)
std::unique_ptr< ScOptSolverSave > m_pSolverSaveData
Definition: docsh.hxx:104
sal_Int32 SCROW
Definition: types.hxx:18
void VBA_InsertModule(ScDocument &rDoc, SCTAB nTab, const OUString &sModuleSource)
Definition: docfunc.cxx:3177
std::unique_ptr< ScSheetSaveData > m_pSheetSaveData
Definition: docsh.hxx:105
css::uno::Reference< css::datatransfer::XTransferable2 > m_xClipData
Definition: docsh.hxx:114
ScGetDBSelection
For ScDBFunc::GetDBData()
Definition: global.hxx:399
ScDocShellModificator & operator=(const ScDocShellModificator &)=delete
std::unique_ptr< ScFormatSaveData > m_pFormatSaveData
Definition: docsh.hxx:106
const ScOptSolverSave * GetSolverSaveData() const
Definition: docsh.hxx:409
All settings from the dialog, saved with the DocShell for the next call.
Definition: optsolver.hxx:58
tools::SvRef< ScDocShell > ScDocShellRef
Definition: docsh.hxx:433
virtual bool GetProtectionHash(css::uno::Sequence< sal_Int8 > &rPasswordHash)
SfxModelFlags
bool m_bHeaderOn
Definition: docsh.hxx:88
LOKCommentNotificationType
Definition: docsh.hxx:71
std::unique_ptr< DocShell_Impl > m_pImpl
Definition: docsh.hxx:85
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:401
css::uno::Reference< ooo::vba::excel::XWorkbook > mxAutomationWorkbookObject
Definition: docsh.hxx:110
void NotifyIfChangesListeners(const ScDocShell &rDocShell, const ScRange &rRange, const OUString &rType=OUString("cell-change"))
Definition: docsh.hxx:485
ScDocShellModificator(const ScDocShellModificator &)=delete
void SetDocumentModified()
Definition: docsh.cxx:3158
bool IsInUndo() const
Definition: docsh.hxx:348
ScDocument m_aDocument
Definition: docsh.hxx:80
virtual void SetProtectionPassword(const OUString &rPassword)
bool IsEmpty() const
Definition: docsh.hxx:345
OUString m_aDdeTextFmt
Definition: docsh.hxx:82
ScDocFunc & GetDocFunc()
Definition: docsh.hxx:218
bool HasChangesListeners() const
Definition: docuno.cxx:3123
void SetDocumentModifiedPending(bool bVal)
Definition: docsh.hxx:373
const OUStringLiteral IsDocument("IsDocument")
PaintPartFlags
Definition: global.hxx:119
HiddenInformation
#define SC_DLLPUBLIC
Definition: scdllapi.h:28
Create before modifications of the document and destroy thereafter.
Definition: docsh.hxx:450
sal_Int16 SCTAB
Definition: types.hxx:23
bool bAutoCalcShellDisabled
Definition: docsh.hxx:454
#define SFX_DECL_INTERFACE(nId)