diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2009-07-28 10:04:47 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2009-07-28 10:04:47 +0000 |
commit | 5099046dccb69af04e2a3adafad8e06c0832bd06 (patch) | |
tree | bf9a7b20c84fec1a18a65c66b6a0a25d6bc7e2f7 /sc/inc/externalrefmgr.hxx | |
parent | 6189b25c86e18ef0021ea2f3ba256be36d0fb4be (diff) |
CWS-TOOLING: integrate CWS calc51
2009-07-17 15:47:46 +0200 er r274098 : #i101544# more thorough reference checking in chart data ranges; also prevent some possible crash if invalid ranges were to be passed to document/cell access.
2009-07-16 14:20:11 +0200 er r274051 : #i101544# let ScRefTokenHelper::compileRangeRepresentation() fail on all possible non-reference occasions
2009-07-07 10:11:40 +0200 nn r273776 : #i35579# don't use long instead of sal_Int32
2009-07-03 16:41:39 +0200 nn r273711 : msvc warnings
2009-07-03 14:18:45 +0200 nn r273698 : msvc warning
2009-07-03 11:30:41 +0200 nn r273685 : #i35579# move new tokens to the end
2009-07-03 10:12:55 +0200 nn r273681 : CWS-TOOLING: rebase CWS calc51 to trunk@273468 (milestone: DEV300:m51)
2009-06-30 17:57:30 +0200 nn r273529 : #i103027# EnterData: if it's a formula, don't pass EditTextObject to undo
2009-06-29 14:31:18 +0200 er r273474 : #i101544# #i101645# #i102388# applied diff from CWS dr68ooo311
2009-06-29 10:30:20 +0200 nn r273457 : #i103161# DeleteCells: always leave list action
2009-06-24 16:16:34 +0200 nn r273353 : gcc warnings
2009-06-17 11:50:28 +0200 tbe r273055 : #i35579# Standard filter requires more options
2009-06-17 11:44:22 +0200 tbe r273054 : #i35579# Standard filter requires more options
2009-06-17 11:22:23 +0200 tbe r273052 : #i35579# Standard filter requires more options
2009-06-15 18:29:32 +0200 nn r273006 : #160063# UseFormulaData: check parenthesis position
2009-06-12 15:41:16 +0200 nn r272923 : #i99250# handle range lists in DoAutoOutline (patch from dtardon)
2009-06-11 15:07:05 +0200 nn r272874 : #i86943# GetNextPos: skip overlapped cells
2009-06-11 11:17:37 +0200 nn r272856 : #i97726# EnterData: get text from EditTextObject for repeat string of undo action
2009-06-10 20:45:07 +0200 nn r272839 : #i102566# minimum amount of code between updates of calculation progress (patch by cmc)
2009-06-10 20:22:02 +0200 nn r272838 : #i69524# PasteFile: specify target for SID_OPENDOC
2009-06-09 17:33:08 +0200 nn r272789 : #i16615# absolute/relative reference conversion for cell ranges (patch by gaojingmei)
Diffstat (limited to 'sc/inc/externalrefmgr.hxx')
-rw-r--r-- | sc/inc/externalrefmgr.hxx | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx index 07c8a6a6697f..9b12dba52f1f 100644 --- a/sc/inc/externalrefmgr.hxx +++ b/sc/inc/externalrefmgr.hxx @@ -132,15 +132,27 @@ public: class Table { public: + + enum ReferencedFlag + { + UNREFERENCED, + REFERENCED_MARKED, // marked as referenced during store to file + REFERENCED_PERMANENT // permanently marked, e.g. from within interpreter + }; + Table(); ~Table(); SC_DLLPUBLIC void setCell(SCCOL nCol, SCROW nRow, TokenRef pToken, sal_uInt32 nFmtIndex = 0); TokenRef getCell(SCCOL nCol, SCROW nRow, sal_uInt32* pnFmtIndex = NULL) const; bool hasRow( SCROW nRow ) const; - /// A temporary state used only during store to file. - bool isReferenced() const; + /** Set/clear referenced status flag only if current status is not + REFERENCED_PERMANENT. */ void setReferenced( bool bReferenced ); + /// Unconditionally set the reference status flag. + void setReferencedFlag( ReferencedFlag eFlag ); + ReferencedFlag getReferencedFlag() const; + bool isReferenced() const; /// Obtain a sorted vector of rows. void getAllRows(::std::vector<SCROW>& rRows) const; /// Obtain a sorted vector of columns. @@ -148,8 +160,8 @@ public: void getAllNumberFormats(::std::vector<sal_uInt32>& rNumFmts) const; private: - RowsDataType maRows; - bool mbReferenced; + RowsDataType maRows; + ReferencedFlag meReferenced; }; typedef ::boost::shared_ptr<Table> TableTypeRef; @@ -219,9 +231,16 @@ public: * Set a table as referenced, used only during store-to-file. * @returns <TRUE/> if ALL tables of ALL documents are marked. */ - bool setCacheTableReferenced( sal_uInt16 nFileId, const String& rTabName ); + bool setCacheTableReferenced( sal_uInt16 nFileId, const String& rTabName, size_t nSheets, bool bPermanent ); void setAllCacheTableReferencedStati( bool bReferenced ); bool areAllCacheTablesReferenced() const; + + /** + * Set a table as permanently referenced, to be called if not in + * mark-during-store-to-file cycle. + */ + void setCacheTableReferencedPermanently( sal_uInt16 nFileId, const String& rTabName, size_t nSheets ); + private: struct ReferencedStatus { @@ -497,10 +516,16 @@ public: * Set a table as referenced, used only during store-to-file. * @returns <TRUE/> if ALL tables of ALL external documents are marked. */ - bool setCacheTableReferenced( sal_uInt16 nFileId, const String& rTabName ); + bool setCacheTableReferenced( sal_uInt16 nFileId, const String& rTabName, size_t nSheets ); void setAllCacheTableReferencedStati( bool bReferenced ); /** + * Set a table as permanently referenced, to be called if not in + * mark-during-store-to-file cycle. + */ + void setCacheTableReferencedPermanently( sal_uInt16 nFileId, const String& rTabName, size_t nSheets ); + + /** * @returns <TRUE/> if setAllCacheTableReferencedStati(false) was called, * <FALSE/> if setAllCacheTableReferencedStati(true) was called. */ |