summaryrefslogtreecommitdiff
path: root/oox/source/xls/excelhandlers.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/xls/excelhandlers.cxx')
-rw-r--r--oox/source/xls/excelhandlers.cxx81
1 files changed, 28 insertions, 53 deletions
diff --git a/oox/source/xls/excelhandlers.cxx b/oox/source/xls/excelhandlers.cxx
index 1ffad94d52f1..15f9d8297032 100644
--- a/oox/source/xls/excelhandlers.cxx
+++ b/oox/source/xls/excelhandlers.cxx
@@ -51,17 +51,10 @@ WorkbookFragmentBase::WorkbookFragmentBase(
// ============================================================================
-WorksheetFragmentBase::WorksheetFragmentBase( const WorkbookHelper& rHelper,
- const OUString& rFragmentPath, const ISegmentProgressBarRef& rxProgressBar, WorksheetType eSheetType, sal_Int16 nSheet ) :
- FragmentHandler2( rHelper.getOoxFilter(), rFragmentPath ),
- WorksheetHelperRoot( rHelper, rxProgressBar, eSheetType, nSheet )
-{
-}
-
WorksheetFragmentBase::WorksheetFragmentBase(
const WorksheetHelper& rHelper, const OUString& rFragmentPath ) :
FragmentHandler2( rHelper.getOoxFilter(), rFragmentPath ),
- WorksheetHelperRoot( rHelper )
+ WorksheetHelper( rHelper )
{
}
@@ -81,14 +74,8 @@ BiffWorkbookContextBase::BiffWorkbookContextBase( const WorkbookHelper& rHelper
// ----------------------------------------------------------------------------
-BiffWorksheetContextBase::BiffWorksheetContextBase( const WorkbookHelper& rHelper,
- const ISegmentProgressBarRef& rxProgressBar, WorksheetType eSheetType, sal_Int16 nSheet ) :
- WorksheetHelperRoot( rHelper, rxProgressBar, eSheetType, nSheet )
-{
-}
-
BiffWorksheetContextBase::BiffWorksheetContextBase( const WorksheetHelper& rHelper ) :
- WorksheetHelperRoot( rHelper )
+ WorksheetHelper( rHelper )
{
}
@@ -103,17 +90,33 @@ const sal_uInt16 BIFF_BOF_CHART = 0x0020; /// BIFF2-BIFF8 chart sh
const sal_uInt16 BIFF_BOF_MACRO = 0x0040; /// BIFF4-BIFF8 macro sheet.
const sal_uInt16 BIFF_BOF_WORKSPACE = 0x0100; /// BIFF3-BIFF8 workspace.
-BiffFragmentType lclStartFragment( BiffInputStream& rStrm, BiffType eBiff )
+} // namespace
+
+// ----------------------------------------------------------------------------
+
+BiffFragmentHandler::BiffFragmentHandler( const FilterBase& rFilter, const OUString& rStrmName )
+{
+ // do not automatically close the root stream (indicated by empty stream name)
+ bool bRootStrm = rStrmName.getLength() == 0;
+ mxXInStrm.reset( new BinaryXInputStream( rFilter.openInputStream( rStrmName ), !bRootStrm ) );
+ mxBiffStrm.reset( new BiffInputStream( *mxXInStrm ) );
+}
+
+BiffFragmentHandler::~BiffFragmentHandler()
+{
+}
+
+BiffFragmentType BiffFragmentHandler::startFragment( BiffType eBiff )
{
BiffFragmentType eFragment = BIFF_FRAGMENT_UNKNOWN;
/* #i23425# Don't rely on BOF record ID to read BOF contents, but on
the detected BIFF version. */
- if( BiffHelper::isBofRecord( rStrm ) )
+ if( mxBiffStrm->startNextRecord() && BiffHelper::isBofRecord( *mxBiffStrm ) )
{
// BOF is always written unencrypted
- rStrm.enableDecoder( false );
- rStrm.skip( 2 );
- sal_uInt16 nType = rStrm.readuInt16();
+ mxBiffStrm->enableDecoder( false );
+ mxBiffStrm->skip( 2 );
+ sal_uInt16 nType = mxBiffStrm->readuInt16();
// decide which fragment types are valid for current BIFF version
switch( eBiff )
@@ -166,32 +169,6 @@ BiffFragmentType lclStartFragment( BiffInputStream& rStrm, BiffType eBiff )
return eFragment;
}
-} // namespace
-
-// ----------------------------------------------------------------------------
-
-BiffFragmentHandler::BiffFragmentHandler( const FilterBase& rFilter, const OUString& rStrmName )
-{
- // do not automatically close the root stream (indicated by empty stream name)
- bool bRootStrm = rStrmName.getLength() == 0;
- mxXInStrm.reset( new BinaryXInputStream( rFilter.openInputStream( rStrmName ), !bRootStrm ) );
- mxBiffStrm.reset( new BiffInputStream( *mxXInStrm ) );
-}
-
-BiffFragmentHandler::~BiffFragmentHandler()
-{
-}
-
-BiffFragmentType BiffFragmentHandler::startFragment( BiffType eBiff )
-{
- return mxBiffStrm->startNextRecord() ? lclStartFragment( *mxBiffStrm, eBiff ) : BIFF_FRAGMENT_UNKNOWN;
-}
-
-BiffFragmentType BiffFragmentHandler::startFragment( BiffType eBiff, sal_Int64 nRecHandle )
-{
- return mxBiffStrm->startRecordByHandle( nRecHandle ) ? lclStartFragment( *mxBiffStrm, eBiff ) : BIFF_FRAGMENT_UNKNOWN;
-}
-
bool BiffFragmentHandler::skipFragment()
{
while( mxBiffStrm->startNextRecord() && (mxBiffStrm->getRecId() != BIFF_ID_EOF) )
@@ -200,7 +177,7 @@ bool BiffFragmentHandler::skipFragment()
return !mxBiffStrm->isEof() && (mxBiffStrm->getRecId() == BIFF_ID_EOF);
}
-// ----------------------------------------------------------------------------
+// ============================================================================
BiffWorkbookFragmentBase::BiffWorkbookFragmentBase( const WorkbookHelper& rHelper, const OUString& rStrmName, bool bCloneDecoder ) :
BiffFragmentHandler( rHelper.getBaseFilter(), rStrmName ),
@@ -212,18 +189,16 @@ BiffWorkbookFragmentBase::BiffWorkbookFragmentBase( const WorkbookHelper& rHelpe
// ----------------------------------------------------------------------------
-BiffWorksheetFragmentBase::BiffWorksheetFragmentBase( const BiffWorkbookFragmentBase& rParent,
- const ISegmentProgressBarRef& rxProgressBar, WorksheetType eSheetType, sal_Int16 nSheet ) :
+BiffWorksheetFragmentBase::BiffWorksheetFragmentBase( const WorksheetHelper& rHelper, const BiffWorkbookFragmentBase& rParent ) :
BiffFragmentHandler( rParent ),
- WorksheetHelperRoot( rParent, rxProgressBar, eSheetType, nSheet )
+ WorksheetHelper( rHelper )
{
}
// ----------------------------------------------------------------------------
-BiffSkipWorksheetFragment::BiffSkipWorksheetFragment( const BiffWorkbookFragmentBase& rParent,
- const ISegmentProgressBarRef& rxProgressBar, sal_Int16 nSheet ) :
- BiffWorksheetFragmentBase( rParent, rxProgressBar, SHEETTYPE_EMPTYSHEET, nSheet )
+BiffSkipWorksheetFragment::BiffSkipWorksheetFragment( const WorksheetHelper& rHelper, const BiffWorkbookFragmentBase& rParent ) :
+ BiffWorksheetFragmentBase( rHelper, rParent )
{
}