diff options
author | Kohei Yoshida <kohei.yoshida@gmail.com> | 2013-05-17 16:39:15 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@gmail.com> | 2013-05-20 20:18:46 -0400 |
commit | 252a30609357a5b2691b7796cc8f3f4f1319f655 (patch) | |
tree | 0f8c23f89a8d9e3f98951dd3c6718b57fa77cd82 /sc/inc | |
parent | 430d81e1fd44f51a91b81da91504a004ab7373d8 (diff) |
Keep track of column block positions in ScDocumentImport too.
This currently only affects document import via orcus, but it'll be
good to put this in place.
Change-Id: I8cc6d54aba6fab1f2774127f92c2a764f7b690fb
Diffstat (limited to 'sc/inc')
-rw-r--r-- | sc/inc/documentimport.hxx | 9 | ||||
-rw-r--r-- | sc/inc/mtvelements.hxx | 19 |
2 files changed, 25 insertions, 3 deletions
diff --git a/sc/inc/documentimport.hxx b/sc/inc/documentimport.hxx index eeafbba44c47..afd954bf93d5 100644 --- a/sc/inc/documentimport.hxx +++ b/sc/inc/documentimport.hxx @@ -15,10 +15,13 @@ #include "rtl/ustring.hxx" +#include <boost/noncopyable.hpp> + class ScDocument; class ScAddress; class ScTokenArray; class ScBaseCell; +struct ScDocumentImportImpl; /** * Accessor class to ScDocument. Its purpose is to allow import filter to @@ -27,15 +30,15 @@ class ScBaseCell; * position calculation, or anything else that requires expensive * computation which are unnecessary and undesirable during import. */ -class SC_DLLPUBLIC ScDocumentImport +class SC_DLLPUBLIC ScDocumentImport : boost::noncopyable { - ScDocument& mrDoc; + ScDocumentImportImpl* mpImpl; ScDocumentImport(); // disabled public: ScDocumentImport(ScDocument& rDoc); - ScDocumentImport(const ScDocumentImport& r); + ~ScDocumentImport(); ScDocument& getDoc(); const ScDocument& getDoc() const; diff --git a/sc/inc/mtvelements.hxx b/sc/inc/mtvelements.hxx index b21f7c7cc6ca..162838115da9 100644 --- a/sc/inc/mtvelements.hxx +++ b/sc/inc/mtvelements.hxx @@ -10,6 +10,7 @@ #ifndef SC_MTVELEMENTS_HXX #define SC_MTVELEMENTS_HXX +#include "address.hxx" #include "svl/broadcast.hxx" #define DEBUG_COLUMN_STORAGE 0 @@ -25,6 +26,10 @@ #include <mdds/multi_type_vector.hpp> #include <mdds/multi_type_vector_custom_func1.hpp> +#include <boost/unordered_map.hpp> + +class ScDocument; + namespace sc { struct CellTextAttr @@ -74,6 +79,20 @@ struct ColumnBlockPosition CellTextAttrStoreType::iterator miCellTextAttrPos; }; +class ColumnBlockPositionSet +{ + typedef boost::unordered_map<SCCOL, ColumnBlockPosition> ColumnsType; + typedef boost::unordered_map<SCTAB, ColumnsType> TablesType; + + ScDocument& mrDoc; + TablesType maTables; + +public: + ColumnBlockPositionSet(ScDocument& rDoc); + + ColumnBlockPosition* getBlockPosition(SCTAB nTab, SCCOL nCol); +}; + } #endif |