diff options
Diffstat (limited to 'sc/source/filter/oox/scenariobuffer.cxx')
-rw-r--r-- | sc/source/filter/oox/scenariobuffer.cxx | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/sc/source/filter/oox/scenariobuffer.cxx b/sc/source/filter/oox/scenariobuffer.cxx index 0060adf80df7..1ae9becb6a21 100644 --- a/sc/source/filter/oox/scenariobuffer.cxx +++ b/sc/source/filter/oox/scenariobuffer.cxx @@ -50,14 +50,16 @@ ScenarioCellModel::ScenarioCellModel() : ScenarioModel::ScenarioModel() : mbLocked( false ), - mbHidden( false ) + mbHidden( false ), + mbActive( false ) { } -Scenario::Scenario( const WorkbookHelper& rHelper, sal_Int16 nSheet ) : +Scenario::Scenario( const WorkbookHelper& rHelper, sal_Int16 nSheet, bool bIsActive ) : WorkbookHelper( rHelper ), mnSheet( nSheet ) { + maModel.mbActive = bIsActive; } void Scenario::importScenario( const AttributeList& rAttribs ) @@ -138,7 +140,7 @@ void Scenario::finalizeImport() // scenario properties PropertySet aPropSet( xScenarios->getByName( aScenName ) ); - aPropSet.setProperty( PROP_IsActive, false ); + aPropSet.setProperty( PROP_IsActive, maModel.mbActive ); aPropSet.setProperty( PROP_CopyBack, false ); aPropSet.setProperty( PROP_CopyStyles, false ); aPropSet.setProperty( PROP_CopyFormulas, false ); @@ -178,7 +180,8 @@ void SheetScenarios::importScenarios( SequenceInputStream& rStrm ) Scenario& SheetScenarios::createScenario() { - ScenarioVector::value_type xScenario( new Scenario( *this, mnSheet ) ); + bool bIsActive = maScenarios.size() == (sal_uInt32) maModel.mnShown; + ScenarioVector::value_type xScenario( new Scenario( *this, mnSheet, bIsActive ) ); maScenarios.push_back( xScenario ); return *xScenario; } @@ -186,18 +189,6 @@ Scenario& SheetScenarios::createScenario() void SheetScenarios::finalizeImport() { maScenarios.forEachMem( &Scenario::finalizeImport ); - - // activate a scenario - try - { - Reference< XScenariosSupplier > xScenariosSupp( getSheetFromDoc( mnSheet ), UNO_QUERY_THROW ); - Reference< XIndexAccess > xScenariosIA( xScenariosSupp->getScenarios(), UNO_QUERY_THROW ); - Reference< XScenario > xScenario( xScenariosIA->getByIndex( maModel.mnShown ), UNO_QUERY_THROW ); - xScenario->apply(); - } - catch( Exception& ) - { - } } ScenarioBuffer::ScenarioBuffer( const WorkbookHelper& rHelper ) : |