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