Kaydet (Commit) 8286e924 authored tarafından Julien Nabet's avatar Julien Nabet Kaydeden (comit) Björn Michaelsen

Related fdo#86929: Kill FOREACHPAM_START for good (part1)

Change-Id: Ifdb896108cf0db0a9be7ba419df785da536c0fab
Reviewed-on: https://gerrit.libreoffice.org/13465Reviewed-by: 's avatarBjörn Michaelsen <bjoern.michaelsen@canonical.com>
Tested-by: 's avatarBjörn Michaelsen <bjoern.michaelsen@canonical.com>
üst bbf59cb8
...@@ -812,286 +812,286 @@ bool SwFEShell::Paste( SwDoc* pClpDoc, bool bIncludingPageFrames ) ...@@ -812,286 +812,286 @@ bool SwFEShell::Paste( SwDoc* pClpDoc, bool bIncludingPageFrames )
} }
else else
{ {
FOREACHPAM_START(GetCrsr()) for(SwPaM& rPaM : GetCrsr()->GetRingContainer())
if( pSrcNd &&
0 != ( pDestNd = GetDoc()->IsIdxInTbl( PCURCRSR->GetPoint()->nNode )))
{ {
SwPosition aDestPos( *PCURCRSR->GetPoint() );
bool bParkTblCrsr = false;
const SwStartNode* pSttNd = PCURCRSR->GetNode().FindTableBoxStartNode();
// TABLE IN TABLE: copy table in table if( pSrcNd &&
// search boxes via the layout 0 != ( pDestNd = GetDoc()->IsIdxInTbl( rPaM.GetPoint()->nNode )))
SwSelBoxes aBoxes;
if( IsTableMode() ) // table selection?
{ {
GetTblSel( *this, aBoxes ); SwPosition aDestPos( *rPaM.GetPoint() );
ParkTblCrsr();
bParkTblCrsr = true; bool bParkTblCrsr = false;
} const SwStartNode* pSttNd = rPaM.GetNode().FindTableBoxStartNode();
else if( !PCURCRSR->HasMark() && PCURCRSR->GetNext() == PCURCRSR &&
// TABLE IN TABLE: copy table in table
// search boxes via the layout
SwSelBoxes aBoxes;
if( IsTableMode() ) // table selection?
{
GetTblSel( *this, aBoxes );
ParkTblCrsr();
bParkTblCrsr = true;
}
else if( !rPaM.HasMark() && rPaM.GetNext() == &rPaM &&
( !pSrcNd->GetTable().IsTblComplex() || ( !pSrcNd->GetTable().IsTblComplex() ||
pDestNd->GetTable().IsNewModel() ) ) pDestNd->GetTable().IsNewModel() ) )
{ {
// make relative table copy // make relative table copy
SwTableBox* pBox = pDestNd->GetTable().GetTblBox( SwTableBox* pBox = pDestNd->GetTable().GetTblBox(
pSttNd->GetIndex() ); pSttNd->GetIndex() );
OSL_ENSURE( pBox, "Box steht nicht in dieser Tabelle" ); OSL_ENSURE( pBox, "Box steht nicht in dieser Tabelle" );
aBoxes.insert( pBox ); aBoxes.insert( pBox );
} }
SwNodeIndex aNdIdx( *pDestNd->EndOfSectionNode()); SwNodeIndex aNdIdx( *pDestNd->EndOfSectionNode());
if( !bParkTblCrsr ) if( !bParkTblCrsr )
{ {
// exit first the complete table // exit first the complete table
// ???? what about only table in a frame ????? // ???? what about only table in a frame ?????
SwCntntNode* pCNd = GetDoc()->GetNodes().GoNext( &aNdIdx ); SwCntntNode* pCNd = GetDoc()->GetNodes().GoNext( &aNdIdx );
SwPosition aPos( aNdIdx, SwIndex( pCNd, 0 )); SwPosition aPos( aNdIdx, SwIndex( pCNd, 0 ));
// #i59539: Don't remove all redline // #i59539: Don't remove all redline
SwPaM const tmpPaM(*pDestNd, *pDestNd->EndOfSectionNode()); SwPaM const tmpPaM(*pDestNd, *pDestNd->EndOfSectionNode());
::PaMCorrAbs(tmpPaM, aPos); ::PaMCorrAbs(tmpPaM, aPos);
} }
bRet = GetDoc()->InsCopyOfTbl( aDestPos, aBoxes, &pSrcNd->GetTable(), bRet = GetDoc()->InsCopyOfTbl( aDestPos, aBoxes, &pSrcNd->GetTable(),
false, false ); false, false );
if( bParkTblCrsr ) if( bParkTblCrsr )
GetCrsr(); GetCrsr();
else else
{ {
// return to the box // return to the box
aNdIdx = *pSttNd; aNdIdx = *pSttNd;
SwCntntNode* pCNd = GetDoc()->GetNodes().GoNext( &aNdIdx ); SwCntntNode* pCNd = GetDoc()->GetNodes().GoNext( &aNdIdx );
SwPosition aPos( aNdIdx, SwIndex( pCNd, 0 )); SwPosition aPos( aNdIdx, SwIndex( pCNd, 0 ));
// #i59539: Don't remove all redline // #i59539: Don't remove all redline
SwNode & rNode(PCURCRSR->GetPoint()->nNode.GetNode()); SwNode & rNode(rPaM.GetPoint()->nNode.GetNode());
SwCntntNode *const pCntntNode( rNode.GetCntntNode() ); SwCntntNode *const pCntntNode( rNode.GetCntntNode() );
SwPaM const tmpPam(rNode, 0, SwPaM const tmpPam(rNode, 0,
rNode, (pCntntNode) ? pCntntNode->Len() : 0); rNode, (pCntntNode) ? pCntntNode->Len() : 0);
::PaMCorrAbs(tmpPam, aPos); ::PaMCorrAbs(tmpPam, aPos);
} }
break; // exit the "while-loop" break; // exit the "while-loop"
} }
else if( *aCpyPam.GetPoint() == *aCpyPam.GetMark() && else if( *aCpyPam.GetPoint() == *aCpyPam.GetMark() &&
pClpDoc->GetSpzFrmFmts()->size() ) pClpDoc->GetSpzFrmFmts()->size() )
{
// we need a DrawView
if( !Imp()->GetDrawView() )
MakeDrawView();
std::set<const SwFrmFmt*> aTextBoxes = SwTextBoxHelper::findTextBoxes(pClpDoc);
for ( sal_uInt16 i = 0; i < pClpDoc->GetSpzFrmFmts()->size(); ++i )
{ {
bool bInsWithFmt = true; // we need a DrawView
const SwFrmFmt& rCpyFmt = *(*pClpDoc->GetSpzFrmFmts())[i]; if( !Imp()->GetDrawView() )
MakeDrawView();
if( Imp()->GetDrawView()->IsGroupEntered() && std::set<const SwFrmFmt*> aTextBoxes = SwTextBoxHelper::findTextBoxes(pClpDoc);
RES_DRAWFRMFMT == rCpyFmt.Which() && for ( sal_uInt16 i = 0; i < pClpDoc->GetSpzFrmFmts()->size(); ++i )
(FLY_AS_CHAR != rCpyFmt.GetAnchor().GetAnchorId()) )
{ {
const SdrObject* pSdrObj = rCpyFmt.FindSdrObject(); bool bInsWithFmt = true;
if( pSdrObj ) const SwFrmFmt& rCpyFmt = *(*pClpDoc->GetSpzFrmFmts())[i];
if( Imp()->GetDrawView()->IsGroupEntered() &&
RES_DRAWFRMFMT == rCpyFmt.Which() &&
(FLY_AS_CHAR != rCpyFmt.GetAnchor().GetAnchorId()) )
{ {
SdrObject* pNew = GetDoc()->CloneSdrObj( *pSdrObj, const SdrObject* pSdrObj = rCpyFmt.FindSdrObject();
if( pSdrObj )
{
SdrObject* pNew = GetDoc()->CloneSdrObj( *pSdrObj,
false, false ); false, false );
// Insert object sets any anchor position to 0. // Insert object sets any anchor position to 0.
// Therefore we calculate the absolute position here // Therefore we calculate the absolute position here
// and after the insert the anchor of the object // and after the insert the anchor of the object
// is set to the anchor of the group object. // is set to the anchor of the group object.
Rectangle aSnapRect = pNew->GetSnapRect(); Rectangle aSnapRect = pNew->GetSnapRect();
if( pNew->GetAnchorPos().X() || pNew->GetAnchorPos().Y() ) if( pNew->GetAnchorPos().X() || pNew->GetAnchorPos().Y() )
{ {
const Point aPoint( 0, 0 ); const Point aPoint( 0, 0 );
// OD 2004-04-05 #i26791# - direct drawing object // OD 2004-04-05 #i26791# - direct drawing object
// positioning for group members // positioning for group members
pNew->NbcSetAnchorPos( aPoint ); pNew->NbcSetAnchorPos( aPoint );
pNew->NbcSetSnapRect( aSnapRect ); pNew->NbcSetSnapRect( aSnapRect );
} }
Imp()->GetDrawView()->InsertObjectAtView( pNew, *Imp()->GetPageView() ); Imp()->GetDrawView()->InsertObjectAtView( pNew, *Imp()->GetPageView() );
Point aGrpAnchor( 0, 0 ); Point aGrpAnchor( 0, 0 );
SdrObjList* pList = pNew->GetObjList(); SdrObjList* pList = pNew->GetObjList();
if ( pList ) if ( pList )
{
SdrObject* pOwner = pList->GetOwnerObj();
if ( pOwner )
{ {
SdrObjGroup* pThisGroup = PTR_CAST(SdrObjGroup, pOwner); SdrObject* pOwner = pList->GetOwnerObj();
aGrpAnchor = pThisGroup->GetAnchorPos(); if ( pOwner )
{
SdrObjGroup* pThisGroup = PTR_CAST(SdrObjGroup, pOwner);
aGrpAnchor = pThisGroup->GetAnchorPos();
}
} }
}
// OD 2004-04-05 #i26791# - direct drawing object // OD 2004-04-05 #i26791# - direct drawing object
// positioning for group members // positioning for group members
pNew->NbcSetAnchorPos( aGrpAnchor ); pNew->NbcSetAnchorPos( aGrpAnchor );
pNew->SetSnapRect( aSnapRect ); pNew->SetSnapRect( aSnapRect );
bInsWithFmt = false; bInsWithFmt = false;
}
} }
}
if( bInsWithFmt ) if( bInsWithFmt )
{
SwFmtAnchor aAnchor( rCpyFmt.GetAnchor() );
if ((FLY_AT_PARA == aAnchor.GetAnchorId()) ||
(FLY_AT_CHAR == aAnchor.GetAnchorId()) ||
(FLY_AS_CHAR == aAnchor.GetAnchorId()))
{ {
SwPosition* pPos = PCURCRSR->GetPoint(); SwFmtAnchor aAnchor( rCpyFmt.GetAnchor() );
// allow shapes (no controls) in header/footer if ((FLY_AT_PARA == aAnchor.GetAnchorId()) ||
if( RES_DRAWFRMFMT == rCpyFmt.Which() && (FLY_AT_CHAR == aAnchor.GetAnchorId()) ||
GetDoc()->IsInHeaderFooter( pPos->nNode ) ) (FLY_AS_CHAR == aAnchor.GetAnchorId()))
{ {
const SdrObject *pCpyObj = rCpyFmt.FindSdrObject(); SwPosition* pPos = rPaM.GetPoint();
if (pCpyObj && CheckControlLayer(pCpyObj)) // allow shapes (no controls) in header/footer
continue; if( RES_DRAWFRMFMT == rCpyFmt.Which() &&
} GetDoc()->IsInHeaderFooter( pPos->nNode ) )
{
const SdrObject *pCpyObj = rCpyFmt.FindSdrObject();
if (pCpyObj && CheckControlLayer(pCpyObj))
continue;
}
// Ignore TextBoxes, they are already handled in sw::DocumentLayoutManager::CopyLayoutFmt(). // Ignore TextBoxes, they are already handled in sw::DocumentLayoutManager::CopyLayoutFmt().
if (aTextBoxes.find(&rCpyFmt) != aTextBoxes.end()) if (aTextBoxes.find(&rCpyFmt) != aTextBoxes.end())
continue; continue;
aAnchor.SetAnchor( pPos ); aAnchor.SetAnchor( pPos );
} }
else if ( FLY_AT_PAGE == aAnchor.GetAnchorId() ) else if ( FLY_AT_PAGE == aAnchor.GetAnchorId() )
{ {
aAnchor.SetPageNum( GetPhyPageNum() ); aAnchor.SetPageNum( GetPhyPageNum() );
} }
else if( FLY_AT_FLY == aAnchor.GetAnchorId() ) else if( FLY_AT_FLY == aAnchor.GetAnchorId() )
{ {
Point aPt; Point aPt;
(void)lcl_SetAnchor( *PCURCRSR->GetPoint(), PCURCRSR->GetNode(), (void)lcl_SetAnchor( *rPaM.GetPoint(), rPaM.GetNode(),
0, aPt, *this, aAnchor, aPt, false ); 0, aPt, *this, aAnchor, aPt, false );
} }
SwFrmFmt * pNew = GetDoc()->getIDocumentLayoutAccess().CopyLayoutFmt( rCpyFmt, aAnchor, true, true ); SwFrmFmt * pNew = GetDoc()->getIDocumentLayoutAccess().CopyLayoutFmt( rCpyFmt, aAnchor, true, true );
if( pNew ) if( pNew )
{
if( RES_FLYFRMFMT == pNew->Which() )
{
const Point aPt( GetCrsrDocPos() );
SwFlyFrm* pFlyFrm = static_cast<SwFlyFrmFmt*>(pNew)->
GetFrm( &aPt, false );
if( pFlyFrm )
SelectFlyFrm( *pFlyFrm, true );
// always pick the first FlyFrame only; the others
// were copied to the clipboard via Fly in Fly
break;
}
else
{ {
OSL_ENSURE( RES_DRAWFRMFMT == pNew->Which(), "Neues Format."); if( RES_FLYFRMFMT == pNew->Which() )
// #i52780# - drawing object has
// to be made visible on paste.
{ {
SwDrawContact* pContact = const Point aPt( GetCrsrDocPos() );
static_cast<SwDrawContact*>(pNew->FindContactObj()); SwFlyFrm* pFlyFrm = static_cast<SwFlyFrmFmt*>(pNew)->
pContact->MoveObjToVisibleLayer( pContact->GetMaster() ); GetFrm( &aPt, false );
if( pFlyFrm )
SelectFlyFrm( *pFlyFrm, true );
// always pick the first FlyFrame only; the others
// were copied to the clipboard via Fly in Fly
break;
} }
SdrObject *pObj = pNew->FindSdrObject(); else
SwDrawView *pDV = Imp()->GetDrawView();
pDV->MarkObj( pObj, pDV->GetSdrPageView() );
// #i47455# - notify draw frame format
// that position attributes are already set.
if ( pNew->ISA(SwDrawFrmFmt) )
{ {
static_cast<SwDrawFrmFmt*>(pNew)->PosAttrSet(); OSL_ENSURE( RES_DRAWFRMFMT == pNew->Which(), "Neues Format.");
// #i52780# - drawing object has
// to be made visible on paste.
{
SwDrawContact* pContact =
static_cast<SwDrawContact*>(pNew->FindContactObj());
pContact->MoveObjToVisibleLayer( pContact->GetMaster() );
}
SdrObject *pObj = pNew->FindSdrObject();
SwDrawView *pDV = Imp()->GetDrawView();
pDV->MarkObj( pObj, pDV->GetSdrPageView() );
// #i47455# - notify draw frame format
// that position attributes are already set.
if ( pNew->ISA(SwDrawFrmFmt) )
{
static_cast<SwDrawFrmFmt*>(pNew)->PosAttrSet();
}
} }
} }
} }
} }
} }
} else
else
{
if( bDelTbl && IsTableMode() )
{ {
SwEditShell::Delete(); if( bDelTbl && IsTableMode() )
bDelTbl = false; {
} SwEditShell::Delete();
bDelTbl = false;
}
SwPosition& rInsPos = *PCURCRSR->GetPoint(); SwPosition& rInsPos = *rPaM.GetPoint();
const SwStartNode* pBoxNd = rInsPos.nNode.GetNode(). const SwStartNode* pBoxNd = rInsPos.nNode.GetNode().
FindTableBoxStartNode(); FindTableBoxStartNode();
if( pBoxNd && 2 == pBoxNd->EndOfSectionIndex() - if( pBoxNd && 2 == pBoxNd->EndOfSectionIndex() -
pBoxNd->GetIndex() && pBoxNd->GetIndex() &&
aCpyPam.GetPoint()->nNode != aCpyPam.GetMark()->nNode ) aCpyPam.GetPoint()->nNode != aCpyPam.GetMark()->nNode )
{ {
// Copy more than 1 node in the current box. But // Copy more than 1 node in the current box. But
// then the BoxAttribute should be removed // then the BoxAttribute should be removed
GetDoc()->ClearBoxNumAttrs( rInsPos.nNode ); GetDoc()->ClearBoxNumAttrs( rInsPos.nNode );
} }
// ** // **
// ** Update SwDoc::Append, if you change the following code ** // ** Update SwDoc::Append, if you change the following code **
// ** // **
// find out if the clipboard document starts with a table // find out if the clipboard document starts with a table
bool bStartWithTable = 0 != aCpyPam.Start()->nNode.GetNode().FindTableNode(); bool bStartWithTable = 0 != aCpyPam.Start()->nNode.GetNode().FindTableNode();
SwPosition aInsertPosition( rInsPos ); SwPosition aInsertPosition( rInsPos );
{ {
SwNodeIndex aIndexBefore(rInsPos.nNode); SwNodeIndex aIndexBefore(rInsPos.nNode);
aIndexBefore--; aIndexBefore--;
pClpDoc->getIDocumentContentOperations().CopyRange( aCpyPam, rInsPos, false ); pClpDoc->getIDocumentContentOperations().CopyRange( aCpyPam, rInsPos, false );
// Note: aCpyPam is invalid now // Note: aCpyPam is invalid now
++aIndexBefore; ++aIndexBefore;
SwPaM aPaM(SwPosition(aIndexBefore), SwPaM aPaM(SwPosition(aIndexBefore),
SwPosition(rInsPos.nNode)); SwPosition(rInsPos.nNode));
aPaM.GetDoc()->MakeUniqueNumRules(aPaM); aPaM.GetDoc()->MakeUniqueNumRules(aPaM);
// Update the rsid of each pasted text node. // Update the rsid of each pasted text node.
SwNodes &rDestNodes = GetDoc()->GetNodes(); SwNodes &rDestNodes = GetDoc()->GetNodes();
sal_uLong const nEndIdx = aPaM.End()->nNode.GetIndex(); sal_uLong const nEndIdx = aPaM.End()->nNode.GetIndex();
for (sal_uLong nIdx = aPaM.Start()->nNode.GetIndex(); for (sal_uLong nIdx = aPaM.Start()->nNode.GetIndex();
nIdx <= nEndIdx; ++nIdx) nIdx <= nEndIdx; ++nIdx)
{
SwTxtNode *const pTxtNode = rDestNodes[nIdx]->GetTxtNode();
if ( pTxtNode )
{ {
GetDoc()->UpdateParRsid( pTxtNode ); SwTxtNode *const pTxtNode = rDestNodes[nIdx]->GetTxtNode();
if ( pTxtNode )
{
GetDoc()->UpdateParRsid( pTxtNode );
}
} }
} }
}
SaveTblBoxCntnt( &rInsPos ); SaveTblBoxCntnt( &rInsPos );
if(bIncludingPageFrames && bStartWithTable) if(bIncludingPageFrames && bStartWithTable)
{
//remove the paragraph in front of the table
SwPaM aPara(aInsertPosition);
GetDoc()->getIDocumentContentOperations().DelFullPara(aPara);
}
//additionally copy page bound frames
if( bIncludingPageFrames && pClpDoc->GetSpzFrmFmts()->size() )
{
// create a draw view if necessary
if( !Imp()->GetDrawView() )
MakeDrawView();
for ( sal_uInt16 i = 0; i < pClpDoc->GetSpzFrmFmts()->size(); ++i )
{ {
const SwFrmFmt& rCpyFmt = *(*pClpDoc->GetSpzFrmFmts())[i]; //remove the paragraph in front of the table
SwFmtAnchor aAnchor( rCpyFmt.GetAnchor() ); SwPaM aPara(aInsertPosition);
if ( FLY_AT_PAGE != aAnchor.GetAnchorId() ) GetDoc()->getIDocumentContentOperations().DelFullPara(aPara);
continue; }
aAnchor.SetPageNum( aAnchor.GetPageNum() + nStartPageNumber - 1 ); //additionally copy page bound frames
GetDoc()->getIDocumentLayoutAccess().CopyLayoutFmt( rCpyFmt, aAnchor, true, true ); if( bIncludingPageFrames && pClpDoc->GetSpzFrmFmts()->size() )
{
// create a draw view if necessary
if( !Imp()->GetDrawView() )
MakeDrawView();
for ( sal_uInt16 i = 0; i < pClpDoc->GetSpzFrmFmts()->size(); ++i )
{
const SwFrmFmt& rCpyFmt = *(*pClpDoc->GetSpzFrmFmts())[i];
SwFmtAnchor aAnchor( rCpyFmt.GetAnchor() );
if ( FLY_AT_PAGE != aAnchor.GetAnchorId() )
continue;
aAnchor.SetPageNum( aAnchor.GetPageNum() + nStartPageNumber - 1 );
GetDoc()->getIDocumentLayoutAccess().CopyLayoutFmt( rCpyFmt, aAnchor, true, true );
}
} }
} }
} }
FOREACHPAM_END()
} }
GetDoc()->GetIDocumentUndoRedo().EndUndo( UNDO_INSGLOSSARY, NULL ); GetDoc()->GetIDocumentUndoRedo().EndUndo( UNDO_INSGLOSSARY, NULL );
......
...@@ -188,16 +188,17 @@ const SwPageDesc* SwFEShell::GetSelectedPageDescs() const ...@@ -188,16 +188,17 @@ const SwPageDesc* SwFEShell::GetSelectedPageDescs() const
const SwPageDesc* pFnd, *pRetDesc = reinterpret_cast<SwPageDesc*>(0xffffffff); const SwPageDesc* pFnd, *pRetDesc = reinterpret_cast<SwPageDesc*>(0xffffffff);
const Point aNulPt; const Point aNulPt;
FOREACHPAM_START(GetCrsr()) for(SwPaM& rPaM : GetCrsr()->GetRingContainer())
{
if( 0 != (pCNd = PCURCRSR->GetCntntNode() ) && if( 0 != (pCNd = rPaM.GetCntntNode() ) &&
0 != ( pPtFrm = pCNd->getLayoutFrm( GetLayout(), &aNulPt, 0, false )) ) 0 != ( pPtFrm = pCNd->getLayoutFrm( GetLayout(), &aNulPt, 0, false )) )
pPtFrm = pPtFrm->FindPageFrm(); pPtFrm = pPtFrm->FindPageFrm();
else else
pPtFrm = 0; pPtFrm = 0;
if( PCURCRSR->HasMark() && if( rPaM.HasMark() &&
0 != (pCNd = PCURCRSR->GetCntntNode( false ) ) && 0 != (pCNd = rPaM.GetCntntNode( false ) ) &&
0 != ( pMkFrm = pCNd->getLayoutFrm( GetLayout(), &aNulPt, 0, false )) ) 0 != ( pMkFrm = pCNd->getLayoutFrm( GetLayout(), &aNulPt, 0, false )) )
pMkFrm = pMkFrm->FindPageFrm(); pMkFrm = pMkFrm->FindPageFrm();
else else
...@@ -234,7 +235,7 @@ const SwPageDesc* SwFEShell::GetSelectedPageDescs() const ...@@ -234,7 +235,7 @@ const SwPageDesc* SwFEShell::GetSelectedPageDescs() const
break; break;
} }
FOREACHPAM_END() }
return pRetDesc; return pRetDesc;
} }
......
...@@ -834,12 +834,13 @@ SwFlyFrmFmt* SwFEShell::InsertObject( const svt::EmbeddedObjectRef& xObj, ...@@ -834,12 +834,13 @@ SwFlyFrmFmt* SwFEShell::InsertObject( const svt::EmbeddedObjectRef& xObj,
SwFlyFrmFmt* pFmt = 0; SwFlyFrmFmt* pFmt = 0;
SET_CURR_SHELL( this ); SET_CURR_SHELL( this );
StartAllAction(); StartAllAction();
FOREACHPAM_START(GetCrsr()) for(SwPaM& rPaM : GetCrsr()->GetRingContainer())
pFmt = GetDoc()->getIDocumentContentOperations().Insert(*PCURCRSR, xObj, {
pFmt = GetDoc()->getIDocumentContentOperations().Insert(rPaM, xObj,
pFlyAttrSet, pGrfAttrSet, pFrmFmt ); pFlyAttrSet, pGrfAttrSet, pFrmFmt );
OSL_ENSURE( pFmt, "Doc->getIDocumentContentOperations().Insert(notxt) failed." ); OSL_ENSURE( pFmt, "Doc->getIDocumentContentOperations().Insert(notxt) failed." );
FOREACHPAM_END() }
EndAllAction(); EndAllAction();
if( pFmt ) if( pFmt )
......
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