#88942# do not export empty group objects

This commit is contained in:
Sven Jacobi 2001-08-31 13:54:30 +00:00
parent 3561d54f0e
commit 7d86f09318
2 changed files with 32 additions and 19 deletions

View file

@ -2,9 +2,9 @@
*
* $RCSfile: eppt.hxx,v $
*
* $Revision: 1.25 $
* $Revision: 1.26 $
*
* last change: $Author: sj $ $Date: 2001-08-23 13:55:55 $
* last change: $Author: sj $ $Date: 2001-08-31 14:54:30 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@ -673,7 +673,7 @@ class GroupTable
void SkipCurrentGroup();
void ResetGroupTable( sal_uInt32 nCount );
void ClearGroupTable();
void EnterGroup( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & rIndex );
sal_Bool EnterGroup( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & rIndex );
sal_Bool GetNextGroupEntry();
GroupTable();
~GroupTable();

View file

@ -2,9 +2,9 @@
*
* $RCSfile: epptso.cxx,v $
*
* $Revision: 1.46 $
* $Revision: 1.47 $
*
* last change: $Author: sj $ $Date: 2001-08-23 13:55:55 $
* last change: $Author: sj $ $Date: 2001-08-31 14:53:08 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@ -340,14 +340,23 @@ void GroupTable::ImplResizeGroupTable( sal_uInt32 nEntrys )
// ---------------------------------------------------------------------------------------------
void GroupTable::EnterGroup( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rXIndexAccessRef )
sal_Bool GroupTable::EnterGroup( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rXIndexAccessRef )
{
sal_Bool bRet = sal_False;
if ( rXIndexAccessRef.is() )
{
if ( mnMaxGroupEntry == mnCurrentGroupEntry )
ImplResizeGroupTable( mnMaxGroupEntry + 8 );
mpGroupEntry[ mnCurrentGroupEntry++ ] = new GroupEntry( rXIndexAccessRef );
GroupEntry* pNewGroup = new GroupEntry( rXIndexAccessRef );
if ( pNewGroup->mnCount )
{
if ( mnMaxGroupEntry == mnCurrentGroupEntry )
ImplResizeGroupTable( mnMaxGroupEntry + 8 );
mpGroupEntry[ mnCurrentGroupEntry++ ] = pNewGroup;
bRet = sal_True;
}
else
delete pNewGroup;
}
return bRet;
}
// ---------------------------------------------------------------------------------------------
@ -4203,10 +4212,12 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
{
::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
aXIndexAccess( mXShape, ::com::sun::star::uno::UNO_QUERY );
EnterGroup( aXIndexAccess );
GetNextGroupEntry();
ImplGetShapeByIndex( GetCurrentGroupIndex(), TRUE );
SkipCurrentGroup();
if ( EnterGroup( aXIndexAccess ) )
{
GetNextGroupEntry();
ImplGetShapeByIndex( GetCurrentGroupIndex(), TRUE );
SkipCurrentGroup();
}
}
}
else
@ -4216,14 +4227,16 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
SvMemoryStream* pTmp = NULL;
::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
aXIndexAccess( mXShape, ::com::sun::star::uno::UNO_QUERY );
EnterGroup( aXIndexAccess );
if ( bEffect )
if ( EnterGroup( aXIndexAccess ) )
{
pTmp = new SvMemoryStream( 0x200, 0x200 );
ImplWriteObjectEffect( *pTmp, eAe, eTe, ++nEffectCount );
if ( bEffect )
{
pTmp = new SvMemoryStream( 0x200, 0x200 );
ImplWriteObjectEffect( *pTmp, eAe, eTe, ++nEffectCount );
}
mpPptEscherEx->EnterGroup( &maRect, pTmp );
delete pTmp;
}
mpPptEscherEx->EnterGroup( &maRect, pTmp );
delete pTmp;
}
else
{