Kaydet (Commit) 1cc023dc authored tarafından Henry Castro's avatar Henry Castro Kaydeden (comit) Eike Rathke

Resolves tdf#83366 Copy and Paste crashes Calc when original doc closed

Change-Id: I5ab279a7d7af6829735b47ef5228f56dc77580c9
Reviewed-on: https://gerrit.libreoffice.org/15292Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
Tested-by: 's avatarEike Rathke <erack@redhat.com>
üst 887370fe
...@@ -830,35 +830,38 @@ Reference< XDataSequence > XclImpChSourceLink::CreateDataSequence( const OUStrin ...@@ -830,35 +830,38 @@ Reference< XDataSequence > XclImpChSourceLink::CreateDataSequence( const OUStrin
{ {
Reference< XDataSequence > xDataSeq; Reference< XDataSequence > xDataSeq;
Reference< XDataProvider > xDataProv = GetDataProvider(); Reference< XDataProvider > xDataProv = GetDataProvider();
if( xDataProv.is() && mxTokenArray ) if( xDataProv.is() )
{ {
ScCompiler aComp( GetDocPtr(), ScAddress(), *mxTokenArray ); if ( mxTokenArray )
aComp.SetGrammar(GetDoc().GetGrammar());
OUStringBuffer aRangeRep;
aComp.CreateStringFromTokenArray( aRangeRep );
try
{
xDataSeq = xDataProv->createDataSequenceByRangeRepresentation( aRangeRep.makeStringAndClear() );
// set sequence role
ScfPropertySet aSeqProp( xDataSeq );
aSeqProp.SetProperty( EXC_CHPROP_ROLE, rRole );
}
catch( Exception& )
{ {
// OSL_FAIL( "XclImpChSourceLink::CreateDataSequence - cannot create data sequence" ); ScCompiler aComp( GetDocPtr(), ScAddress(), *mxTokenArray );
aComp.SetGrammar(GetDoc().GetGrammar());
OUStringBuffer aRangeRep;
aComp.CreateStringFromTokenArray( aRangeRep );
try
{
xDataSeq = xDataProv->createDataSequenceByRangeRepresentation( aRangeRep.makeStringAndClear() );
// set sequence role
ScfPropertySet aSeqProp( xDataSeq );
aSeqProp.SetProperty( EXC_CHPROP_ROLE, rRole );
}
catch( Exception& )
{
// OSL_FAIL( "XclImpChSourceLink::CreateDataSequence - cannot create data sequence" );
}
} }
} else if( rRole == EXC_CHPROP_ROLE_LABEL && mxString && !mxString->GetText().isEmpty() )
else if( rRole == EXC_CHPROP_ROLE_LABEL && mxString && !mxString->GetText().isEmpty() )
{
try
{ {
OUString aString("\""); try
xDataSeq = xDataProv->createDataSequenceByRangeRepresentation( aString + mxString->GetText() + aString ); {
// set sequence role OUString aString("\"");
ScfPropertySet aSeqProp( xDataSeq ); xDataSeq = xDataProv->createDataSequenceByRangeRepresentation( aString + mxString->GetText() + aString );
aSeqProp.SetProperty( EXC_CHPROP_ROLE, rRole ); // set sequence role
ScfPropertySet aSeqProp( xDataSeq );
aSeqProp.SetProperty( EXC_CHPROP_ROLE, rRole );
}
catch( Exception& ) { }
} }
catch( Exception& ) { }
} }
return xDataSeq; return xDataSeq;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment