summaryrefslogtreecommitdiff
path: root/sc/inc/document.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc/document.hxx')
-rw-r--r--sc/inc/document.hxx64
1 files changed, 51 insertions, 13 deletions
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 07a9518e1bf8..87d31f194854 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -136,6 +136,8 @@ class ScLookupCache;
struct ScLookupCacheMapImpl;
class SfxUndoManager;
class ScFormulaParserPool;
+struct ScClipParam;
+struct ScClipRangeNameData;
namespace com { namespace sun { namespace star {
namespace lang {
@@ -258,7 +260,7 @@ private:
ScChartCollection* pChartCollection;
std::auto_ptr< ScTemporaryChartLock > apTemporaryChartLock;
ScPatternAttr* pSelectionAttr; // Attribute eines Blocks
- SvxLinkManager* pLinkManager;
+ mutable SvxLinkManager* pLinkManager;
ScFormulaCell* pFormulaTree; // Berechnungsbaum Start
ScFormulaCell* pEOFormulaTree; // Berechnungsbaum Ende, letzte Zelle
ScFormulaCell* pFormulaTrack; // BroadcastTrack Start
@@ -280,6 +282,7 @@ private:
ScFieldEditEngine* pCacheFieldEditEngine;
::std::auto_ptr<ScDocProtection> pDocProtection;
+ ::std::auto_ptr<ScClipParam> mpClipParam;
::std::auto_ptr<ScExternalRefManager> pExternalRefMgr;
@@ -306,7 +309,6 @@ private:
sal_uInt32 nRangeOverflowType; // used in (xml) loading for overflow warnings
- ScRange aClipRange;
ScRange aEmbedRange;
ScAddress aCurTextWidthCalcPos;
ScAddress aOnlineSpellPos; // within whole document
@@ -356,7 +358,6 @@ private:
BOOL bForcedFormulaPending;
BOOL bCalculatingFormulaTree;
BOOL bIsClip;
- BOOL bCutMode;
BOOL bIsUndo;
BOOL bIsVisible; // set from view ctor
@@ -411,6 +412,7 @@ private:
bool mbAdjustHeightEnabled;
bool mbExecuteLinkEnabled;
bool mbChangeReadOnlyEnabled; // allow changes in read-only document (for API import filters)
+ bool mbStreamValidLocked;
sal_Int16 mnNamedRangesLockCount;
@@ -439,7 +441,7 @@ public:
SC_DLLPUBLIC void InitDrawLayer( SfxObjectShell* pDocShell = NULL );
XColorTable* GetColorTable();
- SvxLinkManager* GetLinkManager() { return pLinkManager; }
+ SC_DLLPUBLIC SvxLinkManager* GetLinkManager() const;
SC_DLLPUBLIC const ScDocOptions& GetDocOptions() const;
SC_DLLPUBLIC void SetDocOptions( const ScDocOptions& rOpt );
@@ -511,7 +513,7 @@ public:
::com::sun::star::embed::XEmbeddedObject >
FindOleObjectByName( const String& rName );
- SC_DLLPUBLIC void MakeTable( SCTAB nTab );
+ SC_DLLPUBLIC void MakeTable( SCTAB nTab,bool _bNeedsNameCheck = true );
SCTAB GetVisibleTab() const { return nVisibleTab; }
SC_DLLPUBLIC void SetVisibleTab(SCTAB nTab) { nVisibleTab = nTab; }
@@ -571,6 +573,10 @@ public:
SC_DLLPUBLIC void TransferDrawPage(ScDocument* pSrcDoc, SCTAB nSrcPos, SCTAB nDestPos);
SC_DLLPUBLIC void SetVisible( SCTAB nTab, BOOL bVisible );
SC_DLLPUBLIC BOOL IsVisible( SCTAB nTab ) const;
+ BOOL IsStreamValid( SCTAB nTab ) const;
+ void SetStreamValid( SCTAB nTab, BOOL bSet, BOOL bIgnoreLock = FALSE );
+ void LockStreamValid( bool bLock );
+ bool IsStreamValidLocked() const { return mbStreamValidLocked; }
BOOL IsPendingRowHeights( SCTAB nTab ) const;
void SetPendingRowHeights( SCTAB nTab, BOOL bSet );
SC_DLLPUBLIC void SetLayoutRTL( SCTAB nTab, BOOL bRTL );
@@ -604,8 +610,8 @@ public:
const String& aFileName,
const String& aTabName );
- bool HasExternalRefManager() { return pExternalRefMgr.get(); }
- SC_DLLPUBLIC ScExternalRefManager* GetExternalRefManager();
+ bool HasExternalRefManager() const { return pExternalRefMgr.get(); }
+ SC_DLLPUBLIC ScExternalRefManager* GetExternalRefManager() const;
bool IsInExternalReferenceMarking() const;
void MarkUsedExternalReferences();
bool MarkUsedExternalReferences( ScTokenArray & rArr );
@@ -826,6 +832,7 @@ public:
void SetDirty();
void SetDirty( const ScRange& );
void SetTableOpDirty( const ScRange& ); // for Interpreter TableOp
+ void InterpretDirtyCells( const ScRangeList& rRanges );
void CalcAll();
SC_DLLPUBLIC void CalcAfterLoad();
void CompileAll();
@@ -957,12 +964,11 @@ public:
void DeleteAreaTab(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
SCTAB nTab, USHORT nDelFlag);
void DeleteAreaTab(const ScRange& rRange, USHORT nDelFlag);
- void CopyToClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- BOOL bCut, ScDocument* pClipDoc, BOOL bAllTabs,
- const ScMarkData* pMarks = NULL,
- BOOL bKeepScenarioFlags = FALSE,
- BOOL bIncludeObjects = FALSE,
- BOOL bCloneNoteCaptions = TRUE);
+
+ void CopyToClip(const ScClipParam& rClipParam, ScDocument* pClipDoc,
+ const ScMarkData* pMarks = NULL, bool bAllTabs = false, bool bKeepScenarioFlags = false,
+ bool bIncludeObjects = false, bool bCloneNoteCaptions = true);
+
void CopyTabToClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
SCTAB nTab, ScDocument* pClipDoc = NULL);
void CopyBlockFromClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
@@ -990,6 +996,12 @@ public:
BOOL bSkipAttrForEmpty = FALSE,
const ScRangeList * pDestRanges = NULL );
+ void CopyMultiRangeFromClip(const ScAddress& rDestPos, const ScMarkData& rMark,
+ sal_uInt16 nInsFlag, ScDocument* pClipDoc,
+ bool bResetCut = true, bool bAsLink = false,
+ bool bIncludeFiltered = true,
+ bool bSkipAttrForEmpty = false);
+
void GetClipArea(SCCOL& nClipX, SCROW& nClipY, BOOL bIncludeFiltered);
void GetClipStart(SCCOL& nClipX, SCROW& nClipY);
@@ -999,6 +1011,9 @@ public:
SC_DLLPUBLIC void TransposeClip( ScDocument* pTransClip, USHORT nFlags, BOOL bAsLink );
+ ScClipParam& GetClipParam();
+ void SetClipParam(const ScClipParam& rParam);
+
void MixDocument( const ScRange& rRange, USHORT nFunction, BOOL bSkipEmpty,
ScDocument* pSrcDoc );
@@ -1696,6 +1711,23 @@ public:
SfxUndoManager* GetUndoManager();
private: // CLOOK-Impl-Methoden
+ /**
+ * Use this class as a locale variable to merge number formatter from
+ * another document, and set NULL pointer to pFormatExchangeList when
+ * done.
+ */
+ class NumFmtMergeHandler
+ {
+ public:
+ explicit NumFmtMergeHandler(ScDocument* pDoc, ScDocument* pSrcDoc);
+ ~NumFmtMergeHandler();
+
+ private:
+ ScDocument* mpDoc;
+ };
+
+ void MergeNumberFormatter(ScDocument* pSrcDoc);
+
void ImplCreateOptions(); // bei Gelegenheit auf on-demand umstellen?
void ImplDeleteOptions();
@@ -1717,6 +1749,12 @@ private: // CLOOK-Impl-Methoden
void UpdateRefAreaLinks( UpdateRefMode eUpdateRefMode,
const ScRange& r, SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
+ void CopyRangeNamesToClip(ScDocument* pClipDoc, const ScRange& rClipRange, const ScMarkData* pMarks, bool bAllTabs);
+ void CopyRangeNamesFromClip(ScDocument* pClipDoc, ScClipRangeNameData& rRangeNames);
+ void UpdateRangeNamesInFormulas(
+ ScClipRangeNameData& rRangeNames, const ScRangeList& rDestRanges, const ScMarkData& rMark,
+ SCCOL nXw, SCROW nYw);
+
BOOL HasPartOfMerged( const ScRange& rRange );
std::map< SCTAB, ScSortParam > mSheetSortParams;