diff options
author | Daniel Rentz [dr] <daniel.rentz@oracle.com> | 2010-11-04 11:03:35 +0100 |
---|---|---|
committer | Daniel Rentz [dr] <daniel.rentz@oracle.com> | 2010-11-04 11:03:35 +0100 |
commit | 0b66e33ee50cd1c77bd9b1073ab298bac03bcfb7 (patch) | |
tree | 3debbe6b1d0f39ee0d2d6e8d813438b9abcde483 /oox/inc/oox/xls/tablebuffer.hxx | |
parent | 65a1b13469cf7c2497f70a6a23363fe7cd643121 (diff) |
dr77: #i102872# handle new filter operators from css.sheet.FilterOperator2, rewrite OOXML autofilter import, add BIFF5/8/12 support
Diffstat (limited to 'oox/inc/oox/xls/tablebuffer.hxx')
-rw-r--r-- | oox/inc/oox/xls/tablebuffer.hxx | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/oox/inc/oox/xls/tablebuffer.hxx b/oox/inc/oox/xls/tablebuffer.hxx index 8c127184f15d..4e9cb9824df0 100644 --- a/oox/inc/oox/xls/tablebuffer.hxx +++ b/oox/inc/oox/xls/tablebuffer.hxx @@ -30,6 +30,7 @@ #include <com/sun/star/table/CellRangeAddress.hpp> #include "oox/helper/containerhelper.hxx" +#include "oox/xls/autofilterbuffer.hxx" #include "oox/xls/workbookhelper.hxx" namespace oox { @@ -62,6 +63,8 @@ public: void importTable( const AttributeList& rAttribs, sal_Int16 nSheet ); /** Imports a table definition from a TABLE record. */ void importTable( RecordInputStream& rStrm, sal_Int16 nSheet ); + /** Creates a new auto filter and stores it internally. */ + inline AutoFilter& createAutoFilter() { return maAutoFilters.createAutoFilter(); } /** Creates a database range from this tables. */ void finalizeImport(); @@ -70,7 +73,7 @@ public: inline sal_Int32 getTableId() const { return maModel.mnId; } /** Returns the token index used in API token arrays (com.sun.star.sheet.FormulaToken). */ inline sal_Int32 getTokenIndex() const { return mnTokenIndex; } - /** Returns the display name of the table. */ + /** Returns the original display name of the table. */ inline const ::rtl::OUString& getDisplayName() const { return maModel.maDisplayName; } /** Returns the original (unchecked) total range of the table. */ @@ -88,6 +91,8 @@ public: private: TableModel maModel; + AutoFilterBuffer maAutoFilters; /// Filter settings for this table. + ::rtl::OUString maDBRangeName; /// Name of the databae range in the Calc document. ::com::sun::star::table::CellRangeAddress maDestRange; /// Validated range of the table in the worksheet. sal_Int32 mnTokenIndex; /// Token index used in API token array. @@ -102,10 +107,8 @@ class TableBuffer : public WorkbookHelper public: explicit TableBuffer( const WorkbookHelper& rHelper ); - /** Imports a table definition from the passed attributes. */ - TableRef importTable( const AttributeList& rAttribs, sal_Int16 nSheet ); - /** Imports a table definition from a TABLE record. */ - TableRef importTable( RecordInputStream& rStrm, sal_Int16 nSheet ); + /** Creates a new empty table. */ + Table& createTable(); /** Creates database ranges from all imported tables. */ void finalizeImport(); @@ -116,12 +119,15 @@ public: TableRef getTable( const ::rtl::OUString& rDispName ) const; private: - void insertTable( const TableRef& rxTable ); + /** Inserts the passed table into the maps according to its identifier and name. */ + void insertTableToMaps( const TableRef& rxTable ); private: + typedef RefVector< Table > TableVector; typedef RefMap< sal_Int32, Table > TableIdMap; typedef RefMap< ::rtl::OUString, Table > TableNameMap; + TableVector maTables; TableIdMap maIdTables; TableNameMap maNameTables; }; |