[Libreoffice-commits] core.git: sc/Library_scfilt.mk sc/source

Caolán McNamara caolanm at redhat.com
Wed Nov 8 14:26:16 UTC 2017


 sc/Library_scfilt.mk                  |    3 
 sc/source/filter/starcalc/collect.cxx |  131 -
 sc/source/filter/starcalc/collect.hxx |   58 
 sc/source/filter/starcalc/scflt.cxx   | 2403 ----------------------------------
 sc/source/filter/starcalc/scflt.hxx   |  791 -----------
 sc/source/filter/starcalc/scfobj.cxx  |   86 -
 6 files changed, 3472 deletions(-)

New commits:
commit bcfd4b0de6b67bfa3e5f42b845d7055073c68d52
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Nov 8 11:29:03 2017 +0000

    drop uncallable Sc10Import
    
    Change-Id: Ie5c400ff87b529f7b3d529e14ec0befe0a3bd2e7
    Reviewed-on: https://gerrit.libreoffice.org/44456
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/Library_scfilt.mk b/sc/Library_scfilt.mk
index 6a02ec91db63..e4b6fe154e89 100644
--- a/sc/Library_scfilt.mk
+++ b/sc/Library_scfilt.mk
@@ -152,9 +152,6 @@ $(eval $(call gb_Library_add_exception_objects,scfilt,\
 	sc/source/filter/rtf/rtfexp \
 	sc/source/filter/rtf/rtfimp \
 	sc/source/filter/rtf/rtfparse \
-	sc/source/filter/starcalc/collect \
-	sc/source/filter/starcalc/scflt \
-	sc/source/filter/starcalc/scfobj \
 	sc/source/filter/xcl97/XclExpChangeTrack \
 	sc/source/filter/xcl97/XclImpChangeTrack \
 	sc/source/filter/xcl97/xcl97esc \
diff --git a/sc/source/filter/starcalc/collect.cxx b/sc/source/filter/starcalc/collect.cxx
deleted file mode 100644
index 3ed51bfba774..000000000000
--- a/sc/source/filter/starcalc/collect.cxx
+++ /dev/null
@@ -1,131 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "collect.hxx"
-
-#include <string.h>
-
-#define MAXCOLLECTIONSIZE       16384
-#define MAXDELTA                1024
-
-ScDataObject::~ScDataObject()
-{
-}
-
-// Collection
-
-static void lcl_DeleteScDataObjects( ScDataObject** p, sal_uInt16 nCount )
-{
-    if ( p )
-    {
-        for (sal_uInt16 i = 0; i < nCount; i++) delete p[i];
-        delete[] p;
-    }
-}
-
-ScCollection::ScCollection(sal_uInt16 nLim, sal_uInt16 nDel) :
-    nCount ( 0 ),
-    nLimit ( nLim ),
-    nDelta ( nDel ),
-    pItems ( nullptr )
-{
-    if (nDelta > MAXDELTA)
-        nDelta = MAXDELTA;
-    else if (nDelta == 0)
-        nDelta = 1;
-    if (nLimit > MAXCOLLECTIONSIZE)
-        nLimit = MAXCOLLECTIONSIZE;
-    else if (nLimit < nDelta)
-        nLimit = nDelta;
-    pItems = new ScDataObject*[nLimit];
-}
-
-ScCollection::ScCollection(const ScCollection& rCollection)
-    :   ScDataObject(),
-        nCount ( 0 ),
-        nLimit ( 0 ),
-        nDelta ( 0 ),
-        pItems ( nullptr )
-{
-    *this = rCollection;
-}
-
-ScCollection::~ScCollection()
-{
-    lcl_DeleteScDataObjects( pItems, nCount );
-}
-
-bool ScCollection::AtInsert(sal_uInt16 nIndex, ScDataObject* pScDataObject)
-{
-    if ((nCount < MAXCOLLECTIONSIZE) && (nIndex <= nCount) && pItems)
-    {
-        if (nCount == nLimit)
-        {
-            ScDataObject** pNewItems = new ScDataObject*[nLimit + nDelta];
-            nLimit = sal::static_int_cast<sal_uInt16>( nLimit + nDelta );
-            memcpy(pNewItems, pItems, nCount * sizeof(ScDataObject*));
-            delete[] pItems;
-            pItems = pNewItems;
-        }
-        if (nCount > nIndex)
-            memmove(&pItems[nIndex + 1], &pItems[nIndex], (nCount - nIndex) * sizeof(ScDataObject*));
-        pItems[nIndex] = pScDataObject;
-        nCount++;
-        return true;
-    }
-    return false;
-}
-
-bool ScCollection::Insert(ScDataObject* pScDataObject)
-{
-    return AtInsert(nCount, pScDataObject);
-}
-
-ScDataObject* ScCollection::At(sal_uInt16 nIndex) const
-{
-    if (nIndex < nCount)
-        return pItems[nIndex];
-    else
-        return nullptr;
-}
-
-ScCollection& ScCollection::operator=( const ScCollection& r )
-{
-    // Check for self-assignment
-    if (this == &r)
-       return *this;
-
-    lcl_DeleteScDataObjects( pItems, nCount );
-
-    nCount = r.nCount;
-    nLimit = r.nLimit;
-    nDelta = r.nDelta;
-    pItems = new ScDataObject*[nLimit];
-    for ( sal_uInt16 i=0; i<nCount; i++ )
-        pItems[i] = r.pItems[i]->Clone();
-
-    return *this;
-}
-
-ScDataObject*   ScCollection::Clone() const
-{
-    return new ScCollection(*this);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/starcalc/collect.hxx b/sc/source/filter/starcalc/collect.hxx
deleted file mode 100644
index 92457bbd8ad3..000000000000
--- a/sc/source/filter/starcalc/collect.hxx
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_SC_SOURCE_FILTER_STARCALC_COLLECT_HXX
-#define INCLUDED_SC_SOURCE_FILTER_STARCALC_COLLECT_HXX
-
-#include <sal/types.h>
-
-class ScDataObject
-{
-public:
-               ScDataObject() {}
-    virtual    ~ScDataObject();
-    virtual    ScDataObject*       Clone() const = 0;
-};
-
-class ScCollection : public ScDataObject
-{
-protected:
-    sal_uInt16          nCount;
-    sal_uInt16          nLimit;
-    sal_uInt16          nDelta;
-    ScDataObject**     pItems;
-public:
-    ScCollection(sal_uInt16 nLim, sal_uInt16 nDel);
-    ScCollection(const ScCollection& rCollection);
-    virtual                 ~ScCollection() override;
-
-    virtual ScDataObject*   Clone() const override;
-
-    bool                    AtInsert(sal_uInt16 nIndex, ScDataObject* pScDataObject);
-    bool                    Insert(ScDataObject* pScDataObject);
-
-    ScDataObject*           At(sal_uInt16 nIndex) const;
-    sal_uInt16              GetCount() const { return nCount; }
-
-    ScCollection&  operator= ( const ScCollection& rCol );
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/starcalc/scflt.cxx b/sc/source/filter/starcalc/scflt.cxx
deleted file mode 100644
index d15bf25b90cb..000000000000
--- a/sc/source/filter/starcalc/scflt.cxx
+++ /dev/null
@@ -1,2403 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <scitems.hxx>
-#include <editeng/eeitem.hxx>
-
-#include <com/sun/star/style/NumberingType.hpp>
-#include <formula/errorcodes.hxx>
-#include <svx/algitem.hxx>
-#include <editeng/boxitem.hxx>
-#include <editeng/brushitem.hxx>
-#include <editeng/colritem.hxx>
-#include <editeng/crossedoutitem.hxx>
-#include <editeng/editdata.hxx>
-#include <editeng/editeng.hxx>
-#include <editeng/editobj.hxx>
-#include <editeng/fhgtitem.hxx>
-#include <editeng/fontitem.hxx>
-#include <editeng/lrspitem.hxx>
-#include <svx/pageitem.hxx>
-#include <editeng/postitem.hxx>
-#include <editeng/sizeitem.hxx>
-#include <editeng/udlnitem.hxx>
-#include <editeng/ulspitem.hxx>
-#include <editeng/wghtitem.hxx>
-#include <editeng/justifyitem.hxx>
-#include <svl/zforlist.hxx>
-#include <svl/PasswordHelper.hxx>
-#include <cassert>
-#include <math.h>
-#include <string.h>
-
-#include <global.hxx>
-#include <sc.hrc>
-#include <attrib.hxx>
-#include <patattr.hxx>
-#include <docpool.hxx>
-#include <document.hxx>
-#include "collect.hxx"
-#include <rangenam.hxx>
-#include <dbdata.hxx>
-#include <stlsheet.hxx>
-#include <stlpool.hxx>
-#include <filter.hxx>
-#include "scflt.hxx"
-#include <formulacell.hxx>
-#include <scfobj.hxx>
-#include <docoptio.hxx>
-#include <viewopti.hxx>
-#include <postit.hxx>
-#include <globstr.hrc>
-#include <ftools.hxx>
-#include <tabprotection.hxx>
-
-#include <fprogressbar.hxx>
-#include <memory>
-
-using namespace com::sun::star;
-
-#define DEFCHARSET          RTL_TEXTENCODING_MS_1252
-
-#define SC10TOSTRING(p)     OUString((p), strlen(p), DEFCHARSET)
-
-const SCCOL SC10MAXCOL = 255;   // #i85906# don't try to load more columns than there are in the file
-
-/** Those strings are used with SC10TOSTRING() and strcmp() and such, hence
-    need to be 0-terminated. */
-static void lcl_ReadFixedString( SvStream& rStream, void* pData, size_t nLen )
-{
-    sal_Char* pBuf = static_cast<sal_Char*>(pData);
-    if (!nLen)
-        pBuf[0] = 0;
-    else
-    {
-        rStream.ReadBytes(pBuf, nLen);
-        pBuf[nLen-1] = 0;
-    }
-}
-
-static void lcl_ReadFileHeader(SvStream& rStream, Sc10FileHeader& rFileHeader)
-{
-    lcl_ReadFixedString( rStream, &rFileHeader.CopyRight, sizeof(rFileHeader.CopyRight));
-    rStream.ReadUInt16( rFileHeader.Version );
-    rStream.ReadBytes(&rFileHeader.Reserved, sizeof(rFileHeader.Reserved));
-}
-
-static void lcl_ReadTabProtect(SvStream& rStream, Sc10TableProtect& rProtect)
-{
-    lcl_ReadFixedString( rStream, &rProtect.PassWord, sizeof(rProtect.PassWord));
-    rStream.ReadUInt16( rProtect.Flags );
-    rStream.ReadUChar( rProtect.Protect );
-}
-
-static void lcl_ReadSheetProtect(SvStream& rStream, Sc10SheetProtect& rProtect)
-{
-    lcl_ReadFixedString( rStream, &rProtect.PassWord, sizeof(rProtect.PassWord));
-    rStream.ReadUInt16( rProtect.Flags );
-    rStream.ReadUChar( rProtect.Protect );
-}
-
-static void lcl_ReadRGB(SvStream& rStream, Sc10Color& rColor)
-{
-    rStream.ReadUChar( rColor.Dummy );
-    rStream.ReadUChar( rColor.Blue );
-    rStream.ReadUChar( rColor.Green );
-    rStream.ReadUChar( rColor.Red );
-}
-
-static void lcl_ReadPalette(SvStream& rStream, Sc10Color* pPalette)
-{
-    for (sal_uInt16 i = 0; i < 16; i++)
-        lcl_ReadRGB(rStream, pPalette[i]);
-}
-
-static void lcl_ReadValueFormat(SvStream& rStream, Sc10ValueFormat& rFormat)
-{
-    rStream.ReadUChar( rFormat.Format );
-    rStream.ReadUChar( rFormat.Info );
-}
-
-static void lcl_ReadLogFont(SvStream& rStream, Sc10LogFont& rFont)
-{
-    rStream.ReadInt16( rFont.lfHeight );
-    rStream.ReadInt16( rFont.lfWidth );
-    rStream.ReadInt16( rFont.lfEscapement );
-    rStream.ReadInt16( rFont.lfOrientation );
-    rStream.ReadInt16( rFont.lfWeight );
-    rStream.ReadUChar( rFont.lfItalic );
-    rStream.ReadUChar( rFont.lfUnderline );
-    rStream.ReadUChar( rFont.lfStrikeOut );
-    rStream.ReadUChar( rFont.lfCharSet );
-    rStream.ReadUChar( rFont.lfOutPrecision );
-    rStream.ReadUChar( rFont.lfClipPrecision );
-    rStream.ReadUChar( rFont.lfQuality );
-    rStream.ReadUChar( rFont.lfPitchAndFamily );
-    lcl_ReadFixedString( rStream, &rFont.lfFaceName, sizeof(rFont.lfFaceName));
-}
-
-static void lcl_ReadBlockRect(SvStream& rStream, Sc10BlockRect& rBlock)
-{
-    rStream.ReadInt16( rBlock.x1 );
-    rStream.ReadInt16( rBlock.y1 );
-    rStream.ReadInt16( rBlock.x2 );
-    rStream.ReadInt16( rBlock.y2 );
-}
-
-static void lcl_ReadHeadFootLine(SvStream& rStream, Sc10HeadFootLine& rLine)
-{
-    lcl_ReadFixedString( rStream, &rLine.Title, sizeof(rLine.Title));
-    lcl_ReadLogFont(rStream, rLine.LogFont);
-    rStream.ReadUChar( rLine.HorJustify );
-    rStream.ReadUChar( rLine.VerJustify );
-    rStream.ReadUInt16( rLine.Raster );
-    rStream.ReadUInt16( rLine.Frame );
-    lcl_ReadRGB(rStream, rLine.TextColor);
-    lcl_ReadRGB(rStream, rLine.BackColor);
-    lcl_ReadRGB(rStream, rLine.RasterColor);
-    rStream.ReadUInt16( rLine.FrameColor );
-    rStream.ReadUInt16( rLine.Reserved );
-}
-
-static void lcl_ReadPageFormat(SvStream& rStream, Sc10PageFormat& rFormat)
-{
-    lcl_ReadHeadFootLine(rStream, rFormat.HeadLine);
-    lcl_ReadHeadFootLine(rStream, rFormat.FootLine);
-    rStream.ReadInt16( rFormat.Orientation );
-    rStream.ReadInt16( rFormat.Width );
-    rStream.ReadInt16( rFormat.Height );
-    rStream.ReadInt16( rFormat.NonPrintableX );
-    rStream.ReadInt16( rFormat.NonPrintableY );
-    rStream.ReadInt16( rFormat.Left );
-    rStream.ReadInt16( rFormat.Top );
-    rStream.ReadInt16( rFormat.Right );
-    rStream.ReadInt16( rFormat.Bottom );
-    rStream.ReadInt16( rFormat.Head );
-    rStream.ReadInt16( rFormat.Foot );
-    rStream.ReadUChar( rFormat.HorCenter );
-    rStream.ReadUChar( rFormat.VerCenter );
-    rStream.ReadUChar( rFormat.PrintGrid );
-    rStream.ReadUChar( rFormat.PrintColRow );
-    rStream.ReadUChar( rFormat.PrintNote );
-    rStream.ReadUChar( rFormat.TopBottomDir );
-    lcl_ReadFixedString( rStream, &rFormat.PrintAreaName, sizeof(rFormat.PrintAreaName));
-    lcl_ReadBlockRect(rStream, rFormat.PrintArea);
-    rStream.ReadBytes(&rFormat.PrnZoom, sizeof(rFormat.PrnZoom));
-    rStream.ReadInt16( rFormat.FirstPageNo );
-    rStream.ReadInt16( rFormat.RowRepeatStart );
-    rStream.ReadInt16( rFormat.RowRepeatEnd );
-    rStream.ReadInt16( rFormat.ColRepeatStart );
-    rStream.ReadInt16( rFormat.ColRepeatEnd );
-    rStream.ReadBytes(&rFormat.Reserved, sizeof(rFormat.Reserved));
-}
-
-static void lcl_ReadGraphHeader(SvStream& rStream, Sc10GraphHeader& rHeader)
-{
-    rStream.ReadUChar( rHeader.Typ );
-    rStream.ReadInt16( rHeader.CarretX );
-    rStream.ReadInt16( rHeader.CarretY );
-    rStream.ReadInt16( rHeader.CarretZ );
-    rStream.ReadInt32( rHeader.x );
-    rStream.ReadInt32( rHeader.y );
-    rStream.ReadInt32( rHeader.w );
-    rStream.ReadInt32( rHeader.h );
-    rStream.ReadUChar( rHeader.IsRelPos );
-    rStream.ReadUChar( rHeader.DoPrint );
-    rStream.ReadUInt16( rHeader.FrameType );
-    rStream.ReadUChar( rHeader.IsTransparent );
-    lcl_ReadRGB(rStream, rHeader.FrameColor);
-    lcl_ReadRGB(rStream, rHeader.BackColor);
-    rStream.ReadBytes(&rHeader.Reserved, sizeof(rHeader.Reserved));
-}
-
-static void lcl_ReadImageHeaer(SvStream& rStream, Sc10ImageHeader& rHeader)
-{
-    lcl_ReadFixedString( rStream, &rHeader.FileName, sizeof(rHeader.FileName));
-    rStream.ReadInt16( rHeader.Typ );
-    rStream.ReadUChar( rHeader.Linked );
-    rStream.ReadInt16( rHeader.x1 );
-    rStream.ReadInt16( rHeader.y1 );
-    rStream.ReadInt16( rHeader.x2 );
-    rStream.ReadInt16( rHeader.y2 );
-    rStream.ReadUInt32( rHeader.Size );
-}
-
-static void lcl_ReadChartHeader(SvStream& rStream, Sc10ChartHeader& rHeader)
-{
-    rStream.ReadInt16( rHeader.MM );
-    rStream.ReadInt16( rHeader.xExt );
-    rStream.ReadInt16( rHeader.yExt );
-    rStream.ReadUInt32( rHeader.Size );
-}
-
-static void lcl_ReadChartSheetData(SvStream& rStream, Sc10ChartSheetData& rSheetData)
-{
-    rStream.ReadUChar( rSheetData.HasTitle );
-    rStream.ReadInt16( rSheetData.TitleX );
-    rStream.ReadInt16( rSheetData.TitleY );
-    rStream.ReadUChar( rSheetData.HasSubTitle );
-    rStream.ReadInt16( rSheetData.SubTitleX );
-    rStream.ReadInt16( rSheetData.SubTitleY );
-    rStream.ReadUChar( rSheetData.HasLeftTitle );
-    rStream.ReadInt16( rSheetData.LeftTitleX );
-    rStream.ReadInt16( rSheetData.LeftTitleY );
-    rStream.ReadUChar( rSheetData.HasLegend );
-    rStream.ReadInt16( rSheetData.LegendX1 );
-    rStream.ReadInt16( rSheetData.LegendY1 );
-    rStream.ReadInt16( rSheetData.LegendX2 );
-    rStream.ReadInt16( rSheetData.LegendY2 );
-    rStream.ReadUChar( rSheetData.HasLabel );
-    rStream.ReadInt16( rSheetData.LabelX1 );
-    rStream.ReadInt16( rSheetData.LabelY1 );
-    rStream.ReadInt16( rSheetData.LabelX2 );
-    rStream.ReadInt16( rSheetData.LabelY2 );
-    rStream.ReadInt16( rSheetData.DataX1 );
-    rStream.ReadInt16( rSheetData.DataY1 );
-    rStream.ReadInt16( rSheetData.DataX2 );
-    rStream.ReadInt16( rSheetData.DataY2 );
-    rStream.ReadBytes(&rSheetData.Reserved, sizeof(rSheetData.Reserved));
-}
-
-static void lcl_ReadChartTypeData(SvStream& rStream, Sc10ChartTypeData& rTypeData)
-{
-    rStream.ReadInt16( rTypeData.NumSets );
-    rStream.ReadInt16( rTypeData.NumPoints );
-    rStream.ReadInt16( rTypeData.DrawMode );
-    rStream.ReadInt16( rTypeData.GraphType );
-    rStream.ReadInt16( rTypeData.GraphStyle );
-    lcl_ReadFixedString( rStream, &rTypeData.GraphTitle, sizeof(rTypeData.GraphTitle));
-    lcl_ReadFixedString( rStream, &rTypeData.BottomTitle, sizeof(rTypeData.BottomTitle));
-    sal_uInt16 i;
-    for (i = 0; i < 256; i++)
-        rStream.ReadInt16( rTypeData.SymbolData[i] );
-    for (i = 0; i < 256; i++)
-        rStream.ReadInt16( rTypeData.ColorData[i] );
-    for (i = 0; i < 256; i++)
-        rStream.ReadInt16( rTypeData.ThickLines[i] );
-    for (i = 0; i < 256; i++)
-        rStream.ReadInt16( rTypeData.PatternData[i] );
-    for (i = 0; i < 256; i++)
-        rStream.ReadInt16( rTypeData.LinePatternData[i] );
-    for (i = 0; i < 11; i++)
-        rStream.ReadInt16( rTypeData.NumGraphStyles[i] );
-    rStream.ReadInt16( rTypeData.ShowLegend );
-    for (i = 0; i < 256; i++)
-        lcl_ReadFixedString( rStream, &rTypeData.LegendText[i], sizeof(Sc10ChartText));
-    rStream.ReadInt16( rTypeData.ExplodePie );
-    rStream.ReadInt16( rTypeData.FontUse );
-    for (i = 0; i < 5; i++)
-        rStream.ReadInt16( rTypeData.FontFamily[i] );
-    for (i = 0; i < 5; i++)
-        rStream.ReadInt16( rTypeData.FontStyle[i] );
-    for (i = 0; i < 5; i++)
-        rStream.ReadInt16( rTypeData.FontSize[i] );
-    rStream.ReadInt16( rTypeData.GridStyle );
-    rStream.ReadInt16( rTypeData.Labels );
-    rStream.ReadInt16( rTypeData.LabelEvery );
-    for (i = 0; i < 50; i++)
-        lcl_ReadFixedString( rStream, &rTypeData.LabelText[i], sizeof(Sc10ChartText));
-    lcl_ReadFixedString( rStream, &rTypeData.LeftTitle, sizeof(rTypeData.LeftTitle));
-    rStream.ReadBytes(&rTypeData.Reserved, sizeof(rTypeData.Reserved));
-}
-
-static double lcl_PascalToDouble(sal_Char* tp6)
-{
-    sal_uInt8* pnUnsigned = reinterpret_cast< sal_uInt8* >( tp6 );
-    // biased exponent
-    sal_uInt8 be = pnUnsigned[ 0 ];
-    // lower 16 bits of mantissa
-    sal_uInt16 v1 = static_cast< sal_uInt16 >( pnUnsigned[ 2 ] * 256 + pnUnsigned[ 1 ] );
-    // next 16 bits of mantissa
-    sal_uInt16 v2 = static_cast< sal_uInt16 >( pnUnsigned[ 4 ] * 256 + pnUnsigned[ 3 ] );
-    // upper 7 bits of mantissa
-    sal_uInt8 v3 = static_cast< sal_uInt8 >( pnUnsigned[ 5 ] & 0x7F );
-    // sign bit
-    bool s = (pnUnsigned[ 5 ] & 0x80) != 0;
-
-    if (be == 0)
-        return 0.0;
-    return (((((128 + v3) * 65536.0) + v2) * 65536.0 + v1) *
-        ldexp ((s ? -1.0 : 1.0), be - (129+39)));
-}
-
-static void lcl_ChangeColor( sal_uInt16 nIndex, Color& rColor )
-{
-    ColorData aCol;
-
-    switch( nIndex )
-        {
-        case 1:     aCol = COL_RED;             break;
-        case 2:     aCol = COL_GREEN;           break;
-        case 3:     aCol = COL_BROWN;           break;
-        case 4:     aCol = COL_BLUE;            break;
-        case 5:     aCol = COL_MAGENTA;         break;
-        case 6:     aCol = COL_CYAN;            break;
-        case 7:     aCol = COL_GRAY;            break;
-        case 8:     aCol = COL_LIGHTGRAY;       break;
-        case 9:     aCol = COL_LIGHTRED;        break;
-        case 10:    aCol = COL_LIGHTGREEN;      break;
-        case 11:    aCol = COL_YELLOW;          break;
-        case 12:    aCol = COL_LIGHTBLUE;       break;
-        case 13:    aCol = COL_LIGHTMAGENTA;    break;
-        case 14:    aCol = COL_LIGHTCYAN;       break;
-        case 15:    aCol = COL_WHITE;           break;
-        default:    aCol = COL_BLACK;
-        }
-
-    rColor.SetColor( aCol );
-}
-
-static OUString lcl_MakeOldPageStyleFormatName( sal_uInt16 i )
-{
-    OUString  aName = ScGlobal::GetRscString( STR_PAGESTYLE ) + " " + OUString::number( i + 1 );
-    return aName;
-}
-
-template < typename T > ErrCode insert_new( ScCollection* pCollection, SvStream& rStream )
-{
-    std::unique_ptr<T> pData(new (::std::nothrow) T( rStream));
-    ErrCode nError = rStream.GetError();
-    if (pData)
-    {
-        if (!nError)
-            pCollection->Insert( pData.release() );
-    }
-    else
-        nError = errOutOfMemory;
-    return nError;
-}
-
-// Font
-
-Sc10FontData::Sc10FontData(SvStream& rStream)
-    : Height(0)
-    , CharSet(0)
-    , PitchAndFamily(0)
-{
-    rStream.ReadInt16( Height );
-    rStream.ReadUChar( CharSet );
-    rStream.ReadUChar( PitchAndFamily );
-    sal_uInt16 nLen(0);
-    rStream.ReadUInt16( nLen );
-    if (nLen < sizeof(FaceName))
-        rStream.ReadBytes(FaceName, nLen);
-    else
-        rStream.SetError(ERRCODE_IO_WRONGFORMAT);
-}
-
-Sc10FontCollection::Sc10FontCollection(SvStream& rStream)
-    : ScCollection(4, 4)
-    , nError(0)
-{
-    sal_uInt16 ID(0);
-    rStream.ReadUInt16( ID );
-    if (ID == FontID)
-    {
-        sal_uInt16 nCnt(0);
-        rStream.ReadUInt16( nCnt );
-        for (sal_uInt16 i=0; (i < nCnt) && (nError == ERRCODE_NONE); i++)
-        {
-            nError = insert_new<Sc10FontData>( this, rStream);
-        }
-    }
-    else
-    {
-        OSL_FAIL( "FontID" );
-        nError = errUnknownID;
-    }
-}
-
-// named regions
-
-Sc10NameData::Sc10NameData(SvStream& rStream)
-{
-    sal_uInt8 nLen;
-    rStream.ReadUChar( nLen );
-    rStream.ReadBytes(Name, sizeof(Name) - 1);
-    if (nLen >= sizeof(Name))
-        nLen = sizeof(Name) - 1;
-    Name[nLen] = 0;
-
-    rStream.ReadUChar( nLen );
-    rStream.ReadBytes(Reference, sizeof(Reference) - 1);
-    if (nLen >= sizeof(Reference))
-        nLen = sizeof(Reference) - 1;
-    Reference[nLen] = 0;
-    rStream.ReadBytes(Reserved, sizeof(Reserved));
-}
-
-Sc10NameCollection::Sc10NameCollection(SvStream& rStream) :
-    ScCollection (4, 4),
-    nError       (0)
-{
-    sal_uInt16 ID;
-    rStream.ReadUInt16( ID );
-    if (ID == NameID)
-    {
-        sal_uInt16 nCnt;
-        rStream.ReadUInt16( nCnt );
-        for (sal_uInt16 i=0; (i < nCnt) && (nError == ERRCODE_NONE); i++)
-        {
-            nError = insert_new<Sc10NameData>( this, rStream);
-        }
-    }
-    else
-    {
-        OSL_FAIL( "NameID" );
-        nError = errUnknownID;
-    }
-}
-
-// templates
-Sc10PatternData::Sc10PatternData(SvStream& rStream)
-    : Attr(0)
-    , Justify(0)
-    , Frame(0)
-    , Raster(0)
-    , nColor(0)
-    , FrameColor(0)
-    , Flags(0)
-    , FormatFlags(0)
-{
-    memset(Name, 0, sizeof(Name));
-    memset(Reserved, 0, sizeof(Reserved));
-    lcl_ReadFixedString( rStream, Name, sizeof(Name));
-    lcl_ReadValueFormat(rStream, ValueFormat);
-    lcl_ReadLogFont(rStream, LogFont);
-
-    rStream.ReadUInt16( Attr );
-    rStream.ReadUInt16( Justify );
-    rStream.ReadUInt16( Frame );
-    rStream.ReadUInt16( Raster );
-    rStream.ReadUInt16( nColor );
-    rStream.ReadUInt16( FrameColor );
-    rStream.ReadUInt16( Flags );
-    rStream.ReadUInt16( FormatFlags );
-    rStream.ReadBytes(Reserved, sizeof(Reserved));
-}
-
-Sc10PatternCollection::Sc10PatternCollection(SvStream& rStream)
-    : ScCollection(4, 4)
-    , nError(0)
-{
-    sal_uInt16 ID;
-    rStream.ReadUInt16( ID );
-    if (ID == PatternID)
-    {
-        sal_uInt16 nCnt;
-        rStream.ReadUInt16( nCnt );
-        for (sal_uInt16 i=0; (i < nCnt) && (nError == ERRCODE_NONE); i++)
-        {
-            nError = insert_new<Sc10PatternData>( this, rStream);
-        }
-    }
-    else
-    {
-        OSL_FAIL( "PatternID" );
-        nError = errUnknownID;
-    }
-}
-
-// database
-
-Sc10DataBaseData::Sc10DataBaseData(SvStream& rStream)
-{
-    lcl_ReadFixedString( rStream, &DataBaseRec.Name, sizeof(DataBaseRec.Name));
-    rStream.ReadInt16( DataBaseRec.Tab );
-    lcl_ReadBlockRect(rStream, DataBaseRec.Block);
-    rStream.ReadUChar( DataBaseRec.RowHeader );
-    rStream.ReadInt16( DataBaseRec.SortField0 );
-    rStream.ReadUChar( DataBaseRec.SortUpOrder0 );
-    rStream.ReadInt16( DataBaseRec.SortField1 );
-    rStream.ReadUChar( DataBaseRec.SortUpOrder1 );
-    rStream.ReadInt16( DataBaseRec.SortField2 );
-    rStream.ReadUChar( DataBaseRec.SortUpOrder2 );
-    rStream.ReadUChar( DataBaseRec.IncludeFormat );
-
-    rStream.ReadInt16( DataBaseRec.QueryField0 );
-    rStream.ReadInt16( DataBaseRec.QueryOp0 );
-    rStream.ReadUChar( DataBaseRec.QueryByString0 );
-    lcl_ReadFixedString( rStream, &DataBaseRec.QueryString0, sizeof(DataBaseRec.QueryString0));
-    DataBaseRec.QueryValue0 = ScfTools::ReadLongDouble(rStream);
-
-    rStream.ReadInt16( DataBaseRec.QueryConnect1 );
-    rStream.ReadInt16( DataBaseRec.QueryField1 );
-    rStream.ReadInt16( DataBaseRec.QueryOp1 );
-    rStream.ReadUChar( DataBaseRec.QueryByString1 );
-    lcl_ReadFixedString( rStream, &DataBaseRec.QueryString1, sizeof(DataBaseRec.QueryString1));
-    DataBaseRec.QueryValue1 = ScfTools::ReadLongDouble(rStream);
-
-    rStream.ReadInt16( DataBaseRec.QueryConnect2 );
-    rStream.ReadInt16( DataBaseRec.QueryField2 );
-    rStream.ReadInt16( DataBaseRec.QueryOp2 );
-    rStream.ReadUChar( DataBaseRec.QueryByString2 );
-    lcl_ReadFixedString( rStream, &DataBaseRec.QueryString2, sizeof(DataBaseRec.QueryString2));
-    DataBaseRec.QueryValue2 = ScfTools::ReadLongDouble(rStream);
-}
-
-Sc10DataBaseCollection::Sc10DataBaseCollection(SvStream& rStream)
-    : ScCollection(4, 4)
-    , nError(0)
-{
-    sal_uInt16 ID;
-    rStream.ReadUInt16( ID );
-    if (ID == DataBaseID)
-    {
-        lcl_ReadFixedString( rStream, ActName, sizeof(ActName));
-        sal_uInt16 nCnt;
-        rStream.ReadUInt16( nCnt );
-        for (sal_uInt16 i=0; (i < nCnt) && (nError == ERRCODE_NONE); i++)
-        {
-            nError = insert_new<Sc10DataBaseData>( this, rStream);
-        }
-    }
-    else
-    {
-        OSL_FAIL( "DataBaseID" );
-        nError = errUnknownID;
-    }
-}
-
-bool Sc10LogFont::operator==( const Sc10LogFont& rData ) const
-{
-    return !strcmp( lfFaceName, rData.lfFaceName )
-        && lfHeight == rData.lfHeight
-        && lfWidth == rData.lfWidth
-        && lfEscapement == rData.lfEscapement
-        && lfOrientation == rData.lfOrientation
-        && lfWeight == rData.lfWeight
-        && lfItalic == rData.lfItalic
-        && lfUnderline == rData.lfUnderline
-        && lfStrikeOut == rData.lfStrikeOut
-        && lfCharSet == rData.lfCharSet
-        && lfOutPrecision == rData.lfOutPrecision
-        && lfClipPrecision == rData.lfClipPrecision
-        && lfQuality == rData.lfQuality
-        && lfPitchAndFamily == rData.lfPitchAndFamily;
-}
-
-bool Sc10Color::operator==( const Sc10Color& rColor ) const
-{
-    return ((Red == rColor.Red) && (Green == rColor.Green) && (Blue == rColor.Blue));
-}
-
-bool Sc10HeadFootLine::operator==( const Sc10HeadFootLine& rData ) const
-{
-    return !strcmp(Title, rData.Title)
-        && LogFont == rData.LogFont
-        && HorJustify == rData.HorJustify
-        && VerJustify == rData.VerJustify
-        && Raster == rData.Raster
-        && Frame == rData.Frame
-        && TextColor == rData.TextColor
-        && BackColor == rData.BackColor
-        && RasterColor == rData.RasterColor
-        && FrameColor == rData.FrameColor
-        && Reserved == rData.Reserved;
-}
-
-bool Sc10PageFormat::operator==( const Sc10PageFormat& rData ) const
-{
-    return !strcmp(PrintAreaName, rData.PrintAreaName)
-        && HeadLine == rData.HeadLine
-        && FootLine == rData.FootLine
-        && Orientation == rData.Orientation
-        && Width == rData.Width
-        && Height == rData.Height
-        && NonPrintableX == rData.NonPrintableX
-        && NonPrintableY == rData.NonPrintableY
-        && Left == rData.Left
-        && Top == rData.Top
-        && Right == rData.Right
-        && Bottom == rData.Bottom
-        && Head == rData.Head
-        && Foot == rData.Foot
-        && HorCenter == rData.HorCenter
-        && VerCenter == rData.VerCenter
-        && PrintGrid == rData.PrintGrid
-        && PrintColRow == rData.PrintColRow
-        && PrintNote == rData.PrintNote
-        && TopBottomDir == rData.TopBottomDir
-        && FirstPageNo == rData.FirstPageNo
-        && RowRepeatStart == rData.RowRepeatStart
-        && RowRepeatEnd == rData.RowRepeatEnd
-        && ColRepeatStart == rData.ColRepeatStart
-        && ColRepeatEnd == rData.ColRepeatEnd
-        && !memcmp( PrnZoom, rData.PrnZoom, sizeof(PrnZoom) )
-        && !memcmp( &PrintArea, &rData.PrintArea, sizeof(PrintArea) );
-}
-
-sal_uInt16 Sc10PageCollection::InsertFormat( const Sc10PageFormat& rData )
-{
-    for (sal_uInt16 i=0; i<nCount; i++)
-        if (At(i)->aPageFormat == rData)
-            return i;
-
-    Insert( new Sc10PageData(rData) );
-
-    return nCount-1;
-}
-
-static inline sal_uInt8 GetMixedCol( const sal_uInt8 nB, const sal_uInt8 nF, const sal_uInt16 nFak )
-{
-    sal_Int32 nT = nB - nF;
-    nT *= ( sal_Int32 ) nFak;
-    nT /= 0xFFFF;
-    nT += nF;
-    return ( sal_uInt8 ) nT;
-}
-static inline Color GetMixedColor( const Color& rFore, const Color& rBack, sal_uInt16 nFact )
-{
-    return Color(   GetMixedCol( rBack.GetRed(), rFore.GetRed(), nFact ),
-                    GetMixedCol( rBack.GetGreen(), rFore.GetGreen(), nFact ),
-                    GetMixedCol( rBack.GetBlue(), rFore.GetBlue(), nFact ) );
-}
-
-void Sc10PageCollection::PutToDoc( ScDocument* pDoc )
-{
-    ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
-    EditEngine aEditEngine( pDoc->GetEnginePool() );
-    EditTextObject* pEmptyObject = aEditEngine.CreateTextObject();
-
-    for (sal_uInt16 i=0; i<nCount; i++)
-    {
-        Sc10PageFormat* pPage = &At(i)->aPageFormat;
-
-        pPage->Width = (short) ( pPage->Width + 0.5 );
-        pPage->Height = (short) ( pPage->Height + 0.5 );
-        pPage->Top = (short) ( pPage->Top + 0.5 );
-        pPage->Bottom = (short) ( pPage->Bottom + 0.5 );
-        pPage->Left = (short) ( pPage->Left + 0.5 );
-        pPage->Right = (short) ( pPage->Right + 0.5 );
-        pPage->Head = (short) ( pPage->Head + 0.5 );
-        pPage->Foot = (short) ( pPage->Foot + 0.5 );
-
-        OUString aName = lcl_MakeOldPageStyleFormatName( i );
-
-        ScStyleSheet* pSheet = static_cast<ScStyleSheet*>( &pStylePool->Make( aName,
-                                    SfxStyleFamily::Page,
-                                    SFXSTYLEBIT_USERDEF | SCSTYLEBIT_STANDARD ) );
-        // #i68483# set page style name at sheet...
-        pDoc->SetPageStyle( static_cast< SCTAB >( i ), aName );
-
-        SfxItemSet* pSet = &pSheet->GetItemSet();
-
-        for (sal_uInt16 nHeadFoot=0; nHeadFoot<2; nHeadFoot++)
-        {
-            Sc10HeadFootLine* pHeadFootLine = nHeadFoot ? &pPage->FootLine : &pPage->HeadLine;
-
-            SfxItemSet aEditAttribs(aEditEngine.GetEmptyItemSet());
-            FontFamily eFam = FAMILY_DONTKNOW;
-            switch (pPage->HeadLine.LogFont.lfPitchAndFamily & 0xF0)
-            {
-                case ffDontCare:    eFam = FAMILY_DONTKNOW;     break;
-                case ffRoman:       eFam = FAMILY_ROMAN;        break;
-                case ffSwiss:       eFam = FAMILY_SWISS;        break;
-                case ffModern:      eFam = FAMILY_MODERN;       break;
-                case ffScript:      eFam = FAMILY_SCRIPT;       break;
-                case ffDecorative:  eFam = FAMILY_DECORATIVE;   break;
-                default:    eFam = FAMILY_DONTKNOW;     break;
-            }
-            aEditAttribs.Put(   SvxFontItem(
-                                    eFam,
-                                    SC10TOSTRING( pHeadFootLine->LogFont.lfFaceName ), EMPTY_OUSTRING,
-                                    PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW, EE_CHAR_FONTINFO ) );
-            aEditAttribs.Put(   SvxFontHeightItem( std::abs( pHeadFootLine->LogFont.lfHeight ), 100, EE_CHAR_FONTHEIGHT ) );
-
-            Sc10Color nColor = pHeadFootLine->TextColor;
-            Color TextColor( nColor.Red, nColor.Green, nColor.Blue );
-            aEditAttribs.Put(SvxColorItem(TextColor, EE_CHAR_COLOR));
-            // FontAttr
-            if (pHeadFootLine->LogFont.lfWeight != fwNormal)
-                aEditAttribs.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT));
-            if (pHeadFootLine->LogFont.lfItalic != 0)
-                aEditAttribs.Put(SvxPostureItem(ITALIC_NORMAL, EE_CHAR_ITALIC));
-            if (pHeadFootLine->LogFont.lfUnderline != 0)
-                aEditAttribs.Put(SvxUnderlineItem(LINESTYLE_SINGLE, EE_CHAR_UNDERLINE));
-            if (pHeadFootLine->LogFont.lfStrikeOut != 0)
-                aEditAttribs.Put(SvxCrossedOutItem(STRIKEOUT_SINGLE, EE_CHAR_STRIKEOUT));
-            OUString aText( pHeadFootLine->Title, strlen(pHeadFootLine->Title), DEFCHARSET );
-            aEditEngine.SetText( aText );
-            aEditEngine.QuickSetAttribs( aEditAttribs, ESelection( 0, 0, 0, aText.getLength() ) );
-
-            EditTextObject* pObject = aEditEngine.CreateTextObject();
-            ScPageHFItem aHeaderItem(nHeadFoot ? ATTR_PAGE_FOOTERRIGHT : ATTR_PAGE_HEADERRIGHT);
-            switch (pHeadFootLine->HorJustify)
-            {
-                case hjCenter:
-                    aHeaderItem.SetLeftArea(*pEmptyObject);
-                    aHeaderItem.SetCenterArea(*pObject);
-                    aHeaderItem.SetRightArea(*pEmptyObject);
-                    break;
-                case hjRight:
-                    aHeaderItem.SetLeftArea(*pEmptyObject);
-                    aHeaderItem.SetCenterArea(*pEmptyObject);
-                    aHeaderItem.SetRightArea(*pObject);
-                    break;
-                default:
-                    aHeaderItem.SetLeftArea(*pObject);
-                    aHeaderItem.SetCenterArea(*pEmptyObject);
-                    aHeaderItem.SetRightArea(*pEmptyObject);
-                    break;
-            }
-            delete pObject;
-            pSet->Put( aHeaderItem );
-
-            SfxItemSet aSetItemItemSet(
-                *pDoc->GetPool(),
-                svl::Items<
-                    ATTR_BACKGROUND, ATTR_BACKGROUND,
-                    ATTR_BORDER, ATTR_SHADOW,
-                    ATTR_LRSPACE, ATTR_ULSPACE,
-                    ATTR_PAGE_SIZE, ATTR_PAGE_SIZE,
-                    ATTR_PAGE_ON, ATTR_PAGE_SHARED>{});
-            nColor = pHeadFootLine->BackColor;
-            Color aBColor( nColor.Red, nColor.Green, nColor.Blue );
-            nColor = pHeadFootLine->RasterColor;
-            Color aRColor( nColor.Red, nColor.Green, nColor.Blue );
-
-            sal_uInt16 nFact;
-            bool        bSwapCol = false;
-            switch (pHeadFootLine->Raster)
-            {
-                case raNone:     nFact = 0xffff; bSwapCol = true; break;
-                case raGray12:   nFact = (0xffff / 100) * 12;    break;
-                case raGray25:   nFact = (0xffff / 100) * 25;    break;
-                case raGray50:   nFact = (0xffff / 100) * 50;    break;
-                case raGray75:   nFact = (0xffff / 100) * 75;    break;
-                default: nFact = 0xffff;
-            }
-            if( bSwapCol )
-                aSetItemItemSet.Put( SvxBrushItem( GetMixedColor( aBColor, aRColor, nFact ), ATTR_BACKGROUND ) );
-            else
-                aSetItemItemSet.Put( SvxBrushItem( GetMixedColor( aRColor, aBColor, nFact ), ATTR_BACKGROUND ) );
-
-            if (pHeadFootLine->Frame != 0)
-            {
-                sal_uInt16 nLeft = 0;
-                sal_uInt16 nTop = 0;
-                sal_uInt16 nRight = 0;
-                sal_uInt16 nBottom = 0;
-                sal_uInt16 fLeft   = (pHeadFootLine->Frame & 0x000F);
-                sal_uInt16 fTop    = (pHeadFootLine->Frame & 0x00F0) / 0x0010;
-                sal_uInt16 fRight  = (pHeadFootLine->Frame & 0x0F00) / 0x0100;
-                sal_uInt16 fBottom = (pHeadFootLine->Frame & 0xF000) / 0x1000;
-                if (fLeft > 1)
-                    nLeft = 50;
-                else if (fLeft > 0)
-                    nLeft = 20;
-                if (fTop > 1)
-                    nTop = 50;
-                else if (fTop > 0)
-                    nTop = 20;
-                if (fRight > 1)
-                    nRight = 50;
-                else if (fRight > 0)
-                    nRight = 20;
-                if (fBottom > 1)
-                    nBottom = 50;
-                else if (fBottom > 0)
-                    nBottom = 20;
-                Color  ColorLeft(COL_BLACK);
-                Color  ColorTop(COL_BLACK);
-                Color  ColorRight(COL_BLACK);
-                Color  ColorBottom(COL_BLACK);
-                sal_uInt16 cLeft   = (pHeadFootLine->FrameColor & 0x000F);
-                sal_uInt16 cTop    = (pHeadFootLine->FrameColor & 0x00F0) >> 4;
-                sal_uInt16 cRight  = (pHeadFootLine->FrameColor & 0x0F00) >> 8;
-                sal_uInt16 cBottom = (pHeadFootLine->FrameColor & 0xF000) >> 12;
-                lcl_ChangeColor(cLeft, ColorLeft);
-                lcl_ChangeColor(cTop, ColorTop);
-                lcl_ChangeColor(cRight, ColorRight);
-                lcl_ChangeColor(cBottom, ColorBottom);
-                ::editeng::SvxBorderLine aLine;
-                SvxBoxItem aBox( ATTR_BORDER );
-                aLine.SetWidth(nLeft);
-                aLine.SetColor(ColorLeft);
-                aBox.SetLine(&aLine, SvxBoxItemLine::LEFT);
-                aLine.SetWidth(nTop);
-                aLine.SetColor(ColorTop);
-                aBox.SetLine(&aLine, SvxBoxItemLine::TOP);
-                aLine.SetWidth(nRight);
-                aLine.SetColor(ColorRight);
-                aBox.SetLine(&aLine, SvxBoxItemLine::RIGHT);
-                aLine.SetWidth(nBottom);
-                aLine.SetColor(ColorBottom);
-                aBox.SetLine(&aLine, SvxBoxItemLine::BOTTOM);
-
-                aSetItemItemSet.Put(aBox);
-            }
-
-            pSet->Put( SvxULSpaceItem( 0, 0, ATTR_ULSPACE ) );
-
-            if (nHeadFoot==0)
-                aSetItemItemSet.Put( SvxSizeItem( ATTR_PAGE_SIZE, Size( 0, pPage->Top - pPage->Head ) ) );
-            else
-                aSetItemItemSet.Put( SvxSizeItem( ATTR_PAGE_SIZE, Size( 0, pPage->Bottom - pPage->Foot ) ) );
-
-            aSetItemItemSet.Put(SfxBoolItem( ATTR_PAGE_ON, true ));
-            aSetItemItemSet.Put(SfxBoolItem( ATTR_PAGE_DYNAMIC, false ));
-            aSetItemItemSet.Put(SfxBoolItem( ATTR_PAGE_SHARED, true ));
-
-            pSet->Put( SvxSetItem( nHeadFoot ? ATTR_PAGE_FOOTERSET : ATTR_PAGE_HEADERSET,
-                                    aSetItemItemSet ) );
-        }
-
-        SvxPageItem aPageItem(ATTR_PAGE);
-        aPageItem.SetPageUsage( SvxPageUsage::All );
-        aPageItem.SetLandscape( pPage->Orientation != 1 );
-        aPageItem.SetNumType( SVX_NUM_ARABIC );
-        pSet->Put(aPageItem);
-
-        pSet->Put(SvxLRSpaceItem( pPage->Left, pPage->Right, 0,0, ATTR_LRSPACE ));
-        pSet->Put(SvxULSpaceItem( pPage->Top, pPage->Bottom, ATTR_ULSPACE ));
-
-        pSet->Put(SfxBoolItem( ATTR_PAGE_HORCENTER, pPage->HorCenter ));
-        pSet->Put(SfxBoolItem( ATTR_PAGE_VERCENTER, pPage->VerCenter ));
-
-        // Area-Parameter:
-
-        {
-            ScRange* pRepeatRow = nullptr;
-            ScRange* pRepeatCol = nullptr;
-
-            if ( pPage->ColRepeatStart >= 0 )
-                pRepeatCol = new ScRange( static_cast<SCCOL> (pPage->ColRepeatStart), 0, 0 );
-            if ( pPage->RowRepeatStart >= 0 )
-                pRepeatRow = new ScRange( 0, static_cast<SCROW> (pPage->RowRepeatStart), 0 );
-
-            if ( pRepeatRow || pRepeatCol )
-            {
-
-                // set for all tables
-
-                for ( SCTAB nTab = 0, nTabCount = pDoc->GetTableCount(); nTab < nTabCount; ++nTab )
-                {
-                    pDoc->SetRepeatColRange( nTab, pRepeatCol );
-                    pDoc->SetRepeatRowRange( nTab, pRepeatRow );
-                }
-            }
-
-            delete pRepeatRow;
-            delete pRepeatCol;
-        }
-
-        // Table-Parameter:
-
-        pSet->Put( SfxBoolItem( ATTR_PAGE_NOTES,   pPage->PrintNote ) );
-        pSet->Put( SfxBoolItem( ATTR_PAGE_GRID,    pPage->PrintGrid ) );
-        pSet->Put( SfxBoolItem( ATTR_PAGE_HEADERS, pPage->PrintColRow ) );
-        pSet->Put( SfxBoolItem( ATTR_PAGE_TOPDOWN, pPage->TopBottomDir ) );
-        pSet->Put( ScViewObjectModeItem( ATTR_PAGE_CHARTS,   VOBJ_MODE_SHOW ) );
-        pSet->Put( ScViewObjectModeItem( ATTR_PAGE_OBJECTS,  VOBJ_MODE_SHOW ) );
-        pSet->Put( ScViewObjectModeItem( ATTR_PAGE_DRAWINGS, VOBJ_MODE_SHOW ) );
-        pSet->Put( SfxUInt16Item( ATTR_PAGE_SCALE,
-                                  (sal_uInt16)( lcl_PascalToDouble( pPage->PrnZoom ) * 100 ) ) );
-        pSet->Put( SfxUInt16Item( ATTR_PAGE_FIRSTPAGENO, 1 ) );
-
-        pSet->Put( SvxSizeItem( ATTR_PAGE_SIZE, Size( pPage->Width, pPage->Height ) ) );
-    }
-
-    delete pEmptyObject;
-}
-
-ScDataObject* Sc10PageData::Clone() const
-{
-    return new Sc10PageData(aPageFormat);
-}
-
-// Import
-
-Sc10Import::Sc10Import(SvStream& rStr, ScDocument* pDocument ) :
-    rStream             (rStr),
-    pDoc                (pDocument),
-    pFontCollection     (nullptr),
-    pNameCollection     (nullptr),
-    pPatternCollection  (nullptr),
-    pDataBaseCollection (nullptr),
-    nError              (0),
-    nShowTab            (0)
-{
-    pPrgrsBar = nullptr;
-}
-
-Sc10Import::~Sc10Import()
-{
-    delete pFontCollection;
-    delete pNameCollection;
-    delete pPatternCollection;
-    delete pDataBaseCollection;
-
-    OSL_ENSURE( pPrgrsBar == nullptr,
-        "*Sc10Import::Sc10Import(): progress bar is still alive!?" );
-}
-
-ErrCode Sc10Import::Import()
-{
-    pPrgrsBar = new ScfStreamProgressBar( rStream, pDoc->GetDocumentShell() );
-
-    ScDocOptions aOpt = pDoc->GetDocOptions();
-    aOpt.SetDate( 1, 1, 1900 );
-    aOpt.SetYear2000( 18 + 1901 );      // 4-digit since SO51 src513e
-    pDoc->SetDocOptions( aOpt );
-    pDoc->GetFormatTable()->ChangeNullDate( 1, 1, 1900 );
-
-    LoadFileHeader();                           pPrgrsBar->Progress();
-    if (!nError) { LoadFileInfo();              pPrgrsBar->Progress(); }
-    if (!nError) { LoadEditStateInfo();         pPrgrsBar->Progress(); }
-    if (!nError) { LoadProtect();               pPrgrsBar->Progress(); }
-    if (!nError) { LoadViewColRowBar();         pPrgrsBar->Progress(); }
-    if (!nError) { LoadScrZoom();               pPrgrsBar->Progress(); }
-    if (!nError) { LoadPalette();               pPrgrsBar->Progress(); }
-    if (!nError) { LoadFontCollection();        pPrgrsBar->Progress(); }
-    if (!nError) { LoadNameCollection();        pPrgrsBar->Progress(); }
-    if (!nError) { LoadPatternCollection();     pPrgrsBar->Progress(); }
-    if (!nError) { LoadDataBaseCollection();    pPrgrsBar->Progress(); }
-    if (!nError) { LoadTables();                pPrgrsBar->Progress(); }
-    if (!nError) { LoadObjects();               pPrgrsBar->Progress(); }
-    if (!nError) { ImportNameCollection();      pPrgrsBar->Progress(); }
-    pDoc->SetViewOptions( aSc30ViewOpt );
-
-    SAL_WARN_IF( nError, "sc", nError);
-
-    delete pPrgrsBar;
-#if OSL_DEBUG_LEVEL > 0
-    pPrgrsBar = nullptr;
-#endif
-
-    pDoc->CalcAfterLoad();
-    pDoc->UpdateAllCharts();
-
-    return nError;
-}
-
-void Sc10Import::LoadFileHeader()
-{
-    Sc10FileHeader FileHeader;
-    lcl_ReadFileHeader(rStream, FileHeader);
-
-    nError = rStream.GetError();
-    if ( nError == ERRCODE_NONE )
-    {
-        sal_Char Sc10CopyRight[32];
-        strcpy(Sc10CopyRight, "Blaise-Tabelle");
-        Sc10CopyRight[14] = 10;
-        Sc10CopyRight[15] = 13;
-        Sc10CopyRight[16] = 0;
-        if ((strcmp(FileHeader.CopyRight, Sc10CopyRight) != 0)
-            || (FileHeader.Version < 101)
-            || (FileHeader.Version > 102))
-            nError = errUnknownFormat;
-    }
-}
-
-void Sc10Import::LoadFileInfo()
-{
-    Sc10FileInfo FileInfo;
-    rStream.ReadBytes(&FileInfo, sizeof(FileInfo));
-
-    nError = rStream.GetError();
-    // TODO: ? copy info, byte swapping
-}
-
-void Sc10Import::LoadEditStateInfo()
-{
-    Sc10EditStateInfo EditStateInfo;
-
-#if !defined(NDEBUG)
-    sal_uInt64 const nOldPos(rStream.Tell());
-#endif
-
-    rStream.ReadUInt16(EditStateInfo.CarretX);
-    rStream.ReadUInt16(EditStateInfo.CarretY);
-    rStream.ReadUInt16(EditStateInfo.CarretZ);
-    rStream.ReadUInt16(EditStateInfo.DeltaX);
-    rStream.ReadUInt16(EditStateInfo.DeltaY);
-    rStream.ReadUInt16(EditStateInfo.DeltaZ);
-    rStream.ReadUChar(EditStateInfo.DataBaseMode);
-    rStream.ReadBytes(EditStateInfo.Reserved, sizeof(EditStateInfo.Reserved));
-
-    assert(rStream.GetError() || rStream.Tell() == nOldPos + sizeof(Sc10EditStateInfo));
-
-    nError = rStream.GetError();
-    nShowTab = static_cast<SCTAB>(EditStateInfo.DeltaZ);
-    // TODO: ? copy cursor position and offset of the table (shall we do that??)
-
-}
-
-void Sc10Import::LoadProtect()
-{
-    lcl_ReadSheetProtect(rStream, SheetProtect);
-    nError = rStream.GetError();
-
-    ScDocProtection aProtection;
-    aProtection.setProtected(static_cast<bool>(SheetProtect.Protect));
-    aProtection.setPassword(SC10TOSTRING(SheetProtect.PassWord));
-    pDoc->SetDocProtection(&aProtection);
-}
-
-void Sc10Import::LoadViewColRowBar()
-{
-    bool bViewColRowBar;
-    rStream.ReadCharAsBool( bViewColRowBar );
-    nError = rStream.GetError();
-    aSc30ViewOpt.SetOption( VOPT_HEADER, bViewColRowBar );
-}
-
-void Sc10Import::LoadScrZoom()
-{
-    // TODO: unfortunately Zoom is a 6-byte TP real number (don't know how to translate that)
-    sal_Char cZoom[6];
-    rStream.ReadBytes(cZoom, sizeof(cZoom));
-    nError = rStream.GetError();
-}
-
-void Sc10Import::LoadPalette()
-{
-    lcl_ReadPalette(rStream, TextPalette);
-    lcl_ReadPalette(rStream, BackPalette);
-    lcl_ReadPalette(rStream, RasterPalette);
-    lcl_ReadPalette(rStream, FramePalette);
-
-    nError = rStream.GetError();
-}
-
-void Sc10Import::LoadFontCollection()
-{
-    pFontCollection = new Sc10FontCollection(rStream);
-    if (!nError)
-        nError = pFontCollection->GetError();
-}
-
-void Sc10Import::LoadNameCollection()
-{
-    pNameCollection = new Sc10NameCollection(rStream);
-    if (!nError)
-        nError = pNameCollection->GetError();
-}
-
-void Sc10Import::ImportNameCollection()
-{
-    ScRangeName*        pRN = pDoc->GetRangeName();
-
-    for (sal_uInt16 i = 0; i < pNameCollection->GetCount(); i++)
-    {
-        Sc10NameData*   pName = pNameCollection->At( i );
-        pRN->insert(
-            new ScRangeData(
-                pDoc, SC10TOSTRING(pName->Name), SC10TOSTRING(pName->Reference)));
-    }
-}
-
-void Sc10Import::LoadPatternCollection()
-{
-    pPatternCollection = new Sc10PatternCollection( rStream );
-    if (!nError)
-        nError = pPatternCollection->GetError();
-    if (nError == errOutOfMemory)
-        return;     // hopeless
-    ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
-    for( sal_uInt16 i = 0 ; i < pPatternCollection->GetCount() ; i++ )
-    {
-        Sc10PatternData* pPattern = pPatternCollection->At( i );
-        OUString aName( pPattern->Name, strlen(pPattern->Name), DEFCHARSET );
-        SfxStyleSheetBase* pStyle = pStylePool->Find( aName, SfxStyleFamily::Para );
-        if( pStyle == nullptr )
-            pStylePool->Make( aName, SfxStyleFamily::Para );
-        else
-        {
-            pPattern->Name[ 27 ] = 0;
-            strcat( pPattern->Name, "_Old" );
-            aName = SC10TOSTRING( pPattern->Name );
-            pStylePool->Make( aName, SfxStyleFamily::Para );
-        }
-        pStyle = pStylePool->Find( aName, SfxStyleFamily::Para );
-        if( pStyle != nullptr )
-        {
-            SfxItemSet &rItemSet = pStyle->GetItemSet();
-            // Font
-            if( ( pPattern->FormatFlags & pfFont ) == pfFont )
-            {
-                FontFamily eFam = FAMILY_DONTKNOW;
-                switch( pPattern->LogFont.lfPitchAndFamily & 0xF0 )
-                {
-                    case ffDontCare   : eFam = FAMILY_DONTKNOW;     break;
-                    case ffRoman      : eFam = FAMILY_ROMAN;        break;
-                    case ffSwiss      : eFam = FAMILY_SWISS;        break;
-                    case ffModern     : eFam = FAMILY_MODERN;       break;
-                    case ffScript     : eFam = FAMILY_SCRIPT;       break;
-                    case ffDecorative : eFam = FAMILY_DECORATIVE;   break;
-                    default: eFam = FAMILY_DONTKNOW;        break;
-                }
-                rItemSet.Put( SvxFontItem( eFam, SC10TOSTRING( pPattern->LogFont.lfFaceName ), EMPTY_OUSTRING,
-                        PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW, ATTR_FONT ) );
-                rItemSet.Put( SvxFontHeightItem( std::abs( pPattern->LogFont.lfHeight ), 100, ATTR_FONT_HEIGHT ) );
-                Color TextColor( COL_BLACK );
-                lcl_ChangeColor( ( pPattern->nColor & 0x000F ), TextColor );
-                rItemSet.Put( SvxColorItem( TextColor, ATTR_FONT_COLOR ) );
-                // FontAttr
-                if( pPattern->LogFont.lfWeight != fwNormal )
-                    rItemSet.Put( SvxWeightItem( WEIGHT_BOLD, ATTR_FONT_WEIGHT ) );
-                if( pPattern->LogFont.lfItalic != 0 )
-                    rItemSet.Put( SvxPostureItem( ITALIC_NORMAL, ATTR_FONT_POSTURE ) );
-                if( pPattern->LogFont.lfUnderline != 0 )
-                    rItemSet.Put( SvxUnderlineItem( LINESTYLE_SINGLE, ATTR_FONT_UNDERLINE ) );
-                if( pPattern->LogFont.lfStrikeOut != 0 )
-                    rItemSet.Put( SvxCrossedOutItem( STRIKEOUT_SINGLE, ATTR_FONT_CROSSEDOUT ) );
-            }
-            // alignment
-            if( ( pPattern->FormatFlags & pfJustify ) == pfJustify )
-            {
-                sal_uInt16 HorJustify = ( pPattern->Justify & 0x000F );
-                sal_uInt16 VerJustify = ( pPattern->Justify & 0x00F0 ) >> 4;
-                sal_uInt16 OJustify   = ( pPattern->Justify & 0x0F00 ) >> 8;
-                sal_uInt16 EJustify   = ( pPattern->Justify & 0xF000 ) >> 12;
-                if( HorJustify != 0 )
-                    switch( HorJustify )
-                    {
-                        case hjLeft:
-                            rItemSet.Put( SvxHorJustifyItem( SvxCellHorJustify::Left, ATTR_HOR_JUSTIFY ) );
-                            break;
-                        case hjCenter:
-                            rItemSet.Put( SvxHorJustifyItem( SvxCellHorJustify::Center, ATTR_HOR_JUSTIFY ) );
-                            break;
-                        case hjRight:
-                            rItemSet.Put( SvxHorJustifyItem( SvxCellHorJustify::Right, ATTR_HOR_JUSTIFY ) );
-                            break;
-                    }
-                if( VerJustify != 0 )
-                    switch( VerJustify )
-                    {
-                        case vjTop:
-                            rItemSet.Put( SvxVerJustifyItem( SvxCellVerJustify::Top, ATTR_VER_JUSTIFY ) );
-                            break;
-                        case vjCenter:
-                            rItemSet.Put( SvxVerJustifyItem( SvxCellVerJustify::Center, ATTR_VER_JUSTIFY ) );
-                            break;
-                        case vjBottom:
-                            rItemSet.Put( SvxVerJustifyItem( SvxCellVerJustify::Bottom, ATTR_VER_JUSTIFY ) );
-                            break;
-                    }
-
-                if( ( OJustify & ojWordBreak ) == ojWordBreak )
-                    rItemSet.Put( SfxBoolItem( ATTR_LINEBREAK, true ) );
-                if( ( OJustify & ojBottomTop ) == ojBottomTop )
-                    rItemSet.Put( SfxInt32Item( ATTR_ROTATE_VALUE, 9000 ) );
-                else if( ( OJustify & ojTopBottom ) == ojTopBottom )
-                    rItemSet.Put( SfxInt32Item( ATTR_ROTATE_VALUE, 27000 ) );
-
-                sal_Int16 Margin = std::max( ( sal_uInt16 ) 20, ( sal_uInt16 ) ( EJustify * 20 ) );
-                if( ( OJustify & ojBottomTop ) == ojBottomTop )
-                    rItemSet.Put( SvxMarginItem( 20, Margin, 20, Margin, ATTR_MARGIN ) );
-                else
-                    rItemSet.Put( SvxMarginItem( Margin, 20, Margin, 20, ATTR_MARGIN ) );
-            }
-
-            // Frame
-            if( ( pPattern->FormatFlags & pfFrame ) == pfFrame )
-            {
-                if( pPattern->Frame != 0 )
-                {
-                    sal_uInt16  nLeft   = 0;
-                    sal_uInt16  nTop    = 0;
-                    sal_uInt16  nRight  = 0;
-                    sal_uInt16  nBottom = 0;
-                    sal_uInt16  fLeft   = ( pPattern->Frame & 0x000F );
-                    sal_uInt16  fTop    = ( pPattern->Frame & 0x00F0 ) / 0x0010;
-                    sal_uInt16  fRight  = ( pPattern->Frame & 0x0F00 ) / 0x0100;
-                    sal_uInt16  fBottom = ( pPattern->Frame & 0xF000 ) / 0x1000;
-
-                    if( fLeft > 1 )
-                        nLeft = 50;
-                    else if( fLeft > 0 )
-                        nLeft = 20;
-
-                    if( fTop > 1 )
-                        nTop = 50;
-                    else if( fTop > 0 )
-                        nTop = 20;
-
-                    if( fRight > 1 )
-                        nRight = 50;
-                    else if( fRight > 0 )
-                        nRight = 20;
-
-                    if( fBottom > 1 )
-                        nBottom = 50;
-                    else if( fBottom > 0 )
-                        nBottom = 20;
-
-                    Color   ColorLeft( COL_BLACK );
-                    Color   ColorTop( COL_BLACK );
-                    Color   ColorRight( COL_BLACK );
-                    Color   ColorBottom( COL_BLACK );
-
-                    sal_uInt16  cLeft   = ( pPattern->FrameColor & 0x000F );
-                    sal_uInt16  cTop    = ( pPattern->FrameColor & 0x00F0 ) >> 4;
-                    sal_uInt16  cRight  = ( pPattern->FrameColor & 0x0F00 ) >> 8;
-                    sal_uInt16  cBottom = ( pPattern->FrameColor & 0xF000 ) >> 12;
-
-                    lcl_ChangeColor( cLeft, ColorLeft );
-                    lcl_ChangeColor( cTop, ColorTop );
-                    lcl_ChangeColor( cRight, ColorRight );
-                    lcl_ChangeColor( cBottom, ColorBottom );
-
-                    ::editeng::SvxBorderLine    aLine;
-                    SvxBoxItem      aBox( ATTR_BORDER );
-
-                    aLine.SetWidth( nLeft );
-                    aLine.SetColor( ColorLeft );
-                    aBox.SetLine( &aLine, SvxBoxItemLine::LEFT );
-                    aLine.SetWidth( nTop );
-                    aLine.SetColor( ColorTop );
-                    aBox.SetLine( &aLine, SvxBoxItemLine::TOP );
-                    aLine.SetWidth( nRight );
-                    aLine.SetColor( ColorRight );
-                    aBox.SetLine( &aLine, SvxBoxItemLine::RIGHT );
-                    aLine.SetWidth( nBottom );
-                    aLine.SetColor( ColorBottom );
-                    aBox.SetLine( &aLine, SvxBoxItemLine::BOTTOM );
-                    rItemSet.Put( aBox );
-                }
-            }
-            // grid
-            if( ( pPattern->FormatFlags & pfRaster ) == pfRaster )
-            {
-                if( pPattern->Raster != 0 )
-                {
-                    sal_uInt16 nBColor = ( pPattern->nColor & 0x00F0 ) >> 4;
-                    sal_uInt16 nRColor = ( pPattern->nColor & 0x0F00 ) >> 8;
-                    Color aBColor( COL_BLACK );
-
-                    lcl_ChangeColor( nBColor, aBColor );
-
-                    if( nBColor == 0 )
-                        aBColor.SetColor( COL_WHITE );
-                    else if( nBColor == 15 )
-                        aBColor.SetColor( COL_BLACK );
-
-                    Color aRColor( COL_BLACK );
-                    lcl_ChangeColor( nRColor, aRColor );
-                    sal_uInt16 nFact;
-                    bool        bSwapCol = false;
-                    bool        bSetItem = true;
-                    switch (pPattern->Raster)
-                    {
-                       case raNone:     nFact = 0xffff; bSwapCol = true; bSetItem = (nBColor > 0); break;
-                       case raGray12:   nFact = (0xffff / 100) * 12;    break;
-                       case raGray25:   nFact = (0xffff / 100) * 25;    break;
-                       case raGray50:   nFact = (0xffff / 100) * 50;    break;
-                       case raGray75:   nFact = (0xffff / 100) * 75;    break;
-                       default: nFact = 0xffff; bSetItem = (nRColor < 15);
-                    }
-                    if ( bSetItem )
-                    {
-                        if( bSwapCol )
-                            rItemSet.Put( SvxBrushItem( GetMixedColor( aBColor, aRColor, nFact ), ATTR_BACKGROUND ) );
-                        else
-                            rItemSet.Put( SvxBrushItem( GetMixedColor( aRColor, aBColor, nFact ), ATTR_BACKGROUND ) );
-                    }
-                }
-            }
-            // number formats
-            if( ( pPattern->ValueFormat.Format != 0 ) &&
-                ( ( pPattern->FormatFlags & pfValue ) == pfValue ) )
-            {
-                sal_uLong nKey = 0;
-                ChangeFormat( pPattern->ValueFormat.Format, pPattern->ValueFormat.Info, nKey );
-                rItemSet.Put( SfxUInt32Item( ATTR_VALUE_FORMAT, ( sal_uInt32 ) nKey ) );
-            }
-
-            // cell attributes (protected, hidden...)
-            if( ( pPattern->Flags != 0 ) &&
-                ( ( pPattern->FormatFlags & pfProtection ) == pfProtection ) )
-            {
-                bool bProtect  = ( ( pPattern->Flags & paProtect ) == paProtect );
-                bool bHFormula = ( ( pPattern->Flags & paHideFormula ) == paHideFormula );
-                bool bHCell    = ( ( pPattern->Flags & paHideAll ) == paHideAll );
-                bool bHPrint   = ( ( pPattern->Flags & paHidePrint ) == paHidePrint );
-                rItemSet.Put( ScProtectionAttr( bProtect, bHFormula, bHCell, bHPrint ) );
-            }
-        } // if Style != 0
-    } // for (i = 0; i < GetCount()
-}
-
-void Sc10Import::LoadDataBaseCollection()
-{
-    pDataBaseCollection = new Sc10DataBaseCollection(rStream);
-    if (!nError)
-        nError = pDataBaseCollection->GetError();
-    if (nError == errOutOfMemory)
-        return;     // hopeless
-    for( sal_uInt16 i = 0 ; i < pDataBaseCollection->GetCount() ; i++ )
-    {
-        Sc10DataBaseData* pOldData = pDataBaseCollection->At(i);
-        ScDBData* pNewData = new ScDBData( SC10TOSTRING( pOldData->DataBaseRec.Name ),
-                                    pOldData->DataBaseRec.Tab,
-                                    ( SCCOL ) pOldData->DataBaseRec.Block.x1,
-                                    ( SCROW ) pOldData->DataBaseRec.Block.y1,
-                                    ( SCCOL ) pOldData->DataBaseRec.Block.x2,
-                                    ( SCROW ) pOldData->DataBaseRec.Block.y2,
-                                    true,
-                                    (bool) pOldData->DataBaseRec.RowHeader );
-        bool ins = pDoc->GetDBCollection()->getNamedDBs().insert(pNewData);
-        assert(ins); (void)ins;
-            //TODO: or can this fail (and need delete pNewData)?
-    }
-}
-
-namespace
-{
-    sal_uInt16 ReadAndSanitizeDataCount(SvStream &rStream)
-    {
-        sal_uInt16 nDataCount(0);
-        rStream.ReadUInt16(nDataCount);
-        const size_t nMinRecordSize = sizeof(sal_uInt16)*2;
-        const size_t nMaxRecords = rStream.remainingSize() / nMinRecordSize;
-        if (nDataCount > nMaxRecords)
-        {
-            SAL_WARN("sc", "Parsing error: " << nMaxRecords <<
-                     " max possible entries, but " << nDataCount << " claimed, truncating");
-            nDataCount = nMaxRecords;
-        }
-        return nDataCount;
-    }
-}
-
-void Sc10Import::LoadTables()
-{
-    Sc10PageCollection aPageCollection;
-
-    sal_Int16 nTabCount;
-    rStream.ReadInt16( nTabCount );
-    for (sal_Int16 Tab = 0; (Tab < nTabCount) && (nError == ERRCODE_NONE); Tab++)
-    {
-        Sc10PageFormat   PageFormat;
-        sal_Int16            DataBaseIndex;
-        Sc10TableProtect TabProtect;
-        sal_Int16            TabNo;
-        sal_Char             TabName[128];
-        sal_uInt16           Display;
-        sal_uInt8             Visible;
-        sal_uInt16           ID;
-        sal_uInt16           DataCount;
-        sal_uInt16           DataStart;
-        sal_uInt16           DataEnd;
-        sal_uInt16           DataValue;
-        sal_uInt16           Count;
-        sal_uInt16           i;
-
-        lcl_ReadPageFormat(rStream, PageFormat);
-
-        sal_uInt16 nAt = aPageCollection.InsertFormat(PageFormat);
-        OUString aPageName = lcl_MakeOldPageStyleFormatName( nAt );
-
-        pPrgrsBar->Progress();
-
-        rStream.ReadInt16( DataBaseIndex );
-
-        lcl_ReadTabProtect(rStream, TabProtect);
-
-        ScTableProtection aProtection;
-        aProtection.setProtected(static_cast<bool>(TabProtect.Protect));
-        aProtection.setPassword(SC10TOSTRING(TabProtect.PassWord));
-        pDoc->SetTabProtection(static_cast<SCTAB>(Tab), &aProtection);
-
-        rStream.ReadInt16( TabNo );
-
-        sal_uInt8 nLen;
-        rStream.ReadUChar( nLen );
-        rStream.ReadBytes(TabName, sizeof(TabName) - 1);
-        if (nLen >= sizeof(TabName))
-            nLen = sizeof(TabName) - 1;
-        TabName[nLen] = 0;
-
-        rStream.ReadUInt16( Display );
-
-        if ( Tab == (sal_Int16)nShowTab )
-        {
-            ScVObjMode  eObjMode = VOBJ_MODE_SHOW;
-
-            aSc30ViewOpt.SetOption( VOPT_FORMULAS,    IS_SET(dfFormula,Display) );
-            aSc30ViewOpt.SetOption( VOPT_NULLVALS,    IS_SET(dfZerro,Display) );
-            aSc30ViewOpt.SetOption( VOPT_SYNTAX,      IS_SET(dfSyntax,Display) );
-            aSc30ViewOpt.SetOption( VOPT_NOTES,       IS_SET(dfNoteMark,Display) );
-            aSc30ViewOpt.SetOption( VOPT_VSCROLL );
-            aSc30ViewOpt.SetOption( VOPT_HSCROLL );
-            aSc30ViewOpt.SetOption( VOPT_TABCONTROLS );
-            aSc30ViewOpt.SetOption( VOPT_OUTLINER );
-            aSc30ViewOpt.SetOption( VOPT_GRID,        IS_SET(dfGrid,Display) );
-
-            // VOPT_HEADER is set in LoadViewColRowBar()
-
-            if ( IS_SET(dfObjectAll,Display) )          // show objects
-                eObjMode = VOBJ_MODE_SHOW;
-            else if ( IS_SET(dfObjectFrame,Display) )   // object as placeholder
-                eObjMode = VOBJ_MODE_SHOW;
-            else if ( IS_SET(dfObjectNone,Display) )    // don't show objects
-                eObjMode = VOBJ_MODE_HIDE;
-
-            aSc30ViewOpt.SetObjMode( VOBJ_TYPE_OLE,   eObjMode );
-            aSc30ViewOpt.SetObjMode( VOBJ_TYPE_CHART, eObjMode );
-            aSc30ViewOpt.SetObjMode( VOBJ_TYPE_DRAW,  eObjMode );
-        }
-
-        rStream.ReadUChar( Visible );
-
-        nError = rStream.GetError();
-        if (nError != ERRCODE_NONE) return;
-
-        if (TabNo == 0)
-            pDoc->RenameTab(static_cast<SCTAB> (TabNo), SC10TOSTRING( TabName ));
-        else
-            pDoc->InsertTab(SC_TAB_APPEND, SC10TOSTRING( TabName ) );
-
-        pDoc->SetPageStyle( static_cast<SCTAB>(Tab), aPageName );
-
-        if (Visible == 0) pDoc->SetVisible(static_cast<SCTAB> (TabNo), false);
-
-        // ColWidth
-        rStream.ReadUInt16( ID );
-        if (ID != ColWidthID)
-        {
-            OSL_FAIL( "ColWidthID" );
-            nError = errUnknownID;
-            return;
-        }
-        DataCount = ReadAndSanitizeDataCount(rStream);
-        DataStart = 0;
-        for (i=0; i < DataCount; i++)
-        {
-            rStream.ReadUInt16( DataEnd );
-            DataEnd = SanitizeCol(DataEnd);
-            rStream.ReadUInt16( DataValue );
-            for (SCCOL j = static_cast<SCCOL>(DataStart); j <= static_cast<SCCOL>(DataEnd); j++)
-                pDoc->SetColWidth(j, static_cast<SCTAB> (TabNo), DataValue);
-            DataStart = DataEnd + 1;
-        }
-        pPrgrsBar->Progress();
-
-        // ColAttr
-        rStream.ReadUInt16( ID );
-        if (ID != ColAttrID)
-        {
-            OSL_FAIL( "ColAttrID" );
-            nError = errUnknownID;
-            return;
-        }
-
-        DataCount = ReadAndSanitizeDataCount(rStream);
-        DataStart = 0;
-        for (i=0; i < DataCount; i++)
-        {
-            rStream.ReadUInt16( DataEnd );
-            rStream.ReadUInt16( DataValue );
-            if (DataValue != 0)
-            {
-                bool bPageBreak   = ((DataValue & crfSoftBreak) == crfSoftBreak);
-                bool bManualBreak = ((DataValue & crfHardBreak) == crfHardBreak);
-                bool bHidden = ((DataValue & crfHidden) == crfHidden);
-                for (SCCOL k = SanitizeCol(static_cast<SCCOL>(DataStart)); k <= SanitizeCol(static_cast<SCCOL>(DataEnd)); k++)
-                {
-                    pDoc->SetColHidden(k, k, static_cast<SCTAB>(TabNo), bHidden);
-                    pDoc->SetColBreak(k, static_cast<SCTAB> (TabNo), bPageBreak, bManualBreak);
-                }
-            }
-            DataStart = DataEnd + 1;
-        }
-        pPrgrsBar->Progress();
-
-        // RowHeight
-        rStream.ReadUInt16( ID );
-        if (ID != RowHeightID)
-        {
-            OSL_FAIL( "RowHeightID" );
-            nError = errUnknownID;
-            return;
-        }
-
-        DataCount = ReadAndSanitizeDataCount(rStream);
-        DataStart = 0;
-        for (i=0; i < DataCount; i++)
-        {
-            rStream.ReadUInt16( DataEnd );
-            rStream.ReadUInt16( DataValue );
-            pDoc->SetRowHeightRange(SanitizeRow(static_cast<SCROW>(DataStart)),
-                                    SanitizeRow(static_cast<SCROW>(DataEnd)),
-                                    static_cast<SCTAB> (TabNo), DataValue);
-            DataStart = DataEnd + 1;
-        }
-        pPrgrsBar->Progress();
-
-        // RowAttr
-        rStream.ReadUInt16( ID );
-        if (ID != RowAttrID)
-        {
-            OSL_FAIL( "RowAttrID" );
-            nError = errUnknownID;
-            return;
-        }
-
-        DataCount = ReadAndSanitizeDataCount(rStream);
-        DataStart = 0;
-        for (i=0; i < DataCount; i++)
-        {
-            rStream.ReadUInt16( DataEnd );
-            rStream.ReadUInt16( DataValue );
-            if (DataValue != 0)
-            {
-                bool bPageBreak   = ((DataValue & crfSoftBreak) == crfSoftBreak);
-                bool bManualBreak = ((DataValue & crfHardBreak) == crfHardBreak);
-                bool bHidden      = ((DataValue & crfHidden) == crfHidden);
-                for (SCROW l = SanitizeRow(static_cast<SCROW>(DataStart)); l <= SanitizeRow(static_cast<SCROW>(DataEnd)); ++l)
-                {
-                    pDoc->SetRowHidden(l, l, static_cast<SCTAB> (TabNo), bHidden);
-                    pDoc->SetRowBreak(l, static_cast<SCTAB> (TabNo), bPageBreak, bManualBreak);
-                }
-            }
-            DataStart = DataEnd + 1;
-        }
-        pPrgrsBar->Progress();
-
-        // Data table
-        rStream.ReadUInt16( ID );
-        if (ID != TableID)
-        {
-            OSL_FAIL( "TableID" );
-            nError = errUnknownID;
-            return;
-        }
-        for (SCCOL Col = 0; (Col <= SC10MAXCOL) && (nError == ERRCODE_NONE); Col++)
-        {
-            rStream.ReadUInt16( Count );
-            nError = rStream.GetError();
-            if ((Count != 0) && (nError == ERRCODE_NONE))
-                LoadCol(Col, static_cast<SCTAB> (TabNo));
-        }
-        OSL_ENSURE( nError == ERRCODE_NONE, "Stream" );
-    }
-    pPrgrsBar->Progress();
-
-    aPageCollection.PutToDoc( pDoc );
-}
-
-void Sc10Import::LoadCol(SCCOL Col, SCTAB Tab)
-{
-    LoadColAttr(Col, Tab);
-
-    sal_uInt16 CellCount;
-    sal_uInt8   CellType;
-    sal_uInt16 Row;
-    rStream.ReadUInt16( CellCount );
-    SCROW nScCount = static_cast< SCROW >( CellCount );
-    if (nScCount > MAXROW) nError = errUnknownFormat;
-    for (sal_uInt16 i = 0; (i < CellCount) && (nError == ERRCODE_NONE); i++)
-    {
-        rStream.ReadUChar( CellType );
-        rStream.ReadUInt16( Row );
-        nError = rStream.GetError();
-        if (nError == ERRCODE_NONE)
-        {
-            switch (CellType)
-            {
-                case ctValue :
-                {
-                    const SfxPoolItem* pValueFormat = pDoc->GetAttr(Col, static_cast<SCROW> (Row), Tab, ATTR_VALUE_FORMAT);
-                    sal_uLong nFormat = static_cast<const SfxUInt32Item*>(pValueFormat)->GetValue();
-                    double Value = ScfTools::ReadLongDouble(rStream);
-                    //rStream.Read(&Value, sizeof(Value));
-
-                    // TODO: adjustment is needed if we change the Basis Date
-                    // StarCalc 1.0: 01.01.1900
-                    // if ((nFormat >= 30) && (nFormat <= 35))
-                    // Value += 0;
-                    if ((nFormat >= 40) && (nFormat <= 45))
-                        Value /= 86400.0;
-                    pDoc->SetValue(Col, static_cast<SCROW> (Row), Tab, Value);
-                    break;
-                }
-                case ctString :
-                {
-                    sal_uInt8 Len;
-                    sal_Char s[256];
-                    rStream.ReadUChar( Len );
-                    rStream.ReadBytes(s, Len);
-                    s[Len] = 0;
-
-                    pDoc->SetString( Col, static_cast<SCROW> (Row), Tab, SC10TOSTRING( s ) );
-                    break;
-                }
-                case ctFormula :
-                {
-                    /*double Value =*/ ScfTools::ReadLongDouble(rStream);
-                    sal_uInt8 Len;
-                    sal_Char s[256+1];
-                    rStream.ReadUChar( Len );
-                    rStream.ReadBytes(&s[1], Len);
-                    s[0] = '=';
-                    s[Len + 1] = 0;
-                    ScFormulaCell* pCell = new ScFormulaCell( pDoc, ScAddress( Col, static_cast<SCROW> (Row), Tab ) );
-                    pCell->SetHybridFormula( SC10TOSTRING( s ),formula::FormulaGrammar::GRAM_NATIVE );
-                    pDoc->EnsureTable(Tab);
-                    pDoc->SetFormulaCell(ScAddress(Col,Row,Tab), pCell);
-                    break;
-                }
-                case ctNote :
-                    break;
-                default :
-                    nError = errUnknownFormat;
-                    break;
-            }
-            sal_uInt16 nNoteLen(0);
-            rStream.ReadUInt16(nNoteLen);
-            size_t nAvailable = rStream.remainingSize();
-            if (nNoteLen > nAvailable)
-                nNoteLen = nAvailable;
-            if (nNoteLen != 0)
-            {
-                std::unique_ptr<sal_Char[]> xNote(new sal_Char[nNoteLen+1]);
-                nNoteLen = rStream.ReadBytes(xNote.get(), nNoteLen);
-                xNote[nNoteLen] = 0;
-                OUString aNoteText( SC10TOSTRING(xNote.get()));
-                xNote.reset();
-                ScAddress aPos( Col, static_cast<SCROW>(Row), Tab );
-                ScNoteUtil::CreateNoteFromString( *pDoc, aPos, aNoteText, false, false );
-            }
-        }
-        pPrgrsBar->Progress();
-    }
-}
-
-void Sc10Import::LoadColAttr(SCCOL Col, SCTAB Tab)
-{
-    Sc10ColAttr aFont;
-    Sc10ColAttr aAttr;
-    Sc10ColAttr aJustify;
-    Sc10ColAttr aFrame;
-    Sc10ColAttr aRaster;
-    Sc10ColAttr aValue;
-    Sc10ColAttr aColor;
-    Sc10ColAttr aFrameColor;
-    Sc10ColAttr aFlag;
-    Sc10ColAttr aPattern;
-
-    if (nError == ERRCODE_NONE) LoadAttr(aFont);
-    if (nError == ERRCODE_NONE) LoadAttr(aAttr);
-    if (nError == ERRCODE_NONE) LoadAttr(aJustify);
-    if (nError == ERRCODE_NONE) LoadAttr(aFrame);
-    if (nError == ERRCODE_NONE) LoadAttr(aRaster);
-    if (nError == ERRCODE_NONE) LoadAttr(aValue);
-    if (nError == ERRCODE_NONE) LoadAttr(aColor);
-    if (nError == ERRCODE_NONE) LoadAttr(aFrameColor);
-    if (nError == ERRCODE_NONE) LoadAttr(aFlag);
-    if (nError == ERRCODE_NONE) LoadAttr(aPattern);
-
-    if (nError)
-        return;
-
-    SCROW nStart;
-    sal_uInt16 i;
-    sal_uInt16 nLimit;
-    sal_uInt16 nValue1;
-    Sc10ColData *pColData;
-
-    // Font (Name, Size)
-    nStart = 0;
-    nLimit = aFont.Count;
-    pColData = aFont.pData.get();
-    for( i = 0 ; i < nLimit ; i++, pColData++ )
-    {
-        SCROW nEnd = static_cast<SCROW>(pColData->Row);
-        if ((nStart <= nEnd) && (pColData->Value))
-        {
-            FontFamily eFam = FAMILY_DONTKNOW;
-            Sc10FontData* pFont = pFontCollection->At(pColData->Value);
-            if (pFont)
-            {
-                switch (pFont->PitchAndFamily & 0xF0)
-                {
-                    case ffDontCare   : eFam = FAMILY_DONTKNOW;     break;
-                    case ffRoman      : eFam = FAMILY_ROMAN;        break;
-                    case ffSwiss      : eFam = FAMILY_SWISS;        break;
-                    case ffModern     : eFam = FAMILY_MODERN;       break;
-                    case ffScript     : eFam = FAMILY_SCRIPT;       break;
-                    case ffDecorative : eFam = FAMILY_DECORATIVE;   break;
-                    default: eFam = FAMILY_DONTKNOW;        break;
-                }
-                ScPatternAttr aScPattern(pDoc->GetPool());
-                aScPattern.GetItemSet().Put(SvxFontItem(eFam, SC10TOSTRING( pFont->FaceName ), EMPTY_OUSTRING,
-                    PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW, ATTR_FONT ));
-                aScPattern.GetItemSet().Put(SvxFontHeightItem(std::abs(pFont->Height), 100, ATTR_FONT_HEIGHT ));
-                pDoc->ApplyPatternAreaTab(Col, nStart, Col, nEnd, Tab, aScPattern);
-            }
-        }
-        nStart = nEnd + 1;
-    }
-
-    // Font color
-    nStart = 0;
-    nLimit = aColor.Count;
-    pColData = aColor.pData.get();
-    for( i = 0 ; i < nLimit ; i++, pColData++ )
-    {
-        SCROW nEnd = static_cast<SCROW>(pColData->Row);
-        if ((nStart <= nEnd) && (pColData->Value))
-        {
-            Color TextColor(COL_BLACK);
-            lcl_ChangeColor((pColData->Value & 0x000F), TextColor);
-            ScPatternAttr aScPattern(pDoc->GetPool());
-            aScPattern.GetItemSet().Put(SvxColorItem(TextColor, ATTR_FONT_COLOR ));
-            pDoc->ApplyPatternAreaTab(Col, nStart, Col, nEnd, Tab, aScPattern);
-        }
-        nStart = nEnd + 1;
-    }
-
-    // Font attributes (Bold, Italic...)
-    nStart = 0;
-    nLimit = aAttr.Count;
-    pColData = aAttr.pData.get();
-    for( i = 0 ; i < nLimit ; i++, pColData++ )
-    {
-        SCROW nEnd = static_cast<SCROW>(pColData->Row);
-        nValue1 = pColData->Value;
-        if ((nStart <= nEnd) && nValue1)
-        {
-            ScPatternAttr aScPattern(pDoc->GetPool());
-            if ((nValue1 & atBold) == atBold)
-                aScPattern.GetItemSet().Put(SvxWeightItem(WEIGHT_BOLD, ATTR_FONT_WEIGHT));
-            if ((nValue1 & atItalic) == atItalic)
-                aScPattern.GetItemSet().Put(SvxPostureItem(ITALIC_NORMAL, ATTR_FONT_POSTURE));
-            if ((nValue1 & atUnderline) == atUnderline)
-                aScPattern.GetItemSet().Put(SvxUnderlineItem(LINESTYLE_SINGLE, ATTR_FONT_UNDERLINE));
-            if ((nValue1 & atStrikeOut) == atStrikeOut)
-                aScPattern.GetItemSet().Put(SvxCrossedOutItem(STRIKEOUT_SINGLE, ATTR_FONT_CROSSEDOUT));
-            pDoc->ApplyPatternAreaTab(Col, nStart, Col, nEnd, Tab, aScPattern);
-        }
-        nStart = nEnd + 1;
-    }
-
-    // Cell alignment
-    nStart = 0;
-    nLimit = aJustify.Count;
-    pColData = aJustify.pData.get();
-    for( i = 0 ; i < nLimit ; i++, pColData++ )
-    {
-        SCROW nEnd = static_cast<SCROW>(pColData->Row);
-        nValue1 = pColData->Value;
-        if ((nStart <= nEnd) && nValue1)
-        {
-            ScPatternAttr aScPattern(pDoc->GetPool());
-            sal_uInt16 HorJustify = (nValue1 & 0x000F);
-            sal_uInt16 VerJustify = (nValue1 & 0x00F0) >> 4;
-            sal_uInt16 OJustify   = (nValue1 & 0x0F00) >> 8;
-            sal_uInt16 EJustify   = (nValue1 & 0xF000) >> 12;
-
-            switch (HorJustify)
-            {
-                case hjLeft:
-                    aScPattern.GetItemSet().Put(SvxHorJustifyItem(SvxCellHorJustify::Left, ATTR_HOR_JUSTIFY));
-                    break;
-                case hjCenter:
-                    aScPattern.GetItemSet().Put(SvxHorJustifyItem(SvxCellHorJustify::Center, ATTR_HOR_JUSTIFY));
-                    break;
-                case hjRight:
-                    aScPattern.GetItemSet().Put(SvxHorJustifyItem(SvxCellHorJustify::Right, ATTR_HOR_JUSTIFY));
-                    break;
-            }
-
-            switch (VerJustify)
-            {
-                case vjTop:
-                    aScPattern.GetItemSet().Put(SvxVerJustifyItem(SvxCellVerJustify::Top, ATTR_VER_JUSTIFY));
-                    break;
-                case vjCenter:
-                    aScPattern.GetItemSet().Put(SvxVerJustifyItem(SvxCellVerJustify::Center, ATTR_VER_JUSTIFY));
-                    break;
-                case vjBottom:
-                    aScPattern.GetItemSet().Put(SvxVerJustifyItem(SvxCellVerJustify::Bottom, ATTR_VER_JUSTIFY));
-                    break;
-            }
-
-            if (OJustify & ojWordBreak)
-                aScPattern.GetItemSet().Put(SfxBoolItem(ATTR_LINEBREAK, true));
-            if (OJustify & ojBottomTop)
-                aScPattern.GetItemSet().Put(SfxInt32Item(ATTR_ROTATE_VALUE,9000));
-            else if (OJustify & ojTopBottom)
-                aScPattern.GetItemSet().Put(SfxInt32Item(ATTR_ROTATE_VALUE,27000));
-
-            sal_Int16 Margin = std::max((sal_uInt16)20, (sal_uInt16)(EJustify * 20));
-            if (OJustify & ojBottomTop)
-                aScPattern.GetItemSet().Put(SvxMarginItem(20, Margin, 20, Margin, ATTR_MARGIN));
-            else
-                aScPattern.GetItemSet().Put(SvxMarginItem(Margin, 20, Margin, 20, ATTR_MARGIN));
-            pDoc->ApplyPatternAreaTab(Col, nStart, Col, nEnd, Tab, aScPattern);
-        }
-        nStart = nEnd + 1;
-    }
-    // Border
-    bool            bEnd = false;
-    sal_uInt16          nColorIndex = 0;
-    sal_uInt16          nFrameIndex = 0;
-
-    // Special Fix...
-    const sal_uInt32    nHelpMeStart = 100;
-    sal_uInt32          nHelpMe = nHelpMeStart;
-    sal_uInt16          nColorIndexOld = nColorIndex;
-    sal_uInt16          nFrameIndexOld = nColorIndex;
-
-    nStart = 0;
-    while( !bEnd && nHelpMe )
-    {
-        SCROW nEnd = 0;
-        pColData = &aFrame.pData[ nFrameIndex ];
-
-        sal_uInt16  nValue  = pColData->Value;
-        sal_uInt16  nLeft   = 0;
-        sal_uInt16  nTop    = 0;
-        sal_uInt16  nRight  = 0;
-        sal_uInt16  nBottom = 0;
-        sal_uInt16  fLeft   = ( nValue & 0x000F );
-        sal_uInt16  fTop    = ( nValue & 0x00F0 ) >> 4;
-        sal_uInt16  fRight  = ( nValue & 0x0F00 ) >> 8;
-        sal_uInt16  fBottom = ( nValue & 0xF000 ) >> 12;
-
-        if( fLeft > 1 )
-            nLeft = 50;
-        else if( fLeft > 0 )
-            nLeft = 20;
-
-        if( fTop > 1 )
-            nTop = 50;
-        else if( fTop > 0 )
-            nTop = 20;
-
-        if( fRight > 1 )
-            nRight = 50;
-        else if( fRight > 0 )
-            nRight = 20;
-
-        if( fBottom > 1 )
-            nBottom = 50;
-        else if( fBottom > 0 )
-            nBottom = 20;
-
-        Color   ColorLeft( COL_BLACK );
-        Color   ColorTop( COL_BLACK );
-        Color   ColorRight( COL_BLACK );
-        Color   ColorBottom( COL_BLACK );
-        sal_uInt16  nFrmColVal  = aFrameColor.pData[ nColorIndex ].Value;
-        SCROW   nFrmColRow  = static_cast<SCROW>(aFrameColor.pData[ nColorIndex ].Row);
-        sal_uInt16  cLeft       = ( nFrmColVal & 0x000F );
-        sal_uInt16  cTop        = ( nFrmColVal & 0x00F0 ) >> 4;
-        sal_uInt16  cRight      = ( nFrmColVal & 0x0F00 ) >> 8;
-        sal_uInt16  cBottom     = ( nFrmColVal & 0xF000 ) >> 12;
-
-        lcl_ChangeColor( cLeft, ColorLeft );
-        lcl_ChangeColor( cTop, ColorTop );
-        lcl_ChangeColor( cRight, ColorRight );
-        lcl_ChangeColor( cBottom, ColorBottom );
-
-        if( static_cast<SCROW>(pColData->Row) < nFrmColRow )
-        {
-            nEnd = static_cast<SCROW>(pColData->Row);
-            if( nFrameIndex < ( aFrame.Count - 1 ) )
-                nFrameIndex++;
-        }
-        else if( static_cast<SCROW>(pColData->Row) > nFrmColRow )
-        {
-            nEnd = static_cast<SCROW>(aFrameColor.pData[ nColorIndex ].Row);
-            if( nColorIndex < ( aFrameColor.Count - 1 ) )
-                nColorIndex++;
-        }
-        else
-        {
-            nEnd = nFrmColRow;
-            if( nFrameIndex < (aFrame.Count - 1 ) )
-                nFrameIndex++;
-            if( nColorIndex < ( aFrameColor.Count - 1 ) )
-                nColorIndex++;
-        }
-        if( ( nStart <= nEnd ) && ( nValue != 0 ) )
-        {
-            ScPatternAttr   aScPattern(pDoc->GetPool());
-            ::editeng::SvxBorderLine    aLine;
-            SvxBoxItem      aBox( ATTR_BORDER );
-
-            aLine.SetWidth( nLeft );
-            aLine.SetColor( ColorLeft );
-            aBox.SetLine( &aLine, SvxBoxItemLine::LEFT );
-
-            aLine.SetWidth( nTop );
-            aLine.SetColor( ColorTop );
-            aBox.SetLine( &aLine, SvxBoxItemLine::TOP );
-
-            aLine.SetWidth( nRight );
-            aLine.SetColor( ColorRight );
-            aBox.SetLine( &aLine, SvxBoxItemLine::RIGHT );
-
-            aLine.SetWidth( nBottom );
-            aLine.SetColor( ColorBottom );
-            aBox.SetLine( &aLine, SvxBoxItemLine::BOTTOM );
-
-            aScPattern.GetItemSet().Put( aBox );
-            pDoc->ApplyPatternAreaTab( Col, nStart, Col, nEnd, Tab, aScPattern );
-        }
-        nStart = nEnd + 1;
-
-        bEnd = ( nFrameIndex == ( aFrame.Count - 1 ) ) && ( nColorIndex == ( aFrameColor.Count - 1 ) );
-
-        if( nColorIndexOld != nColorIndex || nFrameIndexOld != nFrameIndex )
-        {
-            nColorIndexOld = nColorIndex;
-            nFrameIndexOld = nFrameIndex;
-            nHelpMe = nHelpMeStart;
-        }
-        else
-            nHelpMe--;
-
-        pColData++;
-    }
-
-    // TODO: Code up to here works more or less ... from here I've had enough ! (GT)
-
-    // Background (Color, Raster)
-    sal_uInt16      nRasterIndex = 0;
-    bEnd        = false;
-    nColorIndex = 0;
-    nStart      = 0;
-
-    // Special Fix...
-    nHelpMe     = nHelpMeStart;
-    sal_uInt16      nRasterIndexOld = nRasterIndex;
-
-    while( !bEnd && nHelpMe )
-    {
-        SCROW nEnd = 0;
-        sal_uInt16  nBColor = ( aColor.pData[ nColorIndex ].Value & 0x00F0 ) >> 4;
-        sal_uInt16  nRColor = ( aColor.pData[ nColorIndex ].Value & 0x0F00 ) >> 8;
-        Color   aBColor( COL_BLACK );
-
-        lcl_ChangeColor( nBColor, aBColor );
-
-        if( nBColor == 0 )
-            aBColor.SetColor( COL_WHITE );
-        else if( nBColor == 15 )
-            aBColor.SetColor( COL_BLACK );
-
-        Color   aRColor( COL_BLACK );
-
-        lcl_ChangeColor( nRColor, aRColor );
-
-        ScPatternAttr aScPattern( pDoc->GetPool() );
-
-        sal_uInt16 nFact;
-        bool        bSwapCol = false;
-        bool        bSetItem = true;
-        switch ( aRaster.pData[ nRasterIndex ].Value )
-        {
-        case raNone:        nFact = 0xffff; bSwapCol = true; bSetItem = (nBColor > 0); break;
-        case raGray12:  nFact = (0xffff / 100) * 12;    break;
-        case raGray25:  nFact = (0xffff / 100) * 25;    break;
-        case raGray50:  nFact = (0xffff / 100) * 50;    break;
-        case raGray75:  nFact = (0xffff / 100) * 75;    break;
-        default:    nFact = 0xffff; bSetItem = (nRColor < 15);
-        }
-        if ( bSetItem )
-        {
-            if( bSwapCol )
-                aScPattern.GetItemSet().Put( SvxBrushItem( GetMixedColor( aBColor, aRColor, nFact ), ATTR_BACKGROUND ) );
-            else
-                aScPattern.GetItemSet().Put( SvxBrushItem( GetMixedColor( aRColor, aBColor, nFact ), ATTR_BACKGROUND ) );
-        }
-        if( aRaster.pData[ nRasterIndex ].Row < aColor.pData[ nColorIndex ].Row )
-        {
-            nEnd = static_cast<SCROW>(aRaster.pData[ nRasterIndex ].Row);
-            if( nRasterIndex < ( aRaster.Count - 1 ) )
-                nRasterIndex++;
-        }
-        else if( aRaster.pData[ nRasterIndex ].Row > aColor.pData[ nColorIndex ].Row )
-        {
-            nEnd = static_cast<SCROW>(aColor.pData[ nColorIndex ].Row);
-            if( nColorIndex < ( aColor.Count - 1 ) )
-                nColorIndex++;
-        }
-        else
-        {
-            nEnd = static_cast<SCROW>(aColor.pData[ nColorIndex ].Row);
-            if( nRasterIndex < ( aRaster.Count - 1 ) )
-                nRasterIndex++;
-            if( nColorIndex < ( aColor.Count - 1 ) )
-                nColorIndex++;
-        }
-        if( nStart <= nEnd )
-            pDoc->ApplyPatternAreaTab( Col, nStart, Col, nEnd, Tab, aScPattern );
-
-        nStart = nEnd + 1;
-
-        bEnd = ( nRasterIndex == ( aRaster.Count - 1 ) ) && ( nColorIndex == ( aColor.Count - 1 ) );
-
-        if( nColorIndexOld != nColorIndex || nRasterIndexOld != nRasterIndex )
-        {
-            nColorIndexOld = nColorIndex;
-            nRasterIndexOld = nRasterIndex;
-            nHelpMe = nHelpMeStart;
-        }
-        else
-            nHelpMe--;
-
-        nHelpMe--;
-    }
-
-    // Number format
-    nStart = 0;
-    nLimit = aValue.Count;
-    pColData = aValue.pData.get();
-    for (i=0; i<nLimit; i++, pColData++)
-    {
-        SCROW nEnd = static_cast<SCROW>(pColData->Row);
-        nValue1 = pColData->Value;
-        if ((nStart <= nEnd) && nValue1)
-        {
-            sal_uLong  nKey    = 0;
-            sal_uInt16 nFormat = (nValue1 & 0x00FF);
-            sal_uInt16 nInfo   = (nValue1 & 0xFF00) >> 8;
-            ChangeFormat(nFormat, nInfo, nKey);
-            ScPatternAttr aScPattern(pDoc->GetPool());
-            aScPattern.GetItemSet().Put(SfxUInt32Item(ATTR_VALUE_FORMAT, (sal_uInt32)nKey));
-            pDoc->ApplyPatternAreaTab(Col, nStart, Col, nEnd, Tab, aScPattern);
-        }
-        nStart = nEnd + 1;
-    }
-
-    // Cell attributes (protected, hidden...)
-    nStart = 0;
-    for (i=0; i<aFlag.Count; i++)
-    {
-        SCROW nEnd = static_cast<SCROW>(aFlag.pData[i].Row);
-        if ((nStart <= nEnd) && (aFlag.pData[i].Value != 0))
-        {
-            bool bProtect  = ((aFlag.pData[i].Value & paProtect) == paProtect);
-            bool bHFormula = ((aFlag.pData[i].Value & paHideFormula) == paHideFormula);
-            bool bHCell    = ((aFlag.pData[i].Value & paHideAll) == paHideAll);
-            bool bHPrint   = ((aFlag.pData[i].Value & paHidePrint) == paHidePrint);
-            ScPatternAttr aScPattern(pDoc->GetPool());
-            aScPattern.GetItemSet().Put(ScProtectionAttr(bProtect, bHFormula, bHCell, bHPrint));
-            pDoc->ApplyPatternAreaTab(Col, nStart, Col, nEnd, Tab, aScPattern);
-        }
-        nStart = nEnd + 1;
-    }
-
-    // Cell style
-    nStart = 0;
-    ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
-    for (i=0; i<aPattern.Count; i++)
-    {
-        SCROW nEnd = static_cast<SCROW>(aPattern.pData[i].Row);
-        if ((nStart <= nEnd) && (aPattern.pData[i].Value != 0))
-        {
-            sal_uInt16 nPatternIndex = (aPattern.pData[i].Value & 0x00FF) - 1;
-            Sc10PatternData* pPattern = pPatternCollection->At(nPatternIndex);
-            if (pPattern != nullptr)
-            {
-                ScStyleSheet* pStyle = static_cast<ScStyleSheet*>( pStylePool->Find(
-                                    SC10TOSTRING( pPattern->Name ), SfxStyleFamily::Para) );
-
-                if (pStyle != nullptr)
-                    pDoc->ApplyStyleAreaTab(Col, nStart, Col, nEnd, Tab, *pStyle);
-            }
-        }
-        nStart = nEnd + 1;
-    }
-}
-
-void Sc10Import::LoadAttr(Sc10ColAttr& rAttr)
-{
-    // rAttr is not reused, otherwise we'd have to delete [] rAttr.pData;
-    rStream.ReadUInt16(rAttr.Count);
-
-    const size_t nMaxEntries = rStream.remainingSize() / (sizeof(sal_uInt16) * 2);
-    if (rAttr.Count > nMaxEntries)
-        rAttr.Count = nMaxEntries;
-
-    if (!rAttr.Count)
-        return;
-
-    rAttr.pData.reset( new (::std::nothrow) Sc10ColData[rAttr.Count] );
-    if (rAttr.pData == nullptr)
-    {
-        nError = errOutOfMemory;
-        rAttr.Count = 0;
-        return;
-    }
-
-    for (sal_uInt16 i = 0; i < rAttr.Count; ++i)
-    {
-        rStream.ReadUInt16( rAttr.pData[i].Row );
-        rStream.ReadUInt16( rAttr.pData[i].Value );
-    }
-
-    nError = rStream.GetError();
-}
-
-void Sc10Import::ChangeFormat(sal_uInt16 nFormat, sal_uInt16 nInfo, sal_uLong& nKey)
-{
-    // TODO: formats are mapped only for StarCalc 3.0 internal formats
-    //       more correctly, at times new formats need to be created (Stephan: please check!)
-    nKey = 0;
-    switch (nFormat)
-    {
-        case vfStandard :
-            if (nInfo > 0)
-                nKey = 2;
-            break;
-        case vfMoney :
-            if (nInfo > 0)
-                nKey = 21;
-            else
-                nKey = 20;
-            break;
-        case vfThousend :
-            if (nInfo > 0)
-                nKey = 4;
-            else
-                nKey = 5;
-            break;
-        case vfPercent :
-            if (nInfo > 0)
-                nKey = 11;
-            else
-                nKey = 10;
-            break;
-        case vfExponent :
-            nKey = 60;
-            break;
-        case vfZerro :
-            // TODO: no equivalent
-            break;
-        case vfDate :
-            switch (nInfo)
-            {
-                case df_NDMY_Long :
-                    nKey = 31;
-                    break;
-                case df_DMY_Long :
-                    nKey = 30;
-                    break;
-                case df_MY_Long :
-                    nKey = 32;
-                    break;
-                case df_NDM_Long :
-                    nKey = 31;
-                    break;
-                case df_DM_Long :
-                    nKey = 33;
-                    break;
-                case df_M_Long :
-                    nKey = 34;
-                    break;
-                case df_NDMY_Short :
-                    nKey = 31;
-                    break;
-                case df_DMY_Short :
-                    nKey = 30;
-                    break;
-                case df_MY_Short :
-                    nKey = 32;
-                    break;
-                case df_NDM_Short :
-                    nKey = 31;
-                    break;
-                case df_DM_Short :
-                    nKey = 33;
-                    break;
-                case df_M_Short :
-                    nKey = 34;
-                    break;
-                case df_Q_Long :
-                    nKey = 35;
-                    break;
-                case df_Q_Short :
-                    nKey = 35;
-                    break;
-                default :
-                    nKey = 30;
-                    break;
-            }
-            break;
-        case vfTime :
-            switch (nInfo)
-            {
-                case tf_HMS_Long :
-                    nKey = 41;
-                    break;
-                case tf_HM_Long :
-                    nKey = 40;
-                    break;
-                case tf_HMS_Short :
-                    nKey = 43;
-                    break;
-                case tf_HM_Short :
-                    nKey = 42;
-                    break;
-                default :
-                    nKey = 41;
-                    break;
-            }
-            break;
-        case vfBoolean :
-            nKey = 99;
-            break;
-        case vfStandardRed :
-            if (nInfo > 0)
-                nKey = 2;
-            break;
-        case vfMoneyRed :
-            if (nInfo > 0)
-                nKey = 23;
-            else
-                nKey = 22;
-            break;
-        case vfThousendRed :
-            if (nInfo > 0)
-                nKey = 4;
-            else
-                nKey = 5;
-            break;
-        case vfPercentRed :
-            if (nInfo > 0)
-                nKey = 11;
-            else
-                nKey = 10;
-            break;
-        case vfExponentRed :
-            nKey = 60;
-            break;
-        case vfFormula :
-            break;
-        case vfString :
-            break;
-        default :
-            break;
-    }
-}
-
-void Sc10Import::LoadObjects()
-{
-    sal_uInt16 ID;
-    rStream.ReadUInt16( ID );
-    if (rStream.IsEof())
-        return;
-    if (ID == ObjectID)
-    {
-        sal_uInt16 nCnt;
-        rStream.ReadUInt16( nCnt );
-        sal_Char Reserved[32];
-        rStream.ReadBytes(Reserved, sizeof(Reserved));
-        nError = rStream.GetError();
-        if ((nCnt > 0) && (nError == ERRCODE_NONE))
-        {
-            sal_uInt8 ObjectType;
-            Sc10GraphHeader GraphHeader;
-            bool IsOleObject = false; // TODO: this is only a band-aid
-            for (sal_uInt16 i = 0; (i < nCnt) && (nError == ERRCODE_NONE) && !rStream.IsEof() && !IsOleObject; i++)
-            {
-                rStream.ReadUChar( ObjectType );
-                lcl_ReadGraphHeader(rStream, GraphHeader);
-
-                double nPPTX = ScGlobal::nScreenPPTX;
-                double nPPTY = ScGlobal::nScreenPPTY;
-
-                long nStartX = 0;
-                SCCOL nMaxCol = SanitizeCol(GraphHeader.CarretX);
-                for (SCCOL nX = 0; nX < nMaxCol; ++nX)
-                    nStartX += pDoc->GetColWidth(nX, static_cast<SCTAB>(GraphHeader.CarretZ));
-                nStartX = (long) ( nStartX * HMM_PER_TWIPS );
-                nStartX += (long) ( GraphHeader.x / nPPTX * HMM_PER_TWIPS );
-                long nSizeX = (long) ( GraphHeader.w / nPPTX * HMM_PER_TWIPS );
-                long nStartY = pDoc->GetRowHeight( 0,
-                        SanitizeRow(static_cast<SCROW>(GraphHeader.CarretY) - 1),
-                        SanitizeTab(static_cast<SCTAB>(GraphHeader.CarretZ)));
-                nStartY = (long) ( nStartY * HMM_PER_TWIPS );
-                nStartY += (long) ( GraphHeader.y / nPPTY * HMM_PER_TWIPS );
-                long nSizeY = (long) ( GraphHeader.h / nPPTY * HMM_PER_TWIPS );
-
-                switch (ObjectType)
-                {
-                    case otOle :
-                        // TODO: here we need to do something like OleLoadFromStream
-                        IsOleObject = true;
-                        break;
-                    case otImage :
-                    {
-                        Sc10ImageHeader ImageHeader;
-                        lcl_ReadImageHeaer(rStream, ImageHeader);
-
-                        // Attention: here come the data (Bitmap or Metafile)
-                        // Typ = 1 Device-dependent Bitmap DIB
-                        // Typ = 2 MetaFile
-                        rStream.SeekRel(ImageHeader.Size);
-
-                        if( ImageHeader.Typ != 1 && ImageHeader.Typ != 2 )
-                            nError = errUnknownFormat;
-                        break;
-                    }
-                    case otChart :
-                    {
-                        Sc10ChartHeader ChartHeader;
-                        Sc10ChartSheetData ChartSheetData;
-                        Sc10ChartTypeData* pTypeData = new (::std::nothrow) Sc10ChartTypeData;
-                        if (!pTypeData)
-                            nError = errOutOfMemory;
-                        else
-                        {
-                            lcl_ReadChartHeader(rStream, ChartHeader);
-
-                            // TODO: use old Metafile ??
-                            rStream.SeekRel(ChartHeader.Size);
-
-                            lcl_ReadChartSheetData(rStream, ChartSheetData);
-
-                            lcl_ReadChartTypeData(rStream, *pTypeData);
-
-                            tools::Rectangle aRect( Point(nStartX,nStartY), Size(nSizeX,nSizeY) );
-                            Sc10InsertObject::InsertChart( pDoc, static_cast<SCTAB>(GraphHeader.CarretZ), aRect,
-                                    static_cast<SCTAB>(GraphHeader.CarretZ),
-                                    ChartSheetData.DataX1, ChartSheetData.DataY1,
-                                    ChartSheetData.DataX2, ChartSheetData.DataY2 );
-
-                            delete pTypeData;
-                        }
-                        break;
-                    }
-                    default :
-                        nError = errUnknownFormat;
-                        break;
-                }
-                nError = rStream.GetError();
-            }
-        }
-    }
-    else
-    {
-        OSL_FAIL( "ObjectID" );
-        nError = errUnknownID;
-    }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/starcalc/scflt.hxx b/sc/source/filter/starcalc/scflt.hxx
deleted file mode 100644
index 5cc363faa242..000000000000
--- a/sc/source/filter/starcalc/scflt.hxx
+++ /dev/null
@@ -1,791 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list