summaryrefslogtreecommitdiff
path: root/sc/source/filter/oox/scenariobuffer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/oox/scenariobuffer.cxx')
-rw-r--r--sc/source/filter/oox/scenariobuffer.cxx23
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 ) :