diff options
Diffstat (limited to 'sw/source/core/unocore/unoframe.cxx')
-rw-r--r-- | sw/source/core/unocore/unoframe.cxx | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index d0ec1efb18e2..6ee6e824c5d2 100644 --- a/sw/source/core/unocore/unoframe.cxx +++ b/sw/source/core/unocore/unoframe.cxx @@ -1172,7 +1172,7 @@ void SwXFrame::setPropertyValue(const :: OUString& rPropertyName, const :: uno:: FN_UNO_GRAPHIC_FILTER == pEntry->nWID) { String sGrfName, sFltName; - GraphicObject *pGrfObj = 0; + rtl::Reference<GraphicObject> rGrfObj; pFmt->GetDoc()->GetGrfNms( *(SwFlyFrmFmt*)pFmt, &sGrfName, &sFltName ); OUString uTemp; aValue >>= uTemp; @@ -1183,9 +1183,9 @@ void SwXFrame::setPropertyValue(const :: OUString& rPropertyName, const :: uno:: if( sTmp.EqualsAscii( sPackageProtocol, 0, sizeof( sPackageProtocol )-1 ) ) { - pGrfObj = new GraphicObject; - pGrfObj->SetUserData( sTmp ); - pGrfObj->SetSwapState(); + rGrfObj = GraphicObject::Create(); + rGrfObj->SetUserData( sTmp ); + rGrfObj->SetSwapState(); sGrfName.Erase(); } else if( sTmp.EqualsAscii( sGraphicObjectProtocol, @@ -1194,7 +1194,7 @@ void SwXFrame::setPropertyValue(const :: OUString& rPropertyName, const :: uno:: OString sId(OUStringToOString( sTmp.Copy(sizeof(sGraphicObjectProtocol)-1), RTL_TEXTENCODING_ASCII_US)); - pGrfObj = new GraphicObject( sId ); + rGrfObj = GraphicObject::Create( sId ); sGrfName.Erase(); } else @@ -1215,14 +1215,12 @@ void SwXFrame::setPropertyValue(const :: OUString& rPropertyName, const :: uno:: SwGrfNode* pGrfNode = aIdx.GetNode().GetGrfNode(); if(!pGrfNode) { - delete pGrfObj; throw uno::RuntimeException(); } SwPaM aGrfPaM(*pGrfNode); pFmt->GetDoc()->ReRead( aGrfPaM, sGrfName, sFltName, 0, - pGrfObj ); + &rGrfObj ); } - delete pGrfObj; } else if( FN_UNO_GRAPHIC == pEntry->nWID ) { @@ -1252,7 +1250,7 @@ void SwXFrame::setPropertyValue(const :: OUString& rPropertyName, const :: uno:: Graphic aGraphic; if( bURL ) { - GraphicObject *pGrfObj = 0; + rtl::Reference<GraphicObject> rGrfObj; OUString aGrfUrl; aValue >>= aGrfUrl; @@ -1264,8 +1262,8 @@ void SwXFrame::setPropertyValue(const :: OUString& rPropertyName, const :: uno:: OString sId(OUStringToOString( aGrfUrl.copy(sizeof(sGraphicObjectProtocol)-1), RTL_TEXTENCODING_ASCII_US)); - pGrfObj = new GraphicObject( sId ); - aGraphic = pGrfObj->GetGraphic(); + rGrfObj = GraphicObject::Create( sId ); + aGraphic = rGrfObj->GetGraphic(); bApply = true; } } @@ -1569,7 +1567,7 @@ uno::Any SwXFrame::getPropertyValue(const OUString& rPropertyName) { OUString sPrefix( RTL_CONSTASCII_USTRINGPARAM(sGraphicObjectProtocol) ); OUString sId(OStringToOUString( - pGrfNode->GetGrfObj().GetUniqueID(), + pGrfNode->GetGrfObj()->GetUniqueID(), RTL_TEXTENCODING_ASCII_US)); sGrfName = sPrefix + sId; } @@ -1588,12 +1586,12 @@ uno::Any SwXFrame::getPropertyValue(const OUString& rPropertyName) if(!pGrfNode) throw uno::RuntimeException(); - const GraphicObject* pGraphicObject = pGrfNode->GetReplacementGrfObj(); + const rtl::Reference<GraphicObject> rGraphicObject = pGrfNode->GetReplacementGrfObj(); - if(pGraphicObject) + if(rGraphicObject.is()) { OUString sPrefix( sGraphicObjectProtocol ); - (sGrfName = sPrefix) += OStringToOUString( pGraphicObject->GetUniqueID(), RTL_TEXTENCODING_ASCII_US ); + (sGrfName = sPrefix) += OStringToOUString( rGraphicObject->GetUniqueID(), RTL_TEXTENCODING_ASCII_US ); } } @@ -2232,7 +2230,7 @@ void SwXFrame::attachToRange(const uno::Reference< text::XTextRange > & xTextRan UnoActionContext aCont(pDoc); const ::uno::Any* pGraphicURL; String sGraphicURL; - GraphicObject *pGrfObj = 0; + rtl::Reference<GraphicObject> rGrfObj; if(pProps->GetProperty(FN_UNO_GRAPHIC_U_R_L, 0, pGraphicURL)) { OUString uTemp; @@ -2241,9 +2239,9 @@ void SwXFrame::attachToRange(const uno::Reference< text::XTextRange > & xTextRan if( sGraphicURL.EqualsAscii( sPackageProtocol, 0, sizeof( sPackageProtocol )-1 ) ) { - pGrfObj = new GraphicObject; - pGrfObj->SetUserData( sGraphicURL ); - pGrfObj->SetSwapState(); + rGrfObj = GraphicObject::Create(); + rGrfObj->SetUserData( sGraphicURL ); + rGrfObj->SetSwapState(); sGraphicURL.Erase(); } else if( sGraphicURL.EqualsAscii( sGraphicObjectProtocol, @@ -2252,7 +2250,7 @@ void SwXFrame::attachToRange(const uno::Reference< text::XTextRange > & xTextRan OString sId(OUStringToOString( sGraphicURL.Copy( sizeof(sGraphicObjectProtocol)-1 ), RTL_TEXTENCODING_ASCII_US)); - pGrfObj = new GraphicObject( sId ); + rGrfObj = GraphicObject::Create( sId ); sGraphicURL.Erase(); } } @@ -2275,11 +2273,10 @@ void SwXFrame::attachToRange(const uno::Reference< text::XTextRange > & xTextRan } pFmt = - pGrfObj ? pDoc->Insert( aPam, *pGrfObj, &aFrmSet, &aGrSet, + rGrfObj.is() ? pDoc->Insert( aPam, rGrfObj, &aFrmSet, &aGrSet, pParentFrmFmt ) : pDoc->Insert( aPam, sGraphicURL, sFltName, &aGraphic, &aFrmSet, &aGrSet, pParentFrmFmt ); - delete pGrfObj; if(pFmt) { SwGrfNode *pGrfNd = pDoc->GetNodes()[ pFmt->GetCntnt().GetCntntIdx() |