Kaydet (Commit) e4e4b3d6 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Another SV_DECL_PTRARR now gone.

Change-Id: I0521274a6e19414d2640a1473a249a90ce2224fc
üst 1e68b77b
...@@ -86,6 +86,25 @@ bool XEditAttribute::IsFeature() const ...@@ -86,6 +86,25 @@ bool XEditAttribute::IsFeature() const
return ((nWhich >= EE_FEATURE_START) && (nWhich <= EE_FEATURE_END)); return ((nWhich >= EE_FEATURE_START) && (nWhich <= EE_FEATURE_END));
} }
XParaPortionList::XParaPortionList(
OutputDevice* pRefDev, sal_uLong nPW, sal_uInt16 _nStretchX, sal_uInt16 _nStretchY) :
aRefMapMode(pRefDev->GetMapMode()), nStretchX(_nStretchX), nStretchY(_nStretchY)
{
nRefDevPtr = (sal_uIntPtr)pRefDev; nPaperWidth = nPW;
eRefDevType = pRefDev->GetOutDevType();
}
void XParaPortionList::push_back(XParaPortion* p)
{
maList.push_back(p);
}
const XParaPortion& XParaPortionList::operator [](size_t i) const
{
return maList[i];
}
ContentInfo::ContentInfo( SfxItemPool& rPool ) : aParaAttribs( rPool, EE_PARA_START, EE_CHAR_END ) ContentInfo::ContentInfo( SfxItemPool& rPool ) : aParaAttribs( rPool, EE_PARA_START, EE_CHAR_END )
{ {
eFamily = SFX_STYLE_FAMILY_PARA; eFamily = SFX_STYLE_FAMILY_PARA;
...@@ -740,8 +759,6 @@ void BinTextObject::ClearPortionInfo() ...@@ -740,8 +759,6 @@ void BinTextObject::ClearPortionInfo()
{ {
if ( pPortionInfo ) if ( pPortionInfo )
{ {
for ( sal_uInt16 n = pPortionInfo->Count(); n; )
delete pPortionInfo->GetObject( --n );
delete pPortionInfo; delete pPortionInfo;
pPortionInfo = NULL; pPortionInfo = NULL;
} }
......
...@@ -90,28 +90,23 @@ struct XParaPortion ...@@ -90,28 +90,23 @@ struct XParaPortion
TextPortionList aTextPortions; TextPortionList aTextPortions;
}; };
typedef XParaPortion* XParaPortionPtr; class XParaPortionList
SV_DECL_PTRARR( XBaseParaPortionList, XParaPortionPtr, 0 )
class XParaPortionList : public XBaseParaPortionList
{ {
sal_uIntPtr nRefDevPtr; typedef boost::ptr_vector<XParaPortion> ListType;
ListType maList;
sal_uIntPtr nRefDevPtr;
OutDevType eRefDevType; OutDevType eRefDevType;
MapMode aRefMapMode; MapMode aRefMapMode;
sal_uInt16 nStretchX; sal_uInt16 nStretchX;
sal_uInt16 nStretchY; sal_uInt16 nStretchY;
sal_uLong nPaperWidth; sal_uLong nPaperWidth;
public: public:
XParaPortionList( OutputDevice* pRefDev, sal_uLong nPW, sal_uInt16 _nStretchX, sal_uInt16 _nStretchY ) : XParaPortionList(OutputDevice* pRefDev, sal_uLong nPW, sal_uInt16 _nStretchX, sal_uInt16 _nStretchY);
aRefMapMode( pRefDev->GetMapMode() ),
nStretchX(_nStretchX), void push_back(XParaPortion* p);
nStretchY(_nStretchY) const XParaPortion& operator[](size_t i) const;
{
nRefDevPtr = (sal_uIntPtr)pRefDev; nPaperWidth = nPW;
eRefDevType = pRefDev->GetOutDevType();
}
sal_uIntPtr GetRefDevPtr() const { return nRefDevPtr; } sal_uIntPtr GetRefDevPtr() const { return nRefDevPtr; }
sal_uLong GetPaperWidth() const { return nPaperWidth; } sal_uLong GetPaperWidth() const { return nPaperWidth; }
...@@ -119,6 +114,7 @@ public: ...@@ -119,6 +114,7 @@ public:
const MapMode& GetRefMapMode() const { return aRefMapMode; } const MapMode& GetRefMapMode() const { return aRefMapMode; }
sal_uInt16 GetStretchX() const { return nStretchX; } sal_uInt16 GetStretchX() const { return nStretchX; }
sal_uInt16 GetStretchY() const { return nStretchY; } sal_uInt16 GetStretchY() const { return nStretchY; }
}; };
class ContentInfo class ContentInfo
......
...@@ -1140,7 +1140,7 @@ EditTextObject* ImpEditEngine::CreateBinTextObject( EditSelection aSel, SfxItemP ...@@ -1140,7 +1140,7 @@ EditTextObject* ImpEditEngine::CreateBinTextObject( EditSelection aSel, SfxItemP
{ {
const ParaPortion* pParaPortion = GetParaPortions()[nNode]; const ParaPortion* pParaPortion = GetParaPortions()[nNode];
XParaPortion* pX = new XParaPortion; XParaPortion* pX = new XParaPortion;
pXList->Insert( pX, pXList->Count() ); pXList->push_back(pX);
pX->nHeight = pParaPortion->GetHeight(); pX->nHeight = pParaPortion->GetHeight();
pX->nFirstLineOffset = pParaPortion->GetFirstLineOffset(); pX->nFirstLineOffset = pParaPortion->GetFirstLineOffset();
...@@ -1330,31 +1330,30 @@ EditSelection ImpEditEngine::InsertBinTextObject( BinTextObject& rTextObject, Ed ...@@ -1330,31 +1330,30 @@ EditSelection ImpEditEngine::InsertBinTextObject( BinTextObject& rTextObject, Ed
} }
if ( bNewContent && bUsePortionInfo ) if ( bNewContent && bUsePortionInfo )
{ {
XParaPortion* pXP = pPortionInfo->GetObject( n ); const XParaPortion& rXP = (*pPortionInfo)[n];
DBG_ASSERT( pXP, "InsertBinTextObject: PortionInfo?" );
ParaPortion* pParaPortion = GetParaPortions()[ nPara ]; ParaPortion* pParaPortion = GetParaPortions()[ nPara ];
DBG_ASSERT( pParaPortion, "InsertBinTextObject: ParaPortion?" ); DBG_ASSERT( pParaPortion, "InsertBinTextObject: ParaPortion?" );
pParaPortion->nHeight = pXP->nHeight; pParaPortion->nHeight = rXP.nHeight;
pParaPortion->nFirstLineOffset = pXP->nFirstLineOffset; pParaPortion->nFirstLineOffset = rXP.nFirstLineOffset;
pParaPortion->bForceRepaint = sal_True; pParaPortion->bForceRepaint = sal_True;
pParaPortion->SetValid(); // Do not format pParaPortion->SetValid(); // Do not format
// The Text Portions // The Text Portions
pParaPortion->GetTextPortions().Reset(); pParaPortion->GetTextPortions().Reset();
sal_uInt16 nCount = pXP->aTextPortions.Count(); sal_uInt16 nCount = rXP.aTextPortions.Count();
for ( sal_uInt16 _n = 0; _n < nCount; _n++ ) for ( sal_uInt16 _n = 0; _n < nCount; _n++ )
{ {
TextPortion* pTextPortion = pXP->aTextPortions[_n]; const TextPortion* pTextPortion = rXP.aTextPortions[_n];
TextPortion* pNew = new TextPortion( *pTextPortion ); TextPortion* pNew = new TextPortion( *pTextPortion );
pParaPortion->GetTextPortions().Insert(_n, pNew); pParaPortion->GetTextPortions().Insert(_n, pNew);
} }
// The lines // The lines
pParaPortion->GetLines().Reset(); pParaPortion->GetLines().Reset();
nCount = pXP->aLines.Count(); nCount = rXP.aLines.Count();
for ( sal_uInt16 m = 0; m < nCount; m++ ) for ( sal_uInt16 m = 0; m < nCount; m++ )
{ {
EditLine* pLine = pXP->aLines[m]; const EditLine* pLine = rXP.aLines[m];
EditLine* pNew = pLine->Clone(); EditLine* pNew = pLine->Clone();
pNew->SetInvalid(); // Paint again! pNew->SetInvalid(); // Paint again!
pParaPortion->GetLines().Insert(m, pNew); pParaPortion->GetLines().Insert(m, pNew);
......
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