diff options
-rw-r--r-- | sc/source/ui/docshell/docsh.cxx | 281 |
1 files changed, 65 insertions, 216 deletions
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx index 43d88dc65fd9..6a578142f437 100644 --- a/sc/source/ui/docshell/docsh.cxx +++ b/sc/source/ui/docshell/docsh.cxx @@ -2,9 +2,9 @@ * * $RCSfile: docsh.cxx,v $ * - * $Revision: 1.73 $ + * $Revision: 1.74 $ * - * last change: $Author: kz $ $Date: 2004-08-31 12:29:54 $ + * last change: $Author: kz $ $Date: 2004-10-04 20:14:39 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -78,6 +78,7 @@ #define ITEMID_FIELD EE_FEATURE_FIELD +#include <sot/clsids.hxx> #include <svtools/securityoptions.hxx> #include <tools/stream.hxx> #include <tools/string.hxx> @@ -97,10 +98,11 @@ #include <sfx2/evntconf.hxx> #include <sfx2/sfx.hrc> #include <sfx2/topfrm.hxx> +#include <sfx2/objface.hxx> #include <svx/srchitem.hxx> #include <svx/svxmsbas.hxx> #include <svtools/fltrcfg.hxx> -#include <so3/clsids.hxx> +//REMOVE #include <so3/clsids.hxx> #include <unotools/charclass.hxx> #ifndef _SV_VIRDEV_HXX #include <vcl/virdev.hxx> @@ -121,10 +123,10 @@ #include <sot/formats.hxx> #define SOT_FORMATSTR_ID_STARCALC_30 SOT_FORMATSTR_ID_STARCALC -#ifndef SO2_DECL_SVSTORAGESTREAM_DEFINED -#define SO2_DECL_SVSTORAGESTREAM_DEFINED -SO2_DECL_REF(SvStorageStream) -#endif +//REMOVE #ifndef SO2_DECL_SVSTORAGESTREAM_DEFINED +//REMOVE #define SO2_DECL_SVSTORAGESTREAM_DEFINED +//REMOVE SO2_DECL_REF(SotStorageStream) +//REMOVE #endif // INCLUDE --------------------------------------------------------------- @@ -174,6 +176,8 @@ SO2_DECL_REF(SvStorageStream) #include <rtl/logfile.hxx> #endif +using namespace com::sun::star; + // STATIC DATA ----------------------------------------------------------- // Stream-Namen im Storage @@ -220,14 +224,7 @@ SFX_IMPL_INTERFACE(ScDocShell,SfxObjectShell, ScResId(SCSTR_DOCSHELL)) } // GlobalName der aktuellen Version: -SFX_IMPL_OBJECTFACTORY( ScDocShell, SFXOBJECTSHELL_STD_NORMAL, scalc, SvGlobalName(SO3_SC_CLASSID) ) -{ - Factory().SetDocumentServiceName( rtl::OUString::createFromAscii( "com.sun.star.sheet.SpreadsheetDocument" ) ); - //Factory().GetFilterContainer()->SetDetectFilter( ScDLL::DetectFilter ); - Factory().RegisterMenuBar( ScResId(SCCFG_MENUBAR) ); - Factory().RegisterPluginMenuBar( ScResId(SCCFG_PLUGINMENU) ); - Factory().RegisterAccel( ScResId(SCCFG_ACCELERATOR) ); -} +SFX_IMPL_OBJECTFACTORY( ScDocShell, SvGlobalName(SO3_SC_CLASSID), SFXOBJECTSHELL_STD_NORMAL, "scalc" ) TYPEINIT1( ScDocShell, SfxObjectShell ); // SfxInPlaceObject: kein Type-Info ? @@ -238,36 +235,9 @@ void __EXPORT ScDocShell::FillClass( SvGlobalName* pClassName, String* pAppName, String* pFullTypeName, String* pShortTypeName, - long nFileFormat ) const + sal_Int32 nFileFormat ) const { - SfxInPlaceObject::FillClass( pClassName, pFormat, pAppName, - pFullTypeName, pShortTypeName, nFileFormat ); - - if ( nFileFormat == SOFFICE_FILEFORMAT_31 ) - { - *pClassName = SvGlobalName( SO3_SC_CLASSID_30 ); - *pFormat = SOT_FORMATSTR_ID_STARCALC_30; - *pAppName = String( ScResId( SCSTR_30_APPLICATION ) ); - *pFullTypeName = String( ScResId( SCSTR_30_LONG_DOCNAME ) ); - *pShortTypeName = String( ScResId( SCSTR_SHORT_SCDOC_NAME ) ); - } - else if ( nFileFormat == SOFFICE_FILEFORMAT_40 ) - { - *pClassName = SvGlobalName( SO3_SC_CLASSID_40 ); - *pFormat = SOT_FORMATSTR_ID_STARCALC_40; - *pAppName = String( ScResId( SCSTR_40_APPLICATION ) ); - *pFullTypeName = String( ScResId( SCSTR_40_LONG_DOCNAME ) ); - *pShortTypeName = String( ScResId( SCSTR_SHORT_SCDOC_NAME ) ); - } - else if ( nFileFormat == SOFFICE_FILEFORMAT_50 ) - { - *pClassName = SvGlobalName( SO3_SC_CLASSID_50 ); - *pFormat = SOT_FORMATSTR_ID_STARCALC_50; - *pAppName = String( ScResId( SCSTR_50_APPLICATION ) ); - *pFullTypeName = String( ScResId( SCSTR_50_LONG_DOCNAME ) ); - *pShortTypeName = String( ScResId( SCSTR_SHORT_SCDOC_NAME ) ); - } - else if ( nFileFormat == SOFFICE_FILEFORMAT_60 ) + if ( nFileFormat == SOFFICE_FILEFORMAT_60 ) { *pClassName = SvGlobalName( SO3_SC_CLASSID_60 ); *pFormat = SOT_FORMATSTR_ID_STARCALC_60; @@ -312,15 +282,15 @@ SCTAB ScDocShell::GetSaveTab() } //------------------------------------------------------------------ - -BOOL ScDocShell::LoadCalc( SvStorage* pStor ) // StarCalc 3, 4 or 5 file +/* +BOOL ScDocShell::LoadCalc( SotStorage* pStor ) // StarCalc 3, 4 or 5 file { // MacroCallMode is no longer needed, state is kept in SfxObjectShell now BOOL bRet = TRUE; - SvStorageStreamRef aPoolStm = pStor->OpenStream( String::CreateFromAscii(pStyleName), STREAM_STD_READ ); - SvStorageStreamRef aDocStm = pStor->OpenStream( String::CreateFromAscii(pStarCalcDoc), STREAM_STD_READ ); + SotStorageStreamRef aPoolStm = pStor->OpenStream( String::CreateFromAscii(pStyleName), STREAM_STD_READ ); + SotStorageStreamRef aDocStm = pStor->OpenStream( String::CreateFromAscii(pStarCalcDoc), STREAM_STD_READ ); ULONG nPoolErr = aPoolStm->GetError(); ULONG nDocErr = aDocStm->GetError(); @@ -476,7 +446,7 @@ BOOL ScDocShell::LoadCalc( SvStorage* pStor ) // StarCalc 3, 4 or 5 file } -BOOL ScDocShell::SaveCalc( SvStorage* pStor ) // Calc 3, 4 or 5 file +BOOL ScDocShell::SaveCalc( SotStorage* pStor ) // Calc 3, 4 or 5 file { BOOL bRet = TRUE; @@ -488,7 +458,7 @@ BOOL ScDocShell::SaveCalc( SvStorage* pStor ) // Calc 3, 4 or 5 file pProgress = new ScProgress( this, ScGlobal::GetRscString(STR_SAVE_DOC), nRange ); } - SvStorageStreamRef aPoolStm = pStor->OpenStream( String::CreateFromAscii(pStyleName) ); + SotStorageStreamRef aPoolStm = pStor->OpenStream( String::CreateFromAscii(pStyleName) ); if( !aPoolStm->GetError() ) { aPoolStm->SetVersion(pStor->GetVersion()); @@ -505,7 +475,7 @@ BOOL ScDocShell::SaveCalc( SvStorage* pStor ) // Calc 3, 4 or 5 file if ( bRet && eShellMode != SFX_CREATE_MODE_ORGANIZER ) { - SvStorageStreamRef aDocStm = pStor->OpenStream( String::CreateFromAscii(pStarCalcDoc) ); + SotStorageStreamRef aDocStm = pStor->OpenStream( String::CreateFromAscii(pStarCalcDoc) ); if( !aDocStm->GetError() ) { aDocStm->SetVersion(pStor->GetVersion()); @@ -545,6 +515,7 @@ BOOL ScDocShell::SaveCalc( SvStorage* pStor ) // Calc 3, 4 or 5 file return bRet; } +*/ sal_uInt16 ScDocShell::GetHiddenInformationState( sal_uInt16 nStates ) { @@ -678,7 +649,7 @@ void ScDocShell::AfterXMLLoading(sal_Bool bRet) DBG_ERROR("The Modificator should exist"); } -BOOL ScDocShell::LoadXML( SfxMedium* pMedium, SvStorage* pStor ) +BOOL ScDocShell::LoadXML( SfxMedium* pMedium, const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStor ) { RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "sb99857", "ScDocShell::LoadXML" ); @@ -688,13 +659,17 @@ BOOL ScDocShell::LoadXML( SfxMedium* pMedium, SvStorage* pStor ) BeforeXMLLoading(); - ScXMLImportWrapper aImport( aDocument, pMedium, pStor ); + ScXMLImportWrapper aImport( aDocument, pMedium, xStor ); sal_Bool bRet(sal_False); + ErrCode nError = ERRCODE_NONE; if (GetCreateMode() != SFX_CREATE_MODE_ORGANIZER) - bRet = aImport.Import(sal_False); + bRet = aImport.Import(sal_False, nError); else - bRet = aImport.Import(sal_True); + bRet = aImport.Import(sal_True, nError); + + if ( nError ) + pMedium->SetError( nError ); AfterXMLLoading(bRet); @@ -703,11 +678,11 @@ BOOL ScDocShell::LoadXML( SfxMedium* pMedium, SvStorage* pStor ) return bRet; } -BOOL ScDocShell::SaveXML( SfxMedium* pMedium, SvStorage* pStor ) +BOOL ScDocShell::SaveXML( SfxMedium* pMedium, const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStor ) { RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "sb99857", "ScDocShell::SaveXML" ); - ScXMLImportWrapper aImport( aDocument, pMedium, pStor ); + ScXMLImportWrapper aImport( aDocument, pMedium, xStor ); sal_Bool bRet(sal_False); if (GetCreateMode() != SFX_CREATE_MODE_ORGANIZER) bRet = aImport.Export(sal_False); @@ -716,14 +691,13 @@ BOOL ScDocShell::SaveXML( SfxMedium* pMedium, SvStorage* pStor ) return bRet; } -BOOL __EXPORT ScDocShell::Load( SvStorage* pStor ) +BOOL __EXPORT ScDocShell::Load( const uno::Reference < embed::XStorage >& xStor ) { RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::Load" ); ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() ); - DBG_ASSERT( pStor, "Load without storage?" ); - BOOL bXML = ( pStor->GetVersion() >= SOFFICE_FILEFORMAT_60 ); + DBG_ASSERT( xStor.is(), "Load without storage?" ); // only the latin script language is loaded // -> initialize the others from options (before loading) @@ -731,7 +705,7 @@ BOOL __EXPORT ScDocShell::Load( SvStorage* pStor ) GetUndoManager()->Clear(); - BOOL bRet = SfxInPlaceObject::Load( pStor ); + BOOL bRet = SfxObjectShell::Load( xStor ); if( bRet ) { if (GetMedium()) @@ -740,7 +714,6 @@ BOOL __EXPORT ScDocShell::Load( SvStorage* pStor ) nCanUpdate = pUpdateDocItem ? pUpdateDocItem->GetValue() : com::sun::star::document::UpdateDocMode::NO_UPDATE; } - if (bXML) { // prepare a valid document for XML filter // (for ConvertFrom, InitNew is called before) @@ -748,17 +721,15 @@ BOOL __EXPORT ScDocShell::Load( SvStorage* pStor ) aDocument.GetStyleSheetPool()->CreateStandardStyles(); aDocument.UpdStlShtPtrsFrmNms(); - bRet = LoadXML( GetMedium(), pStor ); + bRet = LoadXML( GetMedium(), xStor ); } - else - bRet = LoadCalc( pStor ); } - if (!bRet && !pStor->GetError()) - pStor->SetError( SVSTREAM_FILEFORMAT_ERROR ); + if (!bRet && !GetMedium()->GetError()) + GetMedium()->SetError( SVSTREAM_FILEFORMAT_ERROR ); - if (pStor->GetError()) - SetError( pStor->GetError() ); + if (GetMedium()->GetError()) + SetError( GetMedium()->GetError() ); InitItems(); CalcOutputFactor(); @@ -813,14 +784,13 @@ void __EXPORT ScDocShell::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType // Inhalte fuer Organizer laden -BOOL __EXPORT ScDocShell::LoadFrom( SvStorage* pStor ) +BOOL __EXPORT ScDocShell::LoadFrom( const uno::Reference < embed::XStorage >& xStor ) { RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::LoadFrom" ); ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() ); - DBG_ASSERT( pStor, "Nanu... LoadFrom ohne Storage?" ); - BOOL bXML = ( pStor->GetVersion() >= SOFFICE_FILEFORMAT_60 ); + DBG_ASSERT( xStor.is(), "Nanu... LoadFrom ohne Storage?" ); WaitObject aWait( GetDialogParent() ); @@ -832,52 +802,12 @@ BOOL __EXPORT ScDocShell::LoadFrom( SvStorage* pStor ) nCanUpdate = pUpdateDocItem ? pUpdateDocItem->GetValue() : com::sun::star::document::UpdateDocMode::NO_UPDATE; } - if ( bXML ) - { - // until loading/saving only the styles in XML is implemented, - // load the whole file - - bRet = LoadXML( GetMedium(), pStor ); - InitItems(); - } - else - { - SvStorageStreamRef aPoolStm = pStor->OpenStream( String::CreateFromAscii(pStyleName), STREAM_STD_READ ); - if ( !aPoolStm->GetError() ) - { - aPoolStm->SetVersion(pStor->GetVersion()); - - aDocument.Clear(); // keine Referenzen auf Pool behalten! - RemoveItem( SID_ATTR_CHAR_FONTLIST ); - RemoveItem( ITEMID_COLOR_TABLE ); - RemoveItem( ITEMID_GRADIENT_LIST ); - RemoveItem( ITEMID_HATCH_LIST ); - RemoveItem( ITEMID_BITMAP_LIST ); - RemoveItem( ITEMID_DASH_LIST ); - RemoveItem( ITEMID_LINEEND_LIST ); - - aDocument.LoadPool( *aPoolStm, TRUE ); // TRUE: RefCounts aus Datei laden - bRet = (aPoolStm->GetError() == 0); - DBG_ASSERT( bRet, "Error in pool stream" ); - - // UpdateStdNames is called from ScDocument::Load, but is also needed - // if only the styles are loaded! - ScStyleSheetPool* pStylePool = aDocument.GetStyleSheetPool(); - if (pStylePool) - pStylePool->UpdateStdNames(); // correct style names for different languages - - // Hier auf keinen Fall LoadCompleted, weil ohne Laden der Tabellen die RefCounts - // nicht hochgezaehlt wurden. - // Die Items wuerden dann geloescht, und beim Speichern wuerde Muell herauskommen. - // Darum die Ref-Counts aus der Datei laden (TRUE bei LoadPool). - // (Bug #37635#) - - InitItems(); - // CalcOutputFactor interessiert hier nicht - } - } + // until loading/saving only the styles in XML is implemented, + // load the whole file + bRet = LoadXML( GetMedium(), xStor ); + InitItems(); - SfxObjectShell::LoadFrom( pStor ); + SfxObjectShell::LoadFrom( xStor ); return bRet; } @@ -925,22 +855,7 @@ BOOL __EXPORT ScDocShell::ConvertFrom( SfxMedium& rMedium ) if (!bCalc3 && !bCalc4) aDocument.SetInsertingFromOtherDoc( TRUE ); - if (bCalc3 || bCalc4) // Calc3/4 - "Import" - { - // wait cursor is handled with progress bar - SvStorage* pStor = rMedium.GetStorage(); - if ( pStor ) - { - bRet = SfxInPlaceObject::Load( pStor ); - if( bRet ) - bRet = LoadCalc( pStor ); - if (!bRet && !pStor->GetError()) - pStor->SetError( SVSTREAM_FILEFORMAT_ERROR ); - } - else - DBG_ERROR("Calc3/4: kein Storage"); - } - else if (aFltName.EqualsAscii(pFilterXML)) + if (aFltName.EqualsAscii(pFilterXML)) bRet = LoadXML( &rMedium, NULL ); else if (aFltName.EqualsAscii(pFilterSc10)) { @@ -993,8 +908,6 @@ BOOL __EXPORT ScDocShell::ConvertFrom( SfxMedium& rMedium ) } else bRet = TRUE; - -// rMedium.CloseInStream(); } } else if ( aFltName.EqualsAscii(pFilterExcel4) || aFltName.EqualsAscii(pFilterExcel5) || @@ -1176,8 +1089,6 @@ BOOL __EXPORT ScDocShell::ConvertFrom( SfxMedium& rMedium ) } else bRet = TRUE; - - rMedium.CloseInStream(); } bSetColWidths = TRUE; bSetSimpleTextColWidths = TRUE; @@ -1342,26 +1253,14 @@ BOOL __EXPORT ScDocShell::ConvertFrom( SfxMedium& rMedium ) } -void __EXPORT ScDocShell::HandsOff() -{ - ScDrawLayer* pDrawLayer = aDocument.GetDrawLayer(); - - SfxInPlaceObject::HandsOff(); - - if( pDrawLayer ) - pDrawLayer->ReleasePictureStorage(); -} - - BOOL __EXPORT ScDocShell::Save() { RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::Save" ); ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() ); - SvStorage* pStor = GetStorage(); - DBG_ASSERT( pStor, "Save: no storage" ); - BOOL bXML = ( pStor->GetVersion() >= SOFFICE_FILEFORMAT_60 ); + uno::Reference < embed::XStorage > xStor = GetStorage(); + DBG_ASSERT( xStor.is(), "Save: no storage" ); // DoEnterHandler hier nicht (wegen AutoSave), ist im ExecuteSave @@ -1371,33 +1270,23 @@ BOOL __EXPORT ScDocShell::Save() if (pAutoStyleList) pAutoStyleList->ExecuteAllNow(); // Vorlagen-Timeouts jetzt ausfuehren if (GetCreateMode()== SFX_CREATE_MODE_STANDARD) - SvInPlaceObject::SetVisArea( Rectangle() ); // normal bearbeitet -> keine VisArea - - // #77577# save additionally XML in storage - if ( GetCreateMode() != SFX_CREATE_MODE_EMBEDDED && !bXML ) - AddXMLAsZipToTheStorage( *pStor ); + SfxObjectShell::SetVisArea( Rectangle() ); // normal bearbeitet -> keine VisArea // wait cursor is handled with progress bar - BOOL bRet = SfxInPlaceObject::Save(); + BOOL bRet = SfxObjectShell::Save(); if( bRet ) - { - if (bXML) - bRet = SaveXML( NULL, pStor ); - else - bRet = SaveCalc( pStor ); - } + bRet = SaveXML( NULL, xStor ); return bRet; } -BOOL __EXPORT ScDocShell::SaveAs( SvStorage* pStor ) +BOOL __EXPORT ScDocShell::SaveAs( const uno::Reference < embed::XStorage >& xStor ) { RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::SaveAs" ); ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() ); - DBG_ASSERT( pStor, "SaveAs without storage?" ); - BOOL bXML = ( pStor->GetVersion() >= SOFFICE_FILEFORMAT_60 ); + DBG_ASSERT( xStor.is(), "SaveAs without storage?" ); // DoEnterHandler hier nicht (wegen AutoSave), ist im ExecuteSave @@ -1407,21 +1296,12 @@ BOOL __EXPORT ScDocShell::SaveAs( SvStorage* pStor ) if (pAutoStyleList) pAutoStyleList->ExecuteAllNow(); // Vorlagen-Timeouts jetzt ausfuehren if (GetCreateMode()== SFX_CREATE_MODE_STANDARD) - SvInPlaceObject::SetVisArea( Rectangle() ); // normal bearbeitet -> keine VisArea - - // #77577# save additionally XML in storage - if ( GetCreateMode() != SFX_CREATE_MODE_EMBEDDED && !bXML ) - AddXMLAsZipToTheStorage( *pStor ); + SfxObjectShell::SetVisArea( Rectangle() ); // normal bearbeitet -> keine VisArea // wait cursor is handled with progress bar - BOOL bRet = SfxInPlaceObject::SaveAs( pStor ); + BOOL bRet = SfxObjectShell::SaveAs( xStor ); if( bRet ) - { - if (bXML) - bRet = SaveXML( NULL, pStor ); - else - bRet = SaveCalc( pStor ); - } + bRet = SaveXML( NULL, xStor ); return bRet; } @@ -1851,7 +1731,7 @@ BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed ) if (pAutoStyleList) pAutoStyleList->ExecuteAllNow(); // Vorlagen-Timeouts jetzt ausfuehren if (GetCreateMode()== SFX_CREATE_MODE_STANDARD) - SvInPlaceObject::SetVisArea( Rectangle() ); // normal bearbeitet -> keine VisArea + SfxObjectShell::SetVisArea( Rectangle() ); // normal bearbeitet -> keine VisArea DBG_ASSERT( rMed.GetFilter(), "Filter == 0" ); @@ -1871,39 +1751,10 @@ BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed ) } else */ - if ( aFltName.EqualsAscii(pFilterSc30) || aFltName.EqualsAscii(pFilterSc40) ) - { - // Calc3/4 - "Export" - //! wird nicht gerufen (geht ueber Save/SaveAs) - wird das noch gebraucht ??????? - - DBG_ERROR("ConvertTo fuer altes Calc gibt's noch..."); - SvStorage* pStor = rMed.GetStorage(); - if ( pStor ) - { - // wait cursor is handled with progress bar - bRet = SfxInPlaceObject::SaveAs( pStor ); - if( bRet ) - bRet = SaveCalc( pStor ); - - String aShortTypeName = String( ScResId(SCSTR_SHORT_SCDOC_NAME) ); // "Dokument" - if ( aFltName.EqualsAscii(pFilterSc30) ) - { - // Ole-Geraffel auf 3.0-Werte setzen: - SvGlobalName aName( SO3_SC_CLASSID_30 ); - UINT32 nClip = SOT_FORMATSTR_ID_STARCALC_30; - pStor->SetClass( aName, nClip, aShortTypeName ); - } - else - { - // Ole-Geraffel auf 4.0-Werte setzen: - SvGlobalName aName( SO3_SC_CLASSID_40 ); - UINT32 nClip = SOT_FORMATSTR_ID_STARCALC_40; - pStor->SetClass( aName, nClip, aShortTypeName ); - } - } - } - else if (aFltName.EqualsAscii(pFilterXML)) + if (aFltName.EqualsAscii(pFilterXML)) { + //TODO/LATER: this shouldn't happen! + DBG_ERROR("XML filter in ConvertFrom?!"); bRet = SaveXML( &rMed, NULL ); } else if (aFltName.EqualsAscii(pFilterExcel5) || aFltName.EqualsAscii(pFilterExcel95) || @@ -2118,9 +1969,9 @@ BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed ) } -BOOL __EXPORT ScDocShell::SaveCompleted( SvStorage * pStor ) +BOOL __EXPORT ScDocShell::SaveCompleted( const uno::Reference < embed::XStorage >& xStor ) { - return SfxInPlaceObject::SaveCompleted( pStor ); + return SfxObjectShell::SaveCompleted( xStor ); } @@ -2262,7 +2113,6 @@ ScDocShell::ScDocShell( const ScDocShell& rShell ) SetPool( &SC_MOD()->GetPool() ); - SetShell(this); bIsInplace = rShell.bIsInplace; pDocFunc = new ScDocFunc(*this); @@ -2293,7 +2143,6 @@ ScDocShell::ScDocShell( SfxObjectCreateMode eMode ) SetPool( &SC_MOD()->GetPool() ); - SetShell(this); bIsInplace = (eMode == SFX_CREATE_MODE_EMBEDDED); // wird zurueckgesetzt, wenn nicht inplace @@ -2361,7 +2210,7 @@ SfxUndoManager* __EXPORT ScDocShell::GetUndoManager() void ScDocShell::SetModified( BOOL bModified ) { - SfxInPlaceObject::SetModified( bModified ); + SfxObjectShell::SetModified( bModified ); Broadcast( SfxSimpleHint( SFX_HINT_DOCCHANGED ) ); } |