diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2013-11-21 15:08:48 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2013-11-22 09:07:21 -0500 |
commit | 37b741e1eb6025d2e3637c69c31acf807a61bb05 (patch) | |
tree | 8e0e148b2820e3f2c6eec874b4b4a00e10e64cdf /sc/source/filter | |
parent | e8fe1e2e7fcbfc36559429afdfdbed149259e42f (diff) |
More removal of UNO API for setting document properties.
Change-Id: I8c68308394a64eee0985d7d1f8c8b34637a6da74
Diffstat (limited to 'sc/source/filter')
-rw-r--r-- | sc/source/filter/inc/workbookhelper.hxx | 2 | ||||
-rw-r--r-- | sc/source/filter/oox/workbookfragment.cxx | 6 | ||||
-rw-r--r-- | sc/source/filter/oox/workbookhelper.cxx | 56 |
3 files changed, 39 insertions, 25 deletions
diff --git a/sc/source/filter/inc/workbookhelper.hxx b/sc/source/filter/inc/workbookhelper.hxx index 022f34236de0..abafb20b7421 100644 --- a/sc/source/filter/inc/workbookhelper.hxx +++ b/sc/source/filter/inc/workbookhelper.hxx @@ -56,6 +56,7 @@ namespace oox { namespace core { } } class ScDocument; +class ScDocShell; class ScDocumentImport; class ScEditEngineDefaulter; @@ -152,6 +153,7 @@ public: ScDocument& getScDocument(); const ScDocument& getScDocument() const; + ScDocShell& getDocShell(); ScDocumentImport& getDocImport(); ScEditEngineDefaulter& getEditEngine() const; diff --git a/sc/source/filter/oox/workbookfragment.cxx b/sc/source/filter/oox/workbookfragment.cxx index fc3c2aa3e857..30f0f3452ae3 100644 --- a/sc/source/filter/oox/workbookfragment.cxx +++ b/sc/source/filter/oox/workbookfragment.cxx @@ -338,7 +338,7 @@ void WorkbookFragment::finalizeImport() // Recalculate formula cells. ScDocument& rDoc = getScDocument(); - ScDocShell* pDocSh = static_cast<ScDocShell*>(rDoc.GetDocumentShell()); + ScDocShell& rDocSh = getDocShell(); Reference< XComponentContext > xContext = comphelper::getProcessComponentContext(); ScRecalcOptions nRecalcMode = static_cast<ScRecalcOptions>(officecfg::Office::Calc::Formula::Load::OOXMLRecalcMode::get(xContext)); @@ -349,7 +349,7 @@ void WorkbookFragment::finalizeImport() { // Ask the user if full re-calculation is desired. QueryBox aBox( - pDocSh->GetActiveDialogParent(), WinBits(WB_YES_NO | WB_DEF_YES), + rDocSh.GetActiveDialogParent(), WinBits(WB_YES_NO | WB_DEF_YES), ScGlobal::GetRscString(STR_QUERY_FORMULA_RECALC_ONLOAD_XLS)); aBox.SetCheckBoxText(ScGlobal::GetRscString(STR_ALWAYS_PERFORM_SELECTED)); @@ -373,7 +373,7 @@ void WorkbookFragment::finalizeImport() bHardRecalc = true; if (bHardRecalc) - pDocSh->DoHardRecalc(false); + rDocSh.DoHardRecalc(false); else rDoc.CalcFormulaTree(false, true, false); } diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx index a27998ea33ee..33270e5b13a4 100644 --- a/sc/source/filter/oox/workbookhelper.cxx +++ b/sc/source/filter/oox/workbookhelper.cxx @@ -72,6 +72,7 @@ #include "datauno.hxx" #include "globalnames.hxx" #include "documentimport.hxx" +#include "drwlayer.hxx" #include "formulabuffer.hxx" #include "vcl/mapmod.hxx" @@ -150,6 +151,7 @@ public: ScDocument& getScDocument() { return *mpDoc; } const ScDocument& getScDocument() const { return *mpDoc; } + ScDocShell& getDocShell(); ScDocumentImport& getDocImport(); /** Returns a reference to the source/target spreadsheet document model. */ @@ -305,6 +307,7 @@ private: rtl_TextEncoding meTextEnc; /// BIFF byte string text encoding. bool mbHasCodePage; /// True = CODEPAGE record exists in imported stream. ScDocument* mpDoc; + ScDocShell* mpDocShell; boost::scoped_ptr<ScDocumentImport> mxDocImport; }; @@ -316,7 +319,8 @@ WorkbookGlobals::WorkbookGlobals( ExcelFilter& rFilter ) : meFilterType( FILTER_OOXML ), mpOoxFilter( &rFilter ), meBiff( BIFF_UNKNOWN ), - mpDoc( NULL ) + mpDoc(NULL), + mpDocShell(NULL) { // register at the filter, needed for virtual callbacks (even during construction) mrExcelFilter.registerWorkbookGlobals( *this ); @@ -329,6 +333,11 @@ WorkbookGlobals::~WorkbookGlobals() mrExcelFilter.unregisterWorkbookGlobals(); } +ScDocShell& WorkbookGlobals::getDocShell() +{ + return *mpDocShell; +} + ScDocumentImport& WorkbookGlobals::getDocImport() { return *mxDocImport; @@ -534,11 +543,10 @@ void WorkbookGlobals::initialize( bool bWorkbookFile ) if (mxDoc.get()) { ScModelObj* pModel = dynamic_cast<ScModelObj*>(mxDoc.get()); - ScDocShell* pDocShell = NULL; if (pModel) - pDocShell = static_cast<ScDocShell*>(pModel->GetEmbeddedObject()); - if (pDocShell) - mpDoc = pDocShell->GetDocument(); + mpDocShell = static_cast<ScDocShell*>(pModel->GetEmbeddedObject()); + if (mpDocShell) + mpDoc = mpDocShell->GetDocument(); } if (!mpDoc) @@ -578,19 +586,16 @@ void WorkbookGlobals::initialize( bool bWorkbookFile ) // set some document properties needed during import if( mrBaseFilter.isImportFilter() ) { - PropertySet aPropSet( mxDoc ); // enable editing read-only documents (e.g. from read-only files) - aPropSet.setProperty( PROP_IsChangeReadOnlyEnabled, true ); + mpDoc->EnableChangeReadOnly(true); // #i76026# disable Undo while loading the document - aPropSet.setProperty( PROP_IsUndoEnabled, false ); + mpDoc->EnableUndo(false); // #i79826# disable calculating automatic row height while loading the document - aPropSet.setProperty( PROP_IsAdjustHeightEnabled, false ); + mpDoc->EnableAdjustHeight(true); // disable automatic update of linked sheets and DDE links - aPropSet.setProperty( PROP_IsExecuteLinkEnabled, false ); + mpDoc->EnableExecuteLink(false); // #i79890# disable automatic update of defined names - Reference< XActionLockable > xLockable( aPropSet.getAnyProperty( PROP_NamedRanges ), UNO_QUERY ); - if( xLockable.is() ) - xLockable->addActionLock(); + mpDoc->CompileNameFormula(true); //! TODO: localize progress bar text mxProgressBar.reset( new SegmentProgressBar( mrBaseFilter.getStatusIndicator(), "Loading..." ) ); @@ -598,7 +603,7 @@ void WorkbookGlobals::initialize( bool bWorkbookFile ) //prevent unnecessary broadcasts and "half way listeners" as //is done in ScDocShell::BeforeXMLLoading() for ods - getScDocument().SetInsertingFromOtherDoc(true); + mpDoc->SetInsertingFromOtherDoc(true); } else if( mrBaseFilter.isExportFilter() ) { @@ -625,26 +630,28 @@ void WorkbookGlobals::finalize() // set some document properties needed after import if( mrBaseFilter.isImportFilter() ) { - PropertySet aPropSet( mxDoc ); // #i74668# do not insert default sheets - aPropSet.setProperty( PROP_IsLoaded, true ); + mpDocShell->SetEmpty(false); // #i79890# Compile named ranges before re-enabling row height adjustment. (no idea why). mpDoc->CompileNameFormula(false); // enable automatic update of linked sheets and DDE links - aPropSet.setProperty( PROP_IsExecuteLinkEnabled, true ); + mpDoc->EnableExecuteLink(true); // #i79826# enable updating automatic row height after loading the document - aPropSet.setProperty( PROP_IsAdjustHeightEnabled, true ); + mpDoc->EnableAdjustHeight(true); // #i76026# enable Undo after loading the document - aPropSet.setProperty( PROP_IsUndoEnabled, true ); + mpDoc->EnableUndo(true); + // disable editing read-only documents (e.g. from read-only files) - aPropSet.setProperty( PROP_IsChangeReadOnlyEnabled, false ); + mpDoc->EnableChangeReadOnly(false); // #111099# open forms in alive mode (has no effect, if no controls in document) - aPropSet.setProperty( PROP_ApplyFormDesignMode, false ); + ScDrawLayer* pModel = mpDoc->GetDrawLayer(); + if (pModel) + pModel->SetOpenInDesignMode(false); //stop preventing establishment of listeners as is done in //ScDocShell::AfterXMLLoading() for ods - getScDocument().SetInsertingFromOtherDoc(false); + mpDoc->SetInsertingFromOtherDoc(false); getDocImport().finalize(); } } @@ -745,6 +752,11 @@ const ScDocument& WorkbookHelper::getScDocument() const return mrBookGlob.getScDocument(); } +ScDocShell& WorkbookHelper::getDocShell() +{ + return mrBookGlob.getDocShell(); +} + ScDocumentImport& WorkbookHelper::getDocImport() { return mrBookGlob.getDocImport(); |