summaryrefslogtreecommitdiff
path: root/editeng/source/outliner
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2013-05-08 18:12:32 +0200
committerEike Rathke <erack@redhat.com>2013-05-10 14:01:38 +0000
commit2af1f5691e8d64afd5246d245d7876b5a2cd5cd8 (patch)
treee8a51d852010730d4af4a14d445664cf8ee6475c /editeng/source/outliner
parentebef182253e7d49c5439ab5053a7243ad24207a7 (diff)
resolved fdo#35756 import more than 64k HTML table cells
Enhanced EditEngine to be able to hold more than 64k paragraphs. Used also in RTF import Calc and Writer, so that could benefit as well. * changed all EditEngine,Outliner,... related paragraph index/count variables from sal_uInt16 to sal_Int32 * sal_Int32 instead of sal_uInt32 to match accessibility API * matched some Outliner methods' paragraph parameters from sal_uLong to sal_Int32 * containers capable to hold size_t nevertheless are limited to a maximum of sal_Int32 * changed definition of EE_PARA_NOT_FOUND and EE_PARA_ALL to SAL_MAX_INT32 + added EE_PARA_MAX_COUNT and EE_TEXTPOS_MAX_COUNT to initialize ESelection with what previously were hard coded 0xFFFF all over the place + for similar reason added EE_TEXTPOS_ALL corresponding to EE_PARA_ALL to initialize an ESelection spanning all available text like aSel(0,0,EE_PARA_ALL,EE_TEXTPOS_ALL) Change-Id: I62d1b9c399cd709a4f93dbac31b219a61c46ec00 Reviewed-on: https://gerrit.libreoffice.org/3838 Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'editeng/source/outliner')
-rw-r--r--editeng/source/outliner/outleeng.cxx32
-rw-r--r--editeng/source/outliner/outleeng.hxx26
-rw-r--r--editeng/source/outliner/outlin2.cxx38
-rw-r--r--editeng/source/outliner/outliner.cxx218
-rw-r--r--editeng/source/outliner/outlobj.cxx22
-rw-r--r--editeng/source/outliner/outlundo.cxx14
-rw-r--r--editeng/source/outliner/outlundo.hxx18
-rw-r--r--editeng/source/outliner/outlvw.cxx135
-rw-r--r--editeng/source/outliner/paralist.cxx58
-rw-r--r--editeng/source/outliner/paralist.hxx27
10 files changed, 295 insertions, 293 deletions
diff --git a/editeng/source/outliner/outleeng.cxx b/editeng/source/outliner/outleeng.cxx
index 457a90384469..858b22b6c72a 100644
--- a/editeng/source/outliner/outleeng.cxx
+++ b/editeng/source/outliner/outleeng.cxx
@@ -44,7 +44,7 @@ OutlinerEditEng::~OutlinerEditEng()
{
}
-void OutlinerEditEng::PaintingFirstLine( sal_uInt16 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
+void OutlinerEditEng::PaintingFirstLine( sal_Int32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
{
if( GetControlWord() & EE_CNTRL_OUTLINER )
{
@@ -55,7 +55,7 @@ void OutlinerEditEng::PaintingFirstLine( sal_uInt16 nPara, const Point& rStartPo
pOwner->PaintBullet( nPara, rStartPos, rOrigin, nOrientation, pOutDev );
}
-const SvxNumberFormat* OutlinerEditEng::GetNumberFormat( sal_uInt16 nPara ) const
+const SvxNumberFormat* OutlinerEditEng::GetNumberFormat( sal_Int32 nPara ) const
{
const SvxNumberFormat* pFmt = NULL;
if (pOwner)
@@ -64,7 +64,7 @@ const SvxNumberFormat* OutlinerEditEng::GetNumberFormat( sal_uInt16 nPara ) cons
}
-Rectangle OutlinerEditEng::GetBulletArea( sal_uInt16 nPara )
+Rectangle OutlinerEditEng::GetBulletArea( sal_Int32 nPara )
{
Rectangle aBulletArea = Rectangle( Point(), Point() );
if ( nPara < pOwner->pParaList->GetParagraphCount() )
@@ -75,21 +75,21 @@ Rectangle OutlinerEditEng::GetBulletArea( sal_uInt16 nPara )
return aBulletArea;
}
-void OutlinerEditEng::ParagraphInserted( sal_uInt16 nNewParagraph )
+void OutlinerEditEng::ParagraphInserted( sal_Int32 nNewParagraph )
{
pOwner->ParagraphInserted( nNewParagraph );
EditEngine::ParagraphInserted( nNewParagraph );
}
-void OutlinerEditEng::ParagraphDeleted( sal_uInt16 nDeletedParagraph )
+void OutlinerEditEng::ParagraphDeleted( sal_Int32 nDeletedParagraph )
{
pOwner->ParagraphDeleted( nDeletedParagraph );
EditEngine::ParagraphDeleted( nDeletedParagraph );
}
-void OutlinerEditEng::ParagraphConnected( sal_uInt16 /*nLeftParagraph*/, sal_uInt16 nRightParagraph )
+void OutlinerEditEng::ParagraphConnected( sal_Int32 /*nLeftParagraph*/, sal_Int32 nRightParagraph )
{
if( pOwner && pOwner->IsUndoEnabled() && !const_cast<EditEngine&>(pOwner->GetEditEngine()).IsInUndo() )
{
@@ -107,7 +107,7 @@ void OutlinerEditEng::StyleSheetChanged( SfxStyleSheet* pStyle )
pOwner->StyleSheetChanged( pStyle );
}
-void OutlinerEditEng::ParaAttribsChanged( sal_uInt16 nPara )
+void OutlinerEditEng::ParaAttribsChanged( sal_Int32 nPara )
{
pOwner->ParaAttribsChanged( nPara );
}
@@ -147,7 +147,7 @@ XubString OutlinerEditEng::GetUndoComment( sal_uInt16 nUndoId ) const
}
void OutlinerEditEng::DrawingText( const Point& rStartPos, const XubString& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen,
- const sal_Int32* pDXArray, const SvxFont& rFont, sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
+ const sal_Int32* pDXArray, const SvxFont& rFont, sal_Int32 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
const EEngineData::WrongSpellVector* pWrongSpellVector,
const SvxFieldData* pFieldData,
bool bEndOfLine,
@@ -162,7 +162,7 @@ void OutlinerEditEng::DrawingText( const Point& rStartPos, const XubString& rTex
}
void OutlinerEditEng::DrawingTab( const Point& rStartPos, long nWidth, const String& rChar,
- const SvxFont& rFont, sal_uInt16 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
+ const SvxFont& rFont, sal_Int32 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
bool bEndOfLine, bool bEndOfParagraph,
const Color& rOverlineColor, const Color& rTextLineColor)
{
@@ -170,23 +170,23 @@ void OutlinerEditEng::DrawingTab( const Point& rStartPos, long nWidth, const Str
bEndOfLine, bEndOfParagraph, rOverlineColor, rTextLineColor );
}
-void OutlinerEditEng::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos )
+void OutlinerEditEng::FieldClicked( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos )
{
EditEngine::FieldClicked( rField, nPara, nPos ); // If URL
pOwner->FieldClicked( rField, nPara, nPos );
}
-void OutlinerEditEng::FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos )
+void OutlinerEditEng::FieldSelected( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos )
{
pOwner->FieldSelected( rField, nPara, nPos );
}
-OUString OutlinerEditEng::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
+OUString OutlinerEditEng::CalcFieldValue( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
{
return pOwner->CalcFieldValue( rField, nPara, nPos, rpTxtColor, rpFldColor );
}
-void OutlinerEditEng::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void OutlinerEditEng::SetParaAttribs( sal_Int32 nPara, const SfxItemSet& rSet )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
if( pPara )
@@ -194,13 +194,13 @@ void OutlinerEditEng::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
if ( !IsInUndo() && IsUndoEnabled() )
pOwner->UndoActionStart( OLUNDO_ATTR );
- EditEngine::SetParaAttribs( (sal_uInt16)nPara, rSet );
+ EditEngine::SetParaAttribs( nPara, rSet );
- pOwner->ImplCheckNumBulletItem( (sal_uInt16)nPara );
+ pOwner->ImplCheckNumBulletItem( nPara );
// #i100014#
// It is not a good idea to substract 1 from a count and cast the result
// to sal_uInt16 without check, if the count is 0.
- pOwner->ImplCheckParagraphs( (sal_uInt16)nPara, (sal_uInt16) (pOwner->pParaList->GetParagraphCount()) );
+ pOwner->ImplCheckParagraphs( nPara, pOwner->pParaList->GetParagraphCount() );
if ( !IsInUndo() && IsUndoEnabled() )
pOwner->UndoActionEnd( OLUNDO_ATTR );
diff --git a/editeng/source/outliner/outleeng.hxx b/editeng/source/outliner/outleeng.hxx
index cbf90a0060d8..59b4958ceb67 100644
--- a/editeng/source/outliner/outleeng.hxx
+++ b/editeng/source/outliner/outleeng.hxx
@@ -32,21 +32,21 @@ protected:
// derived from EditEngine. Allows Outliner objetcs to provide
// bullet access to the EditEngine.
- virtual const SvxNumberFormat* GetNumberFormat( sal_uInt16 nPara ) const;
+ virtual const SvxNumberFormat* GetNumberFormat( sal_Int32 nPara ) const;
public:
OutlinerEditEng( Outliner* pOwner, SfxItemPool* pPool );
~OutlinerEditEng();
- virtual void PaintingFirstLine( sal_uInt16 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
+ virtual void PaintingFirstLine( sal_Int32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
- virtual void ParagraphInserted( sal_uInt16 nNewParagraph );
- virtual void ParagraphDeleted( sal_uInt16 nDeletedParagraph );
- virtual void ParagraphConnected( sal_uInt16 nLeftParagraph, sal_uInt16 nRightParagraph );
+ virtual void ParagraphInserted( sal_Int32 nNewParagraph );
+ virtual void ParagraphDeleted( sal_Int32 nDeletedParagraph );
+ virtual void ParagraphConnected( sal_Int32 nLeftParagraph, sal_Int32 nRightParagraph );
virtual void DrawingText(
const Point& rStartPos, const XubString& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen, const sal_Int32* pDXArray, const SvxFont& rFont,
- sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
+ sal_Int32 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
const EEngineData::WrongSpellVector* pWrongSpellVector,
const SvxFieldData* pFieldData,
bool bEndOfLine,
@@ -58,27 +58,27 @@ public:
virtual void DrawingTab(
const Point& rStartPos, long nWidth, const String& rChar,
- const SvxFont& rFont, sal_uInt16 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
+ const SvxFont& rFont, sal_Int32 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
bool bEndOfLine,
bool bEndOfParagraph,
const Color& rOverlineColor,
const Color& rTextLineColor);
virtual void StyleSheetChanged( SfxStyleSheet* pStyle );
- virtual void ParaAttribsChanged( sal_uInt16 nPara );
+ virtual void ParaAttribsChanged( sal_Int32 nPara );
virtual sal_Bool SpellNextDocument();
virtual XubString GetUndoComment( sal_uInt16 nUndoId ) const;
// for text conversion
virtual sal_Bool ConvertNextDocument();
- virtual void FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos );
- virtual void FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos );
- virtual OUString CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor );
+ virtual void FieldClicked( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos );
+ virtual void FieldSelected( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos );
+ virtual OUString CalcFieldValue( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos, Color*& rTxtColor, Color*& rFldColor );
- virtual Rectangle GetBulletArea( sal_uInt16 nPara );
+ virtual Rectangle GetBulletArea( sal_Int32 nPara );
- virtual void SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
+ virtual void SetParaAttribs( sal_Int32 nPara, const SfxItemSet& rSet );
// belongs into class Outliner, move there before incompatible update!
Link aOutlinerNotifyHdl;
diff --git a/editeng/source/outliner/outlin2.cxx b/editeng/source/outliner/outlin2.cxx
index 096fff9ca99c..b3fe7dbd647b 100644
--- a/editeng/source/outliner/outlin2.cxx
+++ b/editeng/source/outliner/outlin2.cxx
@@ -193,7 +193,7 @@ String Outliner::GetWordDelimiters() const
return pEditEngine->GetWordDelimiters();
}
-String Outliner::GetWord( sal_uInt16 nPara, sal_uInt16 nIndex )
+String Outliner::GetWord( sal_Int32 nPara, sal_uInt16 nIndex )
{
DBG_CHKTHIS(Outliner,0);
return pEditEngine->GetWord( nPara, nIndex );
@@ -277,7 +277,7 @@ Paragraph* Outliner::GetParent( Paragraph* pParagraph ) const
return pParaList->GetParent( pParagraph );
}
-sal_uLong Outliner::GetChildCount( Paragraph* pParent ) const
+sal_Int32 Outliner::GetChildCount( Paragraph* pParent ) const
{
DBG_CHKTHIS(Outliner,0);
return pParaList->GetChildCount( pParent );
@@ -307,10 +307,10 @@ SfxStyleSheetPool* Outliner::GetStyleSheetPool()
return pEditEngine->GetStyleSheetPool();
}
-SfxStyleSheet* Outliner::GetStyleSheet( sal_uLong nPara )
+SfxStyleSheet* Outliner::GetStyleSheet( sal_Int32 nPara )
{
DBG_CHKTHIS(Outliner,0);
- return pEditEngine->GetStyleSheet( (sal_uInt16)nPara );
+ return pEditEngine->GetStyleSheet( nPara );
}
sal_Bool Outliner::IsInSelectionMode() const
@@ -373,25 +373,25 @@ sal_Bool Outliner::IsInUndo()
return pEditEngine->IsInUndo();
}
-sal_uLong Outliner::GetLineCount( sal_uLong nParagraph ) const
+sal_uLong Outliner::GetLineCount( sal_Int32 nParagraph ) const
{
DBG_CHKTHIS(Outliner,0);
- return pEditEngine->GetLineCount( (sal_uInt16)nParagraph );
+ return pEditEngine->GetLineCount( nParagraph );
}
-sal_uInt16 Outliner::GetLineLen( sal_uLong nParagraph, sal_uInt16 nLine ) const
+sal_uInt16 Outliner::GetLineLen( sal_Int32 nParagraph, sal_uInt16 nLine ) const
{
DBG_CHKTHIS(Outliner,0);
- return pEditEngine->GetLineLen( (sal_uInt16)nParagraph, nLine );
+ return pEditEngine->GetLineLen( nParagraph, nLine );
}
-sal_uLong Outliner::GetLineHeight( sal_uLong nParagraph, sal_uLong nLine )
+sal_uLong Outliner::GetLineHeight( sal_Int32 nParagraph, sal_uInt16 nLine )
{
DBG_CHKTHIS(Outliner,0);
- return pEditEngine->GetLineHeight( (sal_uInt16)nParagraph, (sal_uInt16)nLine );
+ return pEditEngine->GetLineHeight( nParagraph, nLine );
}
-void Outliner::QuickRemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich )
+void Outliner::QuickRemoveCharAttribs( sal_Int32 nPara, sal_uInt16 nWhich )
{
DBG_CHKTHIS(Outliner,0);
pEditEngine->QuickRemoveCharAttribs( nPara, nWhich );
@@ -487,10 +487,10 @@ OutputDevice* Outliner::GetRefDevice() const
return pEditEngine->GetRefDevice();
}
-sal_uLong Outliner::GetTextHeight( sal_uLong nParagraph ) const
+sal_uLong Outliner::GetTextHeight( sal_Int32 nParagraph ) const
{
DBG_CHKTHIS(Outliner,0);
- return pEditEngine->GetTextHeight((sal_uInt16)nParagraph );
+ return pEditEngine->GetTextHeight(nParagraph );
}
Point Outliner::GetDocPos( const Point& rPaperPos ) const
@@ -499,10 +499,10 @@ Point Outliner::GetDocPos( const Point& rPaperPos ) const
return pEditEngine->GetDocPos( rPaperPos );
}
-Point Outliner::GetDocPosTopLeft( sal_uLong nParagraph )
+Point Outliner::GetDocPosTopLeft( sal_Int32 nParagraph )
{
DBG_CHKTHIS(Outliner,0);
- return pEditEngine->GetDocPosTopLeft( (sal_uInt16)nParagraph );
+ return pEditEngine->GetDocPosTopLeft( nParagraph );
}
sal_Bool Outliner::IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder )
@@ -519,7 +519,7 @@ sal_Bool Outliner::IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder, sal_Bo
if ( !bTextPos )
{
Point aDocPos = GetDocPos( rPaperPos );
- sal_uInt16 nPara = pEditEngine->FindParagraph( aDocPos.Y() );
+ sal_Int32 nPara = pEditEngine->FindParagraph( aDocPos.Y() );
if ( ( nPara != EE_PARA_NOT_FOUND ) && ImplHasBullet( nPara ) )
{
Rectangle aBulArea = ImpCalcBulletArea( nPara, sal_True, sal_True );
@@ -578,8 +578,8 @@ void Outliner::SetGlobalCharStretching( sal_uInt16 nX, sal_uInt16 nY )
DBG_CHKTHIS(Outliner,0);
// reset bullet size
- sal_uInt16 nParagraphs = (sal_uInt16)pParaList->GetParagraphCount();
- for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+ sal_Int32 nParagraphs = pParaList->GetParagraphCount();
+ for ( sal_Int32 nPara = 0; nPara < nParagraphs; nPara++ )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
if ( pPara )
@@ -642,7 +642,7 @@ sal_uInt16 Outliner::GetScriptType( const ESelection& rSelection ) const
return pEditEngine->GetScriptType( rSelection );
}
-LanguageType Outliner::GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const
+LanguageType Outliner::GetLanguage( sal_Int32 nPara, sal_uInt16 nPos ) const
{
DBG_CHKTHIS(Outliner,0);
return pEditEngine->GetLanguage( nPara, nPos );
diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx
index c28ca8099b6e..3782bb4f69e9 100644
--- a/editeng/source/outliner/outliner.cxx
+++ b/editeng/source/outliner/outliner.cxx
@@ -75,7 +75,7 @@ void Outliner::ImplCheckDepth( sal_Int16& rnDepth ) const
rnDepth = nMaxDepth;
}
-Paragraph* Outliner::Insert(const XubString& rText, sal_uLong nAbsPos, sal_Int16 nDepth)
+Paragraph* Outliner::Insert(const XubString& rText, sal_Int32 nAbsPos, sal_Int16 nDepth)
{
DBG_CHKTHIS(Outliner,0);
DBG_ASSERT(pParaList->GetParagraphCount(),"Insert:No Paras");
@@ -84,7 +84,7 @@ Paragraph* Outliner::Insert(const XubString& rText, sal_uLong nAbsPos, sal_Int16
ImplCheckDepth( nDepth );
- sal_uLong nParagraphCount = pParaList->GetParagraphCount();
+ sal_Int32 nParagraphCount = pParaList->GetParagraphCount();
if( nAbsPos > nParagraphCount )
nAbsPos = nParagraphCount;
@@ -109,9 +109,9 @@ Paragraph* Outliner::Insert(const XubString& rText, sal_uLong nAbsPos, sal_Int16
ImplBlockInsertionCallbacks( sal_True );
pPara = new Paragraph( nDepth );
pParaList->Insert( pPara, nAbsPos );
- pEditEngine->InsertParagraph( (sal_uInt16)nAbsPos, String() );
+ pEditEngine->InsertParagraph( nAbsPos, String() );
DBG_ASSERT(pPara==pParaList->GetParagraph(nAbsPos),"Insert:Failed");
- ImplInitDepth( (sal_uInt16)nAbsPos, nDepth, sal_False );
+ ImplInitDepth( nAbsPos, nDepth, sal_False );
pHdlParagraph = pPara;
ParagraphInsertedHdl();
pPara->nFlags |= PARAFLAG_HOLDDEPTH;
@@ -125,7 +125,7 @@ Paragraph* Outliner::Insert(const XubString& rText, sal_uLong nAbsPos, sal_Int16
}
-void Outliner::ParagraphInserted( sal_uInt16 nPara )
+void Outliner::ParagraphInserted( sal_Int32 nPara )
{
DBG_CHKTHIS(Outliner,0);
@@ -163,7 +163,7 @@ void Outliner::ParagraphInserted( sal_uInt16 nPara )
}
}
-void Outliner::ParagraphDeleted( sal_uInt16 nPara )
+void Outliner::ParagraphDeleted( sal_Int32 nPara )
{
DBG_CHKTHIS(Outliner,0);
@@ -243,8 +243,8 @@ void Outliner::SetMaxDepth( sal_Int16 nDepth, sal_Bool bCheckParagraphs )
if( bCheckParagraphs )
{
- sal_uInt16 nParagraphs = (sal_uInt16)pParaList->GetParagraphCount();
- for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
+ sal_Int32 nParagraphs = pParaList->GetParagraphCount();
+ for ( sal_Int32 nPara = 0; nPara < nParagraphs; nPara++ )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
if( pPara && pPara->GetDepth() > nMaxDepth )
@@ -256,7 +256,7 @@ void Outliner::SetMaxDepth( sal_Int16 nDepth, sal_Bool bCheckParagraphs )
}
}
-sal_Int16 Outliner::GetDepth( sal_uLong nPara ) const
+sal_Int16 Outliner::GetDepth( sal_Int32 nPara ) const
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
DBG_ASSERT( pPara, "Outliner::GetDepth - Paragraph not found!" );
@@ -275,7 +275,7 @@ void Outliner::SetDepth( Paragraph* pPara, sal_Int16 nNewDepth )
mnDepthChangeHdlPrevFlags = pPara->nFlags;
pHdlParagraph = pPara;
- sal_uInt16 nPara = (sal_uInt16)GetAbsPos( pPara );
+ sal_Int32 nPara = GetAbsPos( pPara );
ImplInitDepth( nPara, nNewDepth, sal_True );
ImplCalcBulletText( nPara, sal_False, sal_False );
@@ -286,14 +286,14 @@ void Outliner::SetDepth( Paragraph* pPara, sal_Int16 nNewDepth )
}
}
-sal_Int16 Outliner::GetNumberingStartValue( sal_uInt16 nPara )
+sal_Int16 Outliner::GetNumberingStartValue( sal_Int32 nPara )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
DBG_ASSERT( pPara, "Outliner::GetNumberingStartValue - Paragraph not found!" );
return pPara ? pPara->GetNumberingStartValue() : -1;
}
-void Outliner::SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingStartValue )
+void Outliner::SetNumberingStartValue( sal_Int32 nPara, sal_Int16 nNumberingStartValue )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
DBG_ASSERT( pPara, "Outliner::GetNumberingStartValue - Paragraph not found!" );
@@ -305,22 +305,19 @@ void Outliner::SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingSta
pPara->IsParaIsNumberingRestart(), pPara->IsParaIsNumberingRestart() ) );
pPara->SetNumberingStartValue( nNumberingStartValue );
- // #i100014#
- // It is not a good idea to substract 1 from a count and cast the result
- // to sal_uInt16 without check, if the count is 0.
- ImplCheckParagraphs( nPara, (sal_uInt16) (pParaList->GetParagraphCount()) );
+ ImplCheckParagraphs( nPara, pParaList->GetParagraphCount() );
pEditEngine->SetModified();
}
}
-sal_Bool Outliner::IsParaIsNumberingRestart( sal_uInt16 nPara )
+sal_Bool Outliner::IsParaIsNumberingRestart( sal_Int32 nPara )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
DBG_ASSERT( pPara, "Outliner::IsParaIsNumberingRestart - Paragraph not found!" );
return pPara ? pPara->IsParaIsNumberingRestart() : sal_False;
}
-void Outliner::SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumberingRestart )
+void Outliner::SetParaIsNumberingRestart( sal_Int32 nPara, sal_Bool bParaIsNumberingRestart )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
DBG_ASSERT( pPara, "Outliner::SetParaIsNumberingRestart - Paragraph not found!" );
@@ -332,22 +329,18 @@ void Outliner::SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumb
pPara->IsParaIsNumberingRestart(), bParaIsNumberingRestart ) );
pPara->SetParaIsNumberingRestart( bParaIsNumberingRestart );
- // #i100014#
- // It is not a good idea to substract 1 from a count and cast the result
- // to sal_uInt16 without check, if the count is 0.
- ImplCheckParagraphs( nPara, (sal_uInt16) (pParaList->GetParagraphCount()) );
+ ImplCheckParagraphs( nPara, pParaList->GetParagraphCount() );
pEditEngine->SetModified();
}
}
-OutlinerParaObject* Outliner::CreateParaObject( sal_uInt16 nStartPara, sal_uInt16 nCount ) const
+OutlinerParaObject* Outliner::CreateParaObject( sal_Int32 nStartPara, sal_Int32 nCount ) const
{
DBG_CHKTHIS(Outliner,0);
- if ( sal::static_int_cast< sal_uLong >( nStartPara + nCount ) >
- pParaList->GetParagraphCount() )
- nCount = sal::static_int_cast< sal_uInt16 >(
- pParaList->GetParagraphCount() - nStartPara );
+ if ( static_cast<sal_uLong>(nStartPara) + nCount >
+ static_cast<sal_uLong>(pParaList->GetParagraphCount()) )
+ nCount = pParaList->GetParagraphCount() - nStartPara;
// When a new OutlinerParaObject is created because a paragraph is just beeing deleted,
// it can happen that the ParaList is not updated yet...
@@ -360,9 +353,9 @@ OutlinerParaObject* Outliner::CreateParaObject( sal_uInt16 nStartPara, sal_uInt1
EditTextObject* pText = pEditEngine->CreateTextObject( nStartPara, nCount );
const bool bIsEditDoc(OUTLINERMODE_TEXTOBJECT == ImplGetOutlinerMode());
ParagraphDataVector aParagraphDataVector(nCount);
- const sal_uInt16 nLastPara(nStartPara + nCount - 1);
+ const sal_Int32 nLastPara(nStartPara + nCount - 1);
- for(sal_uInt16 nPara(nStartPara); nPara <= nLastPara; nPara++)
+ for(sal_Int32 nPara(nStartPara); nPara <= nLastPara; nPara++)
{
aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara);
}
@@ -383,7 +376,7 @@ void Outliner::SetText( const XubString& rText, Paragraph* pPara )
pEditEngine->SetUpdateMode( sal_False );
ImplBlockInsertionCallbacks( sal_True );
- sal_uInt16 nPara = (sal_uInt16)pParaList->GetAbsPos( pPara );
+ sal_Int32 nPara = pParaList->GetAbsPos( pPara );
if( !rText.Len() )
{
@@ -399,7 +392,7 @@ void Outliner::SetText( const XubString& rText, Paragraph* pPara )
sal_uInt16 nCount = comphelper::string::getTokenCount(aText, '\x0A');
sal_uInt16 nPos = 0;
- sal_uInt16 nInsPos = nPara+1;
+ sal_Int32 nInsPos = nPara+1;
while( nCount > nPos )
{
XubString aStr = aText.GetToken( nPos, '\x0A' );
@@ -460,7 +453,7 @@ void Outliner::SetText( const XubString& rText, Paragraph* pPara )
// pView == 0 -> Ignore tabs
-bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
+bool Outliner::ImpConvertEdtToOut( sal_Int32 nPara,EditView* pView)
{
DBG_CHKTHIS(Outliner,0);
@@ -468,19 +461,19 @@ bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
sal_uInt16 nTabs = 0;
ESelection aDelSel;
-// const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( (sal_uInt16)nPara );
+// const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( nPara );
// bool bAlreadyOutliner = rAttrs.GetItemState( EE_PARA_OUTLLRSPACE ) == SFX_ITEM_ON ? true : false;
XubString aName;
XubString aHeading_US( RTL_CONSTASCII_USTRINGPARAM( "heading" ) );
XubString aNumber_US( RTL_CONSTASCII_USTRINGPARAM( "Numbering" ) );
- XubString aStr( pEditEngine->GetText( (sal_uInt16)nPara ) );
+ XubString aStr( pEditEngine->GetText( nPara ) );
sal_Unicode* pPtr = (sal_Unicode*)aStr.GetBuffer();
sal_uInt16 nHeadingNumberStart = 0;
sal_uInt16 nNumberingNumberStart = 0;
- SfxStyleSheet* pStyle= pEditEngine->GetStyleSheet( (sal_uInt16)nPara );
+ SfxStyleSheet* pStyle= pEditEngine->GetStyleSheet( nPara );
if( pStyle )
{
aName = pStyle->GetName();
@@ -498,7 +491,7 @@ bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
( pPtr[0] != '\t' ) && ( pPtr[1] == '\t' ) )
{
// Extract Bullet and Tab
- aDelSel = ESelection( (sal_uInt16)nPara, 0, (sal_uInt16)nPara, 2 );
+ aDelSel = ESelection( nPara, 0, nPara, 2 );
}
sal_uInt16 nPos = nHeadingNumberStart ? nHeadingNumberStart : nNumberingNumberStart;
@@ -518,7 +511,7 @@ bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
}
// Remove tabs from the text
if( nTabs )
- aDelSel = ESelection( (sal_uInt16)nPara, 0, (sal_uInt16)nPara, nTabs );
+ aDelSel = ESelection( nPara, 0, nPara, nTabs );
}
if ( aDelSel.HasRange() )
@@ -532,11 +525,11 @@ bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
pEditEngine->QuickDelete( aDelSel );
}
- const SfxInt16Item& rLevel = (const SfxInt16Item&) pEditEngine->GetParaAttrib( sal::static_int_cast< sal_uInt16 >(nPara), EE_PARA_OUTLLEVEL );
+ const SfxInt16Item& rLevel = (const SfxInt16Item&) pEditEngine->GetParaAttrib( nPara, EE_PARA_OUTLLEVEL );
sal_Int16 nOutlLevel = rLevel.GetValue();
ImplCheckDepth( nOutlLevel );
- ImplInitDepth( sal::static_int_cast< sal_uInt16 >(nPara), nOutlLevel, sal_False );
+ ImplInitDepth( nPara, nOutlLevel, sal_False );
return bConverted;
}
@@ -559,7 +552,7 @@ void Outliner::SetText( const OutlinerParaObject& rPObj )
bFirstParaIsEmpty = sal_False;
pParaList->Clear( sal_True );
- for( sal_uInt16 nCurPara = 0; nCurPara < rPObj.Count(); nCurPara++ )
+ for( sal_Int32 nCurPara = 0; nCurPara < rPObj.Count(); nCurPara++ )
{
Paragraph* pPara = new Paragraph( rPObj.GetParagraphData(nCurPara));
ImplCheckDepth( pPara->nDepth );
@@ -568,10 +561,7 @@ void Outliner::SetText( const OutlinerParaObject& rPObj )
ImplCheckNumBulletItem( nCurPara );
}
- // #i100014#
- // It is not a good idea to substract 1 from a count and cast the result
- // to sal_uInt16 without check, if the count is 0.
- ImplCheckParagraphs( 0, (sal_uInt16) (pParaList->GetParagraphCount()) );
+ ImplCheckParagraphs( 0, pParaList->GetParagraphCount() );
EnableUndo( bUndo );
ImplBlockInsertionCallbacks( sal_False );
@@ -590,7 +580,7 @@ void Outliner::AddText( const OutlinerParaObject& rPObj )
pEditEngine->SetUpdateMode( sal_False );
ImplBlockInsertionCallbacks( sal_True );
- sal_uLong nPara;
+ sal_Int32 nPara;
if( bFirstParaIsEmpty )
{
pParaList->Clear( sal_True );
@@ -604,26 +594,23 @@ void Outliner::AddText( const OutlinerParaObject& rPObj )
}
bFirstParaIsEmpty = sal_False;
- for( sal_uInt16 n = 0; n < rPObj.Count(); n++ )
+ for( sal_Int32 n = 0; n < rPObj.Count(); n++ )
{
pPara = new Paragraph( rPObj.GetParagraphData(n) );
pParaList->Append(pPara);
- sal_uInt16 nP = sal::static_int_cast< sal_uInt16 >(nPara+n);
+ sal_Int32 nP = nPara+n;
DBG_ASSERT(pParaList->GetAbsPos(pPara)==nP,"AddText:Out of sync");
ImplInitDepth( nP, pPara->GetDepth(), sal_False );
}
DBG_ASSERT( pEditEngine->GetParagraphCount()==pParaList->GetParagraphCount(), "SetText: OutOfSync" );
- // #i100014#
- // It is not a good idea to substract 1 from a count and cast the result
- // to sal_uInt16 without check, if the count is 0.
- ImplCheckParagraphs( (sal_uInt16)nPara, (sal_uInt16) (pParaList->GetParagraphCount()) );
+ ImplCheckParagraphs( nPara, pParaList->GetParagraphCount() );
ImplBlockInsertionCallbacks( sal_False );
pEditEngine->SetUpdateMode( bUpdate );
}
-void Outliner::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos )
+void Outliner::FieldClicked( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos )
{
DBG_CHKTHIS(Outliner,0);
@@ -636,7 +623,7 @@ void Outliner::FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, sal_u
}
-void Outliner::FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos )
+void Outliner::FieldSelected( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos )
{
DBG_CHKTHIS(Outliner,0);
if ( !aFieldClickedHdl.IsSet() )
@@ -648,7 +635,7 @@ void Outliner::FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, sal_
}
-OUString Outliner::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
+OUString Outliner::CalcFieldValue( const SvxFieldItem& rField, sal_Int32 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor )
{
DBG_CHKTHIS(Outliner,0);
if ( !aCalcFieldValueHdl.IsSet() )
@@ -672,26 +659,26 @@ OUString Outliner::CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara,
return aFldInfo.GetRepresentation();
}
-void Outliner::SetStyleSheet( sal_uLong nPara, SfxStyleSheet* pStyle )
+void Outliner::SetStyleSheet( sal_Int32 nPara, SfxStyleSheet* pStyle )
{
DBG_CHKTHIS(Outliner,0);
Paragraph* pPara = pParaList->GetParagraph( nPara );
if (pPara)
{
- pEditEngine->SetStyleSheet( (sal_uInt16)nPara, pStyle );
+ pEditEngine->SetStyleSheet( nPara, pStyle );
pPara->nFlags |= PARAFLAG_SETBULLETTEXT;
- ImplCheckNumBulletItem( (sal_uInt16) nPara );
+ ImplCheckNumBulletItem( nPara );
}
}
-void Outliner::ImplCheckNumBulletItem( sal_uInt16 nPara )
+void Outliner::ImplCheckNumBulletItem( sal_Int32 nPara )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
if (pPara)
pPara->aBulSize.Width() = -1;
}
-void Outliner::ImplSetLevelDependendStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pLevelStyle )
+void Outliner::ImplSetLevelDependendStyleSheet( sal_Int32 nPara, SfxStyleSheet* pLevelStyle )
{
DBG_CHKTHIS(Outliner,0);
@@ -726,7 +713,7 @@ void Outliner::ImplSetLevelDependendStyleSheet( sal_uInt16 nPara, SfxStyleSheet*
}
}
-void Outliner::ImplInitDepth( sal_uInt16 nPara, sal_Int16 nDepth, sal_Bool bCreateUndo, sal_Bool bUndoAction )
+void Outliner::ImplInitDepth( sal_Int32 nPara, sal_Int16 nDepth, sal_Bool bCreateUndo, sal_Bool bUndoAction )
{
DBG_CHKTHIS(Outliner,0);
@@ -766,7 +753,7 @@ void Outliner::ImplInitDepth( sal_uInt16 nPara, sal_Int16 nDepth, sal_Bool bCrea
}
}
-void Outliner::SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet )
+void Outliner::SetParaAttribs( sal_Int32 nPara, const SfxItemSet& rSet )
{
DBG_CHKTHIS(Outliner,0);
@@ -786,7 +773,7 @@ sal_Bool Outliner::Expand( Paragraph* pPara )
UndoActionStart( OLUNDO_EXPAND );
pUndo = new OLUndoExpand( this, OLUNDO_EXPAND );
pUndo->pParas = 0;
- pUndo->nCount = (sal_uInt16)pParaList->GetAbsPos( pPara );
+ pUndo->nCount = pParaList->GetAbsPos( pPara );
}
pHdlParagraph = pPara;
bIsExpanding = sal_True;
@@ -819,7 +806,7 @@ sal_Bool Outliner::Collapse( Paragraph* pPara )
UndoActionStart( OLUNDO_COLLAPSE );
pUndo = new OLUndoExpand( this, OLUNDO_COLLAPSE );
pUndo->pParas = 0;
- pUndo->nCount = (sal_uInt16)pParaList->GetAbsPos( pPara );
+ pUndo->nCount = pParaList->GetAbsPos( pPara );
}
pHdlParagraph = pPara;
@@ -838,7 +825,7 @@ sal_Bool Outliner::Collapse( Paragraph* pPara )
}
-Font Outliner::ImpCalcBulletFont( sal_uInt16 nPara ) const
+Font Outliner::ImpCalcBulletFont( sal_Int32 nPara ) const
{
const SvxNumberFormat* pFmt = GetNumberFormat( nPara );
DBG_ASSERT( pFmt && ( pFmt->GetNumberingType() != SVX_NUM_BITMAP ) && ( pFmt->GetNumberingType() != SVX_NUM_NUMBER_NONE ), "ImpCalcBulletFont: Missing or BitmapBullet!" );
@@ -897,7 +884,7 @@ Font Outliner::ImpCalcBulletFont( sal_uInt16 nPara ) const
return aBulletFont;
}
-void Outliner::PaintBullet( sal_uInt16 nPara, const Point& rStartPos,
+void Outliner::PaintBullet( sal_Int32 nPara, const Point& rStartPos,
const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
{
DBG_CHKTHIS(Outliner,0);
@@ -1084,15 +1071,15 @@ void Outliner::PaintBullet( sal_uInt16 nPara, const Point& rStartPos,
}
}
-void Outliner::InvalidateBullet( Paragraph* /*pPara*/, sal_uLong nPara )
+void Outliner::InvalidateBullet( Paragraph* /*pPara*/, sal_Int32 nPara )
{
DBG_CHKTHIS(Outliner,0);
- long nLineHeight = (long)pEditEngine->GetLineHeight((sal_uInt16)nPara );
+ long nLineHeight = (long)pEditEngine->GetLineHeight(nPara );
for ( size_t i = 0, n = aViewList.size(); i < n; ++i )
{
OutlinerView* pView = aViewList[ i ];
- Point aPos( pView->pEditView->GetWindowPosTopLeft((sal_uInt16)nPara ) );
+ Point aPos( pView->pEditView->GetWindowPosTopLeft(nPara ) );
Rectangle aRect( pView->GetOutputArea() );
aRect.Right() = aPos.X();
aRect.Top() = aPos.Y();
@@ -1120,10 +1107,9 @@ sal_uLong Outliner::Read( SvStream& rInput, const String& rBaseURL, sal_uInt16 e
bFirstParaIsEmpty = sal_False;
- sal_uInt16 nParas = pEditEngine->GetParagraphCount();
+ sal_Int32 nParas = pEditEngine->GetParagraphCount();
pParaList->Clear( sal_True );
- sal_uInt16 n;
- for ( n = 0; n < nParas; n++ )
+ for ( sal_Int32 n = 0; n < nParas; n++ )
{
Paragraph* pPara = new Paragraph( 0 );
pParaList->Append(pPara);
@@ -1150,7 +1136,7 @@ sal_uLong Outliner::Read( SvStream& rInput, const String& rBaseURL, sal_uInt16 e
}
-void Outliner::ImpFilterIndents( sal_uLong nFirstPara, sal_uLong nLastPara )
+void Outliner::ImpFilterIndents( sal_Int32 nFirstPara, sal_Int32 nLastPara )
{
DBG_CHKTHIS(Outliner,0);
@@ -1158,7 +1144,7 @@ void Outliner::ImpFilterIndents( sal_uLong nFirstPara, sal_uLong nLastPara )
pEditEngine->SetUpdateMode( sal_False );
Paragraph* pLastConverted = NULL;
- for( sal_uLong nPara = nFirstPara; nPara <= nLastPara; nPara++ )
+ for( sal_Int32 nPara = nFirstPara; nPara <= nLastPara; nPara++ )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
if (pPara)
@@ -1173,7 +1159,7 @@ void Outliner::ImpFilterIndents( sal_uLong nFirstPara, sal_uLong nLastPara )
pPara->SetDepth( pLastConverted->GetDepth() );
}
- ImplInitDepth( (sal_uInt16)nPara, pPara->GetDepth(), sal_False );
+ ImplInitDepth( nPara, pPara->GetDepth(), sal_False );
}
}
@@ -1186,14 +1172,14 @@ void Outliner::ImpFilterIndents( sal_uLong nFirstPara, sal_uLong nLastPara )
return pEditEngine->GetUndoManager();
}
-void Outliner::ImpTextPasted( sal_uLong nStartPara, sal_uInt16 nCount )
+void Outliner::ImpTextPasted( sal_Int32 nStartPara, sal_Int32 nCount )
{
DBG_CHKTHIS(Outliner,0);
sal_Bool bUpdate = pEditEngine->GetUpdateMode();
pEditEngine->SetUpdateMode( sal_False );
- const sal_uLong nStart = nStartPara;
+ const sal_Int32 nStart = nStartPara;
Paragraph* pPara = pParaList->GetParagraph( nStartPara );
@@ -1218,14 +1204,14 @@ void Outliner::ImpTextPasted( sal_uLong nStartPara, sal_uInt16 nCount )
else // EditEngine mode
{
sal_Int16 nDepth = -1;
- const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( (sal_uInt16)nStartPara );
+ const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( nStartPara );
if ( rAttrs.GetItemState( EE_PARA_OUTLLEVEL ) == SFX_ITEM_ON )
{
const SfxInt16Item& rLevel = (const SfxInt16Item&) rAttrs.Get( EE_PARA_OUTLLEVEL );
nDepth = rLevel.GetValue();
}
if ( nDepth != GetDepth( nStartPara ) )
- ImplInitDepth( (sal_uInt16)nStartPara, nDepth, sal_False );
+ ImplInitDepth( nStartPara, nDepth, sal_False );
}
nCount--;
@@ -1402,20 +1388,20 @@ void Outliner::DepthChangedHdl()
}
-sal_uLong Outliner::GetAbsPos( Paragraph* pPara )
+sal_Int32 Outliner::GetAbsPos( Paragraph* pPara )
{
DBG_CHKTHIS(Outliner,0);
DBG_ASSERT(pPara,"GetAbsPos:No Para");
return pParaList->GetAbsPos( pPara );
}
-sal_uLong Outliner::GetParagraphCount() const
+sal_Int32 Outliner::GetParagraphCount() const
{
DBG_CHKTHIS(Outliner,0);
return pParaList->GetParagraphCount();
}
-Paragraph* Outliner::GetParagraph( sal_uLong nAbsPos ) const
+Paragraph* Outliner::GetParagraph( sal_Int32 nAbsPos ) const
{
DBG_CHKTHIS(Outliner,0);
return pParaList->GetParagraph( nAbsPos );
@@ -1427,12 +1413,12 @@ sal_Bool Outliner::HasChildren( Paragraph* pParagraph ) const
return pParaList->HasChildren( pParagraph );
}
-sal_Bool Outliner::ImplHasBullet( sal_uInt16 nPara ) const
+sal_Bool Outliner::ImplHasBullet( sal_Int32 nPara ) const
{
return GetNumberFormat(nPara) != 0;
}
-const SvxNumberFormat* Outliner::GetNumberFormat( sal_uInt16 nPara ) const
+const SvxNumberFormat* Outliner::GetNumberFormat( sal_Int32 nPara ) const
{
const SvxNumberFormat* pFmt = NULL;
@@ -1452,7 +1438,7 @@ const SvxNumberFormat* Outliner::GetNumberFormat( sal_uInt16 nPara ) const
return pFmt;
}
-Size Outliner::ImplGetBulletSize( sal_uInt16 nPara )
+Size Outliner::ImplGetBulletSize( sal_Int32 nPara )
{
Paragraph* pPara = pParaList->GetParagraph( nPara );
if (!pPara)
@@ -1487,13 +1473,11 @@ Size Outliner::ImplGetBulletSize( sal_uInt16 nPara )
return pPara->aBulSize;
}
-void Outliner::ImplCheckParagraphs( sal_uInt16 nStart, sal_uInt16 nEnd )
+void Outliner::ImplCheckParagraphs( sal_Int32 nStart, sal_Int32 nEnd )
{
DBG_CHKTHIS( Outliner, 0 );
- // i100014#
- // assure that the following for-loop does not loop forever
- for ( sal_uInt16 n = nStart; n < nEnd; n++ )
+ for ( sal_Int32 n = nStart; n < nEnd; n++ )
{
Paragraph* pPara = pParaList->GetParagraph( n );
if (pPara)
@@ -1508,14 +1492,14 @@ void Outliner::SetRefDevice( OutputDevice* pRefDev )
{
DBG_CHKTHIS(Outliner,0);
pEditEngine->SetRefDevice( pRefDev );
- for ( sal_uInt16 n = (sal_uInt16) pParaList->GetParagraphCount(); n; )
+ for ( sal_Int32 n = pParaList->GetParagraphCount(); n; )
{
Paragraph* pPara = pParaList->GetParagraph( --n );
pPara->Invalidate();
}
}
-void Outliner::ParaAttribsChanged( sal_uInt16 nPara )
+void Outliner::ParaAttribsChanged( sal_Int32 nPara )
{
DBG_CHKTHIS(Outliner,0);
@@ -1546,8 +1530,8 @@ void Outliner::StyleSheetChanged( SfxStyleSheet* pStyle )
// Here all the paragraphs, which had the said template, used to be
// hunted by a ImpRecalcParaAttribs, why?
// => only the Bullet-representation can really change...
- sal_uInt16 nParas = (sal_uInt16)pParaList->GetParagraphCount();
- for( sal_uInt16 nPara = 0; nPara < nParas; nPara++ )
+ sal_Int32 nParas = pParaList->GetParagraphCount();
+ for( sal_Int32 nPara = 0; nPara < nParas; nPara++ )
{
if ( pEditEngine->GetStyleSheet( nPara ) == pStyle )
{
@@ -1560,7 +1544,7 @@ void Outliner::StyleSheetChanged( SfxStyleSheet* pStyle )
}
}
-Rectangle Outliner::ImpCalcBulletArea( sal_uInt16 nPara, sal_Bool bAdjust, sal_Bool bReturnPaperPos )
+Rectangle Outliner::ImpCalcBulletArea( sal_Int32 nPara, sal_Bool bAdjust, sal_Bool bReturnPaperPos )
{
// Bullet area within the paragraph ...
Rectangle aBulletArea;
@@ -1668,7 +1652,7 @@ void Outliner::ExpandHdl()
aExpandHdl.Call( this );
}
-EBulletInfo Outliner::GetBulletInfo( sal_uInt16 nPara )
+EBulletInfo Outliner::GetBulletInfo( sal_Int32 nPara )
{
EBulletInfo aInfo;
@@ -1701,34 +1685,34 @@ EBulletInfo Outliner::GetBulletInfo( sal_uInt16 nPara )
return aInfo;
}
-XubString Outliner::GetText( Paragraph* pParagraph, sal_uLong nCount ) const
+XubString Outliner::GetText( Paragraph* pParagraph, sal_Int32 nCount ) const
{
DBG_CHKTHIS(Outliner,0);
XubString aText;
- sal_uInt16 nStartPara = (sal_uInt16) pParaList->GetAbsPos( pParagraph );
- for ( sal_uInt16 n = 0; n < nCount; n++ )
+ sal_Int32 nStartPara = pParaList->GetAbsPos( pParagraph );
+ for ( sal_Int32 n = 0; n < nCount; n++ )
{
aText += pEditEngine->GetText( nStartPara + n );
- if ( (n+1) < (sal_uInt16)nCount )
+ if ( (n+1) < nCount )
aText += '\n';
}
return aText;
}
-void Outliner::Remove( Paragraph* pPara, sal_uLong nParaCount )
+void Outliner::Remove( Paragraph* pPara, sal_Int32 nParaCount )
{
DBG_CHKTHIS(Outliner,0);
- sal_uLong nPos = pParaList->GetAbsPos( pPara );
+ sal_Int32 nPos = pParaList->GetAbsPos( pPara );
if( !nPos && ( nParaCount >= pParaList->GetParagraphCount() ) )
{
Clear();
}
else
{
- for( sal_uInt16 n = 0; n < (sal_uInt16)nParaCount; n++ )
- pEditEngine->RemoveParagraph( (sal_uInt16) nPos );
+ for( sal_Int32 n = 0; n < nParaCount; n++ )
+ pEditEngine->RemoveParagraph( nPos );
}
}
@@ -1741,7 +1725,7 @@ void Outliner::StripPortions()
}
void Outliner::DrawingText( const Point& rStartPos, const XubString& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen, const sal_Int32* pDXArray,const SvxFont& rFont,
- sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
+ sal_Int32 nPara, sal_uInt16 nIndex, sal_uInt8 nRightToLeft,
const EEngineData::WrongSpellVector* pWrongSpellVector,
const SvxFieldData* pFieldData,
bool bEndOfLine,
@@ -1763,7 +1747,7 @@ void Outliner::DrawingText( const Point& rStartPos, const XubString& rText, sal_
}
void Outliner::DrawingTab( const Point& rStartPos, long nWidth, const String& rChar, const SvxFont& rFont,
- sal_uInt16 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft, bool bEndOfLine, bool bEndOfParagraph,
+ sal_Int32 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft, bool bEndOfLine, bool bEndOfParagraph,
const Color& rOverlineColor, const Color& rTextLineColor)
{
if(aDrawPortionHdl.IsSet())
@@ -1781,7 +1765,7 @@ long Outliner::RemovingPagesHdl( OutlinerView* pView )
return aRemovingPagesHdl.IsSet() ? aRemovingPagesHdl.Call( pView ) : sal_True;
}
-sal_Bool Outliner::ImpCanDeleteSelectedPages( OutlinerView* pCurView, sal_uInt16 _nFirstPage, sal_uInt16 nPages )
+sal_Bool Outliner::ImpCanDeleteSelectedPages( OutlinerView* pCurView, sal_Int32 _nFirstPage, sal_Int32 nPages )
{
DBG_CHKTHIS(Outliner,0);
@@ -1791,7 +1775,7 @@ sal_Bool Outliner::ImpCanDeleteSelectedPages( OutlinerView* pCurView, sal_uInt16
return (sal_Bool)RemovingPagesHdl( pCurView );
}
-SfxItemSet Outliner::GetParaAttribs( sal_uInt16 nPara )
+SfxItemSet Outliner::GetParaAttribs( sal_Int32 nPara )
{
DBG_CHKTHIS(Outliner,0);
return pEditEngine->GetParaAttribs( nPara );
@@ -1801,8 +1785,8 @@ IMPL_LINK( Outliner, ParaVisibleStateChangedHdl, Paragraph*, pPara )
{
DBG_CHKTHIS(Outliner,0);
- sal_uLong nPara = pParaList->GetAbsPos( pPara );
- pEditEngine->ShowParagraph( (sal_uInt16)nPara, pPara->IsVisible() );
+ sal_Int32 nPara = pParaList->GetAbsPos( pPara );
+ pEditEngine->ShowParagraph( nPara, pPara->IsVisible() );
return 0;
}
@@ -1838,9 +1822,9 @@ IMPL_LINK( Outliner, EndMovingParagraphsHdl, MoveParagraphsInfo*, pInfos )
DBG_CHKTHIS(Outliner,0);
pParaList->MoveParagraphs( pInfos->nStartPara, pInfos->nDestPara, pInfos->nEndPara - pInfos->nStartPara + 1 );
- sal_uInt16 nChangesStart = std::min( pInfos->nStartPara, pInfos->nDestPara );
- sal_uInt16 nParas = (sal_uInt16)pParaList->GetParagraphCount();
- for ( sal_uInt16 n = nChangesStart; n < nParas; n++ )
+ sal_Int32 nChangesStart = std::min( pInfos->nStartPara, pInfos->nDestPara );
+ sal_Int32 nParas = pParaList->GetParagraphCount();
+ for ( sal_Int32 n = nChangesStart; n < nParas; n++ )
ImplCalcBulletText( n, sal_False, sal_False );
if( !IsInUndo() )
@@ -1863,7 +1847,7 @@ static bool isSameNumbering( const SvxNumberFormat& rN1, const SvxNumberFormat&
return true;
}
-sal_uInt16 Outliner::ImplGetNumbering( sal_uInt16 nPara, const SvxNumberFormat* pParaFmt )
+sal_uInt16 Outliner::ImplGetNumbering( sal_Int32 nPara, const SvxNumberFormat* pParaFmt )
{
sal_uInt16 nNumber = pParaFmt->GetStart() - 1;
@@ -1917,7 +1901,7 @@ sal_uInt16 Outliner::ImplGetNumbering( sal_uInt16 nPara, const SvxNumberFormat*
return nNumber;
}
-void Outliner::ImplCalcBulletText( sal_uInt16 nPara, sal_Bool bRecalcLevel, sal_Bool bRecalcChildren )
+void Outliner::ImplCalcBulletText( sal_Int32 nPara, sal_Bool bRecalcLevel, sal_Bool bRecalcChildren )
{
DBG_CHKTHIS(Outliner,0);
@@ -1993,14 +1977,14 @@ void Outliner::SetFlatMode( sal_Bool bFlat )
if( bFlat != pEditEngine->IsFlatMode() )
{
- for ( sal_uInt16 nPara = (sal_uInt16)pParaList->GetParagraphCount(); nPara; )
+ for ( sal_Int32 nPara = pParaList->GetParagraphCount(); nPara; )
pParaList->GetParagraph( --nPara )->aBulSize.Width() = -1;
pEditEngine->SetFlatMode( bFlat );
}
}
-String Outliner::ImplGetBulletText( sal_uInt16 nPara )
+String Outliner::ImplGetBulletText( sal_Int32 nPara )
{
String aRes;
Paragraph* pPara = pParaList->GetParagraph( nPara );
@@ -2015,7 +1999,7 @@ String Outliner::ImplGetBulletText( sal_uInt16 nPara )
}
// this is needed for StarOffice Api
-void Outliner::SetLevelDependendStyleSheet( sal_uInt16 nPara )
+void Outliner::SetLevelDependendStyleSheet( sal_Int32 nPara )
{
SfxItemSet aOldAttrs( pEditEngine->GetParaAttribs( nPara ) );
ImplSetLevelDependendStyleSheet( nPara );
@@ -2085,7 +2069,7 @@ void Outliner::SetParaFlag( Paragraph* pPara, sal_uInt16 nFlag )
if( pPara && !pPara->HasFlag( nFlag ) )
{
if( IsUndoEnabled() && !IsInUndo() )
- InsertUndo( new OutlinerUndoChangeParaFlags( this, (sal_uInt16)GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags|nFlag ) );
+ InsertUndo( new OutlinerUndoChangeParaFlags( this, GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags|nFlag ) );
pPara->SetFlag( nFlag );
}
diff --git a/editeng/source/outliner/outlobj.cxx b/editeng/source/outliner/outlobj.cxx
index 1140e505b00e..32b76de5300f 100644
--- a/editeng/source/outliner/outlobj.cxx
+++ b/editeng/source/outliner/outlobj.cxx
@@ -183,14 +183,20 @@ void OutlinerParaObject::SetVertical(bool bNew)
}
}
-sal_uInt32 OutlinerParaObject::Count() const
+sal_Int32 OutlinerParaObject::Count() const
{
- return mpImplOutlinerParaObject->maParagraphDataVector.size();
+ size_t nSize = mpImplOutlinerParaObject->maParagraphDataVector.size();
+ if (nSize > EE_PARA_MAX_COUNT)
+ {
+ SAL_WARN( "editeng", "OutlinerParaObject::Count - overflow " << nSize);
+ return EE_PARA_MAX_COUNT;
+ }
+ return static_cast<sal_Int32>(nSize);
}
-sal_Int16 OutlinerParaObject::GetDepth(sal_uInt16 nPara) const
+sal_Int16 OutlinerParaObject::GetDepth(sal_Int32 nPara) const
{
- if(nPara < mpImplOutlinerParaObject->maParagraphDataVector.size())
+ if(0 <= nPara && static_cast<size_t>(nPara) < mpImplOutlinerParaObject->maParagraphDataVector.size())
{
return mpImplOutlinerParaObject->maParagraphDataVector[nPara].getDepth();
}
@@ -210,9 +216,9 @@ bool OutlinerParaObject::IsEditDoc() const
return mpImplOutlinerParaObject->mbIsEditDoc;
}
-const ParagraphData& OutlinerParaObject::GetParagraphData(sal_uInt32 nIndex) const
+const ParagraphData& OutlinerParaObject::GetParagraphData(sal_Int32 nIndex) const
{
- if(nIndex < mpImplOutlinerParaObject->maParagraphDataVector.size())
+ if(0 <= nIndex && static_cast<size_t>(nIndex) < mpImplOutlinerParaObject->maParagraphDataVector.size())
{
return mpImplOutlinerParaObject->maParagraphDataVector[nIndex];
}
@@ -247,12 +253,12 @@ void OutlinerParaObject::ChangeStyleSheetName(SfxStyleFamily eFamily,
void OutlinerParaObject::SetStyleSheets(sal_uInt16 nLevel, const OUString rNewName,
const SfxStyleFamily& rNewFamily)
{
- const sal_uInt32 nCount(mpImplOutlinerParaObject->maParagraphDataVector.size());
+ const sal_Int32 nCount(Count());
if(nCount)
{
ImplMakeUnique();
- sal_uInt16 nDecrementer(sal::static_int_cast< sal_uInt16 >(nCount));
+ sal_Int32 nDecrementer(nCount);
for(;nDecrementer;)
{
diff --git a/editeng/source/outliner/outlundo.cxx b/editeng/source/outliner/outlundo.cxx
index 6ebdf3c6de8e..dcd41e2539cb 100644
--- a/editeng/source/outliner/outlundo.cxx
+++ b/editeng/source/outliner/outlundo.cxx
@@ -37,7 +37,7 @@ OutlinerUndoBase::OutlinerUndoBase( sal_uInt16 _nId, Outliner* pOutliner )
mpOutliner = pOutliner;
}
-OutlinerUndoChangeParaFlags::OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_uInt16 nPara, sal_uInt16 nOldFlags, sal_uInt16 nNewFlags )
+OutlinerUndoChangeParaFlags::OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_Int32 nPara, sal_uInt16 nOldFlags, sal_uInt16 nNewFlags )
: OutlinerUndoBase( OLUNDO_DEPTH, pOutliner )
{
mnPara = nPara;
@@ -70,7 +70,7 @@ void OutlinerUndoChangeParaFlags::ImplChangeFlags( sal_uInt16 nFlags )
}
}
-OutlinerUndoChangeParaNumberingRestart::OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_uInt16 nPara,
+OutlinerUndoChangeParaNumberingRestart::OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_Int32 nPara,
sal_Int16 nOldNumberingStartValue, sal_Int16 nNewNumberingStartValue,
sal_Bool bOldParaIsNumberingRestart, sal_Bool bNewParaIsNumberingRestart )
: OutlinerUndoBase( OLUNDO_DEPTH, pOutliner )
@@ -100,7 +100,7 @@ void OutlinerUndoChangeParaNumberingRestart::ImplApplyData( const ParaRestartDat
pOutliner->SetParaIsNumberingRestart( mnPara, rData.mbParaIsNumberingRestart );
}
-OutlinerUndoChangeDepth::OutlinerUndoChangeDepth( Outliner* pOutliner, sal_uInt16 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth )
+OutlinerUndoChangeDepth::OutlinerUndoChangeDepth( Outliner* pOutliner, sal_Int32 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth )
: OutlinerUndoBase( OLUNDO_DEPTH, pOutliner )
{
mnPara = nPara;
@@ -124,7 +124,7 @@ void OutlinerUndoChangeDepth::Repeat()
}
-OutlinerUndoCheckPara::OutlinerUndoCheckPara( Outliner* pOutliner, sal_uInt16 nPara )
+OutlinerUndoCheckPara::OutlinerUndoCheckPara( Outliner* pOutliner, sal_Int32 nPara )
: OutlinerUndoBase( OLUNDO_DEPTH, pOutliner )
{
mnPara = nPara;
@@ -182,7 +182,7 @@ void OLUndoExpand::Restore( sal_Bool bUndo )
bExpand = sal_True;
if( !pParas )
{
- pPara = pOutliner->GetParagraph( (sal_uLong)nCount );
+ pPara = pOutliner->GetParagraph( nCount );
if( bExpand )
pOutliner->Expand( pPara );
else
@@ -190,9 +190,9 @@ void OLUndoExpand::Restore( sal_Bool bUndo )
}
else
{
- for( sal_uInt16 nIdx = 0; nIdx < nCount; nIdx++ )
+ for( sal_Int32 nIdx = 0; nIdx < nCount; nIdx++ )
{
- pPara = pOutliner->GetParagraph( (sal_uLong)(pParas[nIdx]) );
+ pPara = pOutliner->GetParagraph( pParas[nIdx] );
if( bExpand )
pOutliner->Expand( pPara );
else
diff --git a/editeng/source/outliner/outlundo.hxx b/editeng/source/outliner/outlundo.hxx
index 7a901509c78e..c0c38c672fdc 100644
--- a/editeng/source/outliner/outlundo.hxx
+++ b/editeng/source/outliner/outlundo.hxx
@@ -38,14 +38,14 @@ public:
class OutlinerUndoChangeParaFlags : public OutlinerUndoBase
{
private:
- sal_uInt16 mnPara;
+ sal_Int32 mnPara;
sal_uInt16 mnOldFlags;
sal_uInt16 mnNewFlags;
void ImplChangeFlags( sal_uInt16 nFlags );
public:
- OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_uInt16 nPara, sal_uInt16 nOldDepth, sal_uInt16 nNewDepth );
+ OutlinerUndoChangeParaFlags( Outliner* pOutliner, sal_Int32 nPara, sal_uInt16 nOldDepth, sal_uInt16 nNewDepth );
virtual void Undo();
virtual void Redo();
@@ -54,7 +54,7 @@ public:
class OutlinerUndoChangeParaNumberingRestart : public OutlinerUndoBase
{
private:
- sal_uInt16 mnPara;
+ sal_Int32 mnPara;
struct ParaRestartData
{
@@ -67,7 +67,7 @@ private:
void ImplApplyData( const ParaRestartData& rData );
public:
- OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_uInt16 nPara,
+ OutlinerUndoChangeParaNumberingRestart( Outliner* pOutliner, sal_Int32 nPara,
sal_Int16 nOldNumberingStartValue, sal_Int16 mnNewNumberingStartValue,
sal_Bool nOldbParaIsNumberingRestart, sal_Bool nbNewParaIsNumberingRestart );
@@ -79,12 +79,12 @@ class OutlinerUndoChangeDepth : public OutlinerUndoBase
{
using SfxUndoAction::Repeat;
private:
- sal_uInt16 mnPara;
+ sal_Int32 mnPara;
sal_Int16 mnOldDepth;
sal_Int16 mnNewDepth;
public:
- OutlinerUndoChangeDepth( Outliner* pOutliner, sal_uInt16 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth );
+ OutlinerUndoChangeDepth( Outliner* pOutliner, sal_Int32 nPara, sal_Int16 nOldDepth, sal_Int16 nNewDepth );
virtual void Undo();
virtual void Redo();
@@ -98,10 +98,10 @@ class OutlinerUndoCheckPara : public OutlinerUndoBase
{
using SfxUndoAction::Repeat;
private:
- sal_uInt16 mnPara;
+ sal_Int32 mnPara;
public:
- OutlinerUndoCheckPara( Outliner* pOutliner, sal_uInt16 nPara );
+ OutlinerUndoCheckPara( Outliner* pOutliner, sal_Int32 nPara );
virtual void Undo();
virtual void Redo();
@@ -126,7 +126,7 @@ public:
sal_uInt16* pParas; // 0 == nCount contains paragraph number
Outliner* pOutliner;
- sal_uInt16 nCount;
+ sal_Int32 nCount;
};
#endif
diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx
index a735e0790888..a76419e4e001 100644
--- a/editeng/source/outliner/outlvw.cxx
+++ b/editeng/source/outliner/outlvw.cxx
@@ -206,17 +206,21 @@ sal_Bool OutlinerView::PostKeyEvent( const KeyEvent& rKEvt, Window* pFrameWin )
if( !bSelection &&
aSel.nEndPos == pOwner->pEditEngine->GetTextLen( aSel.nEndPara ) )
{
- sal_uLong nChildren = pOwner->pParaList->GetChildCount(pPara);
+ sal_Int32 nChildren = pOwner->pParaList->GetChildCount(pPara);
if( nChildren && !pOwner->pParaList->HasVisibleChildren(pPara))
{
pOwner->UndoActionStart( OLUNDO_INSERT );
- sal_uLong nTemp = aSel.nEndPara;
+ sal_Int32 nTemp = aSel.nEndPara;
nTemp += nChildren;
nTemp++; // insert above next Non-Child
- pOwner->Insert( String(),nTemp,pPara->GetDepth());
- // Position the cursor
- ESelection aTmpSel((sal_uInt16)nTemp,0,(sal_uInt16)nTemp,0);
- pEditView->SetSelection( aTmpSel );
+ SAL_WARN_IF( nTemp < 0, "editeng", "OutlinerView::PostKeyEvent - overflow");
+ if (nTemp >= 0)
+ {
+ pOwner->Insert( String(),nTemp,pPara->GetDepth());
+ // Position the cursor
+ ESelection aTmpSel(nTemp,0,nTemp,0);
+ pEditView->SetSelection( aTmpSel );
+ }
pEditView->ShowCursor( sal_True, sal_True );
pOwner->UndoActionEnd( OLUNDO_INSERT );
bKeyProcessed = sal_True;
@@ -228,12 +232,12 @@ sal_Bool OutlinerView::PostKeyEvent( const KeyEvent& rKEvt, Window* pFrameWin )
( aSel.nEndPos == pOwner->pEditEngine->GetTextLen(aSel.nEndPara) ) )
{
pOwner->UndoActionStart( OLUNDO_INSERT );
- sal_uLong nTemp = aSel.nEndPara;
+ sal_Int32 nTemp = aSel.nEndPara;
nTemp++;
pOwner->Insert( String(), nTemp, pPara->GetDepth()+1 );
// Position the cursor
- ESelection aTmpSel((sal_uInt16)nTemp,0,(sal_uInt16)nTemp,0);
+ ESelection aTmpSel(nTemp,0,nTemp,0);
pEditView->SetSelection( aTmpSel );
pEditView->ShowCursor( sal_True, sal_True );
pOwner->UndoActionEnd( OLUNDO_INSERT );
@@ -250,10 +254,10 @@ sal_Bool OutlinerView::PostKeyEvent( const KeyEvent& rKEvt, Window* pFrameWin )
}
-sal_uLong OutlinerView::ImpCheckMousePos(const Point& rPosPix, MouseTarget& reTarget)
+sal_Int32 OutlinerView::ImpCheckMousePos(const Point& rPosPix, MouseTarget& reTarget)
{
DBG_CHKTHIS(OutlinerView,0);
- sal_uLong nPara = EE_PARA_NOT_FOUND;
+ sal_Int32 nPara = EE_PARA_NOT_FOUND;
Point aMousePosWin = pEditView->GetWindow()->PixelToLogic( rPosPix );
if( !pEditView->GetOutputArea().IsInside( aMousePosWin ) )
@@ -325,18 +329,18 @@ sal_Bool OutlinerView::MouseButtonDown( const MouseEvent& rMEvt )
pEditView->GetWindow()->SetPointer( aPointer );
MouseTarget eTarget;
- sal_uLong nPara = ImpCheckMousePos( rMEvt.GetPosPixel(), eTarget );
+ sal_Int32 nPara = ImpCheckMousePos( rMEvt.GetPosPixel(), eTarget );
if ( eTarget == MouseBullet )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
sal_Bool bHasChildren = (pPara && pOwner->pParaList->HasChildren(pPara));
if( rMEvt.GetClicks() == 1 )
{
- sal_uLong nEndPara = nPara;
+ sal_Int32 nEndPara = nPara;
if ( bHasChildren && pOwner->pParaList->HasVisibleChildren(pPara) )
nEndPara += pOwner->pParaList->GetChildCount( pPara );
// The selection is inverted, so that EditEngine does not scroll
- ESelection aSel((sal_uInt16)nEndPara, 0xffff,(sal_uInt16)nPara, 0 );
+ ESelection aSel(nEndPara, EE_TEXTPOS_ALL, nPara, 0 );
pEditView->SetSelection( aSel );
}
else if( rMEvt.GetClicks() == 2 && bHasChildren )
@@ -382,27 +386,27 @@ void OutlinerView::ImpToggleExpand( Paragraph* pPara )
{
DBG_CHKTHIS(OutlinerView,0);
- sal_uInt16 nPara = (sal_uInt16) pOwner->pParaList->GetAbsPos( pPara );
+ sal_Int32 nPara = pOwner->pParaList->GetAbsPos( pPara );
pEditView->SetSelection( ESelection( nPara, 0, nPara, 0 ) );
ImplExpandOrCollaps( nPara, nPara, !pOwner->pParaList->HasVisibleChildren( pPara ) );
pEditView->ShowCursor();
}
-sal_uLong OutlinerView::Select( Paragraph* pParagraph, sal_Bool bSelect,
+sal_Int32 OutlinerView::Select( Paragraph* pParagraph, sal_Bool bSelect,
sal_Bool bWithChildren )
{
DBG_CHKTHIS(OutlinerView,0);
- sal_uLong nPara = pOwner->pParaList->GetAbsPos( pParagraph );
+ sal_Int32 nPara = pOwner->pParaList->GetAbsPos( pParagraph );
sal_uInt16 nEnd = 0;
if ( bSelect )
nEnd = 0xffff;
- sal_uLong nChildCount = 0;
+ sal_Int32 nChildCount = 0;
if ( bWithChildren )
nChildCount = pOwner->pParaList->GetChildCount( pParagraph );
- ESelection aSel( (sal_uInt16)nPara, 0,(sal_uInt16)(nPara+nChildCount), nEnd );
+ ESelection aSel( nPara, 0,nPara+nChildCount, nEnd );
pEditView->SetSelection( aSel );
return nChildCount+1;
}
@@ -423,7 +427,7 @@ void OutlinerView::SetAttribs( const SfxItemSet& rAttrs )
pEditView->SetAttribs( rAttrs );
// Update Bullet text
- for( sal_uInt16 nPara= aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+ for( sal_Int32 nPara= aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
{
pOwner->ImplCheckNumBulletItem( nPara );
pOwner->ImplCalcBulletText( nPara, sal_False, sal_False );
@@ -451,10 +455,7 @@ ParaRange OutlinerView::ImpGetSelectedParagraphs( sal_Bool bIncludeHiddenChildre
{
Paragraph* pLast = pOwner->pParaList->GetParagraph( aParas.nEndPara );
if ( pOwner->pParaList->HasHiddenChildren( pLast ) )
- aParas.nEndPara =
- sal::static_int_cast< sal_uInt16 >(
- aParas.nEndPara +
- pOwner->pParaList->GetChildCount( pLast ) );
+ aParas.nEndPara = aParas.nEndPara + pOwner->pParaList->GetChildCount( pLast );
}
return aParas;
}
@@ -484,7 +485,7 @@ void OutlinerView::Indent( short nDiff )
sal_Int16 nMinDepth = -1; // Optimization: Not to recalculate to manny parargaphs when not really needed.
ParaRange aSel = ImpGetSelectedParagraphs( sal_True );
- for ( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+ for ( sal_Int32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
@@ -497,7 +498,7 @@ void OutlinerView::Indent( short nDiff )
if( (bPage && (nDiff == +1)) || (!bPage && (nDiff == -1) && (nOldDepth <= 0)) )
{
// Notify App
- pOwner->nDepthChangedHdlPrevDepth = (sal_Int16)nOldDepth;
+ pOwner->nDepthChangedHdlPrevDepth = nOldDepth;
pOwner->mnDepthChangeHdlPrevFlags = pPara->nFlags;
pOwner->pHdlParagraph = pPara;
@@ -561,7 +562,7 @@ void OutlinerView::Indent( short nDiff )
}
}
- pOwner->nDepthChangedHdlPrevDepth = (sal_Int16)nOldDepth;
+ pOwner->nDepthChangedHdlPrevDepth = nOldDepth;
pOwner->mnDepthChangeHdlPrevFlags = pPara->nFlags;
pOwner->pHdlParagraph = pPara;
@@ -581,8 +582,8 @@ void OutlinerView::Indent( short nDiff )
}
}
- sal_uInt16 nParas = (sal_uInt16)pOwner->pParaList->GetParagraphCount();
- for ( sal_uInt16 n = aSel.nEndPara+1; n < nParas; n++ )
+ sal_Int32 nParas = pOwner->pParaList->GetParagraphCount();
+ for ( sal_Int32 n = aSel.nEndPara+1; n < nParas; n++ )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( n );
if ( pPara->GetDepth() < nMinDepth )
@@ -632,17 +633,17 @@ void OutlinerView::Collapse()
void OutlinerView::ExpandAll()
{
DBG_CHKTHIS( OutlinerView, 0 );
- ImplExpandOrCollaps( 0, (sal_uInt16)(pOwner->pParaList->GetParagraphCount()-1), sal_True );
+ ImplExpandOrCollaps( 0, pOwner->pParaList->GetParagraphCount()-1, sal_True );
}
void OutlinerView::CollapseAll()
{
DBG_CHKTHIS(OutlinerView,0);
- ImplExpandOrCollaps( 0, (sal_uInt16)(pOwner->pParaList->GetParagraphCount()-1), sal_False );
+ ImplExpandOrCollaps( 0, pOwner->pParaList->GetParagraphCount()-1, sal_False );
}
-void OutlinerView::ImplExpandOrCollaps( sal_uInt16 nStartPara, sal_uInt16 nEndPara, sal_Bool bExpand )
+void OutlinerView::ImplExpandOrCollaps( sal_Int32 nStartPara, sal_Int32 nEndPara, sal_Bool bExpand )
{
DBG_CHKTHIS( OutlinerView, 0 );
@@ -653,7 +654,7 @@ void OutlinerView::ImplExpandOrCollaps( sal_uInt16 nStartPara, sal_uInt16 nEndPa
if( bUndo )
pOwner->UndoActionStart( bExpand ? OLUNDO_EXPAND : OLUNDO_COLLAPSE );
- for ( sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++ )
+ for ( sal_Int32 nPara = nStartPara; nPara <= nEndPara; nPara++ )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
sal_Bool bDone = bExpand ? pOwner->Expand( pPara ) : pOwner->Collapse( pPara );
@@ -693,7 +694,7 @@ void OutlinerView::InsertText( const OutlinerParaObject& rParaObj )
pOwner->UndoActionStart( OLUNDO_INSERT );
pOwner->pEditEngine->SetUpdateMode( sal_False );
- sal_uLong nStart, nParaCount;
+ sal_Int32 nStart, nParaCount;
nParaCount = pOwner->pEditEngine->GetParagraphCount();
sal_uInt16 nSize = ImpInitPaste( nStart );
pEditView->InsertText( rParaObj.GetTextObject() );
@@ -733,9 +734,9 @@ void OutlinerView::PasteSpecial()
if ( pOwner->ImplGetOutlinerMode() == OUTLINERMODE_OUTLINEOBJECT )
{
- const sal_uInt16 nParaCount = pOwner->pEditEngine->GetParagraphCount();
+ const sal_Int32 nParaCount = pOwner->pEditEngine->GetParagraphCount();
- for( sal_uInt16 nPara = 0; nPara < nParaCount; nPara++ )
+ for( sal_Int32 nPara = 0; nPara < nParaCount; nPara++ )
pOwner->ImplSetLevelDependendStyleSheet( nPara );
}
@@ -751,7 +752,7 @@ void OutlinerView::CreateSelectionList (std::vector<Paragraph*> &aSelList)
ParaRange aParas = ImpGetSelectedParagraphs( sal_True );
- for ( sal_uInt16 nPara = aParas.nStartPara; nPara <= aParas.nEndPara; nPara++ )
+ for ( sal_Int32 nPara = aParas.nStartPara; nPara <= aParas.nEndPara; nPara++ )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
aSelList.push_back(pPara);
@@ -795,29 +796,27 @@ Pointer OutlinerView::GetPointer( const Point& rPosPixel )
}
-sal_uInt16 OutlinerView::ImpInitPaste( sal_uLong& rStart )
+sal_Int32 OutlinerView::ImpInitPaste( sal_Int32& rStart )
{
DBG_CHKTHIS(OutlinerView,0);
pOwner->bPasting = sal_True;
ESelection aSelection( pEditView->GetSelection() );
aSelection.Adjust();
rStart = aSelection.nStartPara;
- sal_uInt16 nSize = aSelection.nEndPara - aSelection.nStartPara + 1;
+ sal_Int32 nSize = aSelection.nEndPara - aSelection.nStartPara + 1;
return nSize;
}
-void OutlinerView::ImpPasted( sal_uLong nStart, sal_uLong nPrevParaCount, sal_uInt16 nSize)
+void OutlinerView::ImpPasted( sal_Int32 nStart, sal_Int32 nPrevParaCount, sal_Int32 nSize)
{
DBG_CHKTHIS(OutlinerView,0);
pOwner->bPasting = sal_False;
- sal_uLong nCurParaCount = (sal_uLong)pOwner->pEditEngine->GetParagraphCount();
+ sal_Int32 nCurParaCount = pOwner->pEditEngine->GetParagraphCount();
if( nCurParaCount < nPrevParaCount )
- nSize = sal::static_int_cast< sal_uInt16 >(
- nSize - ( nPrevParaCount - nCurParaCount ) );
+ nSize = nSize - ( nPrevParaCount - nCurParaCount );
else
- nSize = sal::static_int_cast< sal_uInt16 >(
- nSize + ( nCurParaCount - nPrevParaCount ) );
+ nSize = nSize + ( nCurParaCount - nPrevParaCount );
pOwner->ImpTextPasted( nStart, nSize );
}
@@ -829,38 +828,38 @@ void OutlinerView::Command( const CommandEvent& rCEvt )
}
-void OutlinerView::SelectRange( sal_uLong nFirst, sal_uInt16 nCount )
+void OutlinerView::SelectRange( sal_Int32 nFirst, sal_Int32 nCount )
{
DBG_CHKTHIS(OutlinerView,0);
- sal_uLong nLast = nFirst+nCount;
- nCount = (sal_uInt16)pOwner->pParaList->GetParagraphCount();
+ sal_Int32 nLast = nFirst+nCount;
+ nCount = pOwner->pParaList->GetParagraphCount();
if( nLast <= nCount )
nLast = nCount - 1;
- ESelection aSel( (sal_uInt16)nFirst, 0, (sal_uInt16)nLast, 0xffff );
+ ESelection aSel( nFirst, 0, nLast, EE_TEXTPOS_ALL );
pEditView->SetSelection( aSel );
}
-sal_uInt16 OutlinerView::ImpCalcSelectedPages( sal_Bool bIncludeFirstSelected )
+sal_Int32 OutlinerView::ImpCalcSelectedPages( sal_Bool bIncludeFirstSelected )
{
DBG_CHKTHIS(OutlinerView,0);
ESelection aSel( pEditView->GetSelection() );
aSel.Adjust();
- sal_uInt16 nPages = 0;
- sal_uInt16 nFirstPage = 0xFFFF;
- sal_uInt16 nStartPara = aSel.nStartPara;
+ sal_Int32 nPages = 0;
+ sal_Int32 nFirstPage = EE_PARA_MAX_COUNT;
+ sal_Int32 nStartPara = aSel.nStartPara;
if ( !bIncludeFirstSelected )
nStartPara++; // All paragraphs after StartPara will be deleted
- for ( sal_uInt16 nPara = nStartPara; nPara <= aSel.nEndPara; nPara++ )
+ for ( sal_Int32 nPara = nStartPara; nPara <= aSel.nEndPara; nPara++ )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
DBG_ASSERT(pPara, "ImpCalcSelectedPages: invalid Selection? ");
if( pPara->HasFlag(PARAFLAG_ISPAGE) )
{
nPages++;
- if( nFirstPage == 0xFFFF )
+ if( nFirstPage == EE_PARA_MAX_COUNT )
nFirstPage = nPara;
}
}
@@ -888,7 +887,7 @@ void OutlinerView::ToggleBullets()
sal_Int16 nDepth = -2;
- for ( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+ for ( sal_Int32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
DBG_ASSERT(pPara, "OutlinerView::ToggleBullets(), illegal selection?");
@@ -913,13 +912,10 @@ void OutlinerView::ToggleBullets()
}
}
- // #i100014#
- // It is not a good idea to substract 1 from a count and cast the result
- // to sal_uInt16 without check, if the count is 0.
- sal_uInt16 nParaCount = (sal_uInt16) (pOwner->pParaList->GetParagraphCount());
+ sal_Int32 nParaCount = pOwner->pParaList->GetParagraphCount();
pOwner->ImplCheckParagraphs( aSel.nStartPara, nParaCount );
- sal_uInt16 nEndPara = (nParaCount > 0) ? nParaCount-1 : nParaCount;
+ sal_Int32 nEndPara = (nParaCount > 0) ? nParaCount-1 : nParaCount;
pOwner->pEditEngine->QuickMarkInvalid( ESelection( aSel.nStartPara, 0, nEndPara, 0 ) );
pOwner->pEditEngine->SetUpdateMode( bUpdate );
@@ -937,7 +933,7 @@ void OutlinerView::EnableBullets()
const bool bUpdate = pOwner->pEditEngine->GetUpdateMode();
pOwner->pEditEngine->SetUpdateMode( sal_False );
- for ( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+ for ( sal_Int32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
DBG_ASSERT(pPara, "OutlinerView::ToggleBullets(), illegal selection?");
@@ -948,13 +944,10 @@ void OutlinerView::EnableBullets()
}
}
- // #i100014#
- // It is not a good idea to substract 1 from a count and cast the result
- // to sal_uInt16 without check, if the count is 0.
- sal_uInt16 nParaCount = (sal_uInt16) (pOwner->pParaList->GetParagraphCount());
+ sal_Int32 nParaCount = pOwner->pParaList->GetParagraphCount();
pOwner->ImplCheckParagraphs( aSel.nStartPara, nParaCount );
- sal_uInt16 nEndPara = (nParaCount > 0) ? nParaCount-1 : nParaCount;
+ sal_Int32 nEndPara = (nParaCount > 0) ? nParaCount-1 : nParaCount;
pOwner->pEditEngine->QuickMarkInvalid( ESelection( aSel.nStartPara, 0, nEndPara, 0 ) );
pOwner->pEditEngine->SetUpdateMode( bUpdate );
@@ -983,7 +976,7 @@ void OutlinerView::RemoveAttribs( sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich
// Loop through all paragraphs and set indentation and level
ESelection aSel = pEditView->GetSelection();
aSel.Adjust();
- for ( sal_uInt16 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
+ for ( sal_Int32 nPara = aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
{
Paragraph* pPara = pOwner->pParaList->GetParagraph( nPara );
pOwner->ImplInitDepth( nPara, pPara->GetDepth(), sal_False, sal_False );
@@ -1237,17 +1230,17 @@ void OutlinerView::ExecuteSpellPopup( const Point& rPosPixel, Link* pStartDlg )
sal_uLong OutlinerView::Read( SvStream& rInput, const String& rBaseURL, EETextFormat eFormat, sal_Bool bSelect, SvKeyValueIterator* pHTTPHeaderAttrs )
{
DBG_CHKTHIS(OutlinerView,0);
- sal_uInt16 nOldParaCount = pEditView->GetEditEngine()->GetParagraphCount();
+ sal_Int32 nOldParaCount = pEditView->GetEditEngine()->GetParagraphCount();
ESelection aOldSel = pEditView->GetSelection();
aOldSel.Adjust();
sal_uLong nRet = pEditView->Read( rInput, rBaseURL, eFormat, bSelect, pHTTPHeaderAttrs );
long nParaDiff = pEditView->GetEditEngine()->GetParagraphCount() - nOldParaCount;
- sal_uInt16 nChangesStart = aOldSel.nStartPara;
- sal_uInt16 nChangesEnd = sal::static_int_cast< sal_uInt16 >(nChangesStart + nParaDiff + (aOldSel.nEndPara-aOldSel.nStartPara));
+ sal_Int32 nChangesStart = aOldSel.nStartPara;
+ sal_Int32 nChangesEnd = nChangesStart + nParaDiff + (aOldSel.nEndPara-aOldSel.nStartPara);
- for ( sal_uInt16 n = nChangesStart; n <= nChangesEnd; n++ )
+ for ( sal_Int32 n = nChangesStart; n <= nChangesEnd; n++ )
{
if ( eFormat == EE_FORMAT_BIN )
{
diff --git a/editeng/source/outliner/paralist.cxx b/editeng/source/outliner/paralist.cxx
index 1bad842dc95f..cbe10764790f 100644
--- a/editeng/source/outliner/paralist.cxx
+++ b/editeng/source/outliner/paralist.cxx
@@ -126,28 +126,38 @@ void ParagraphList::Clear( sal_Bool bDestroyParagraphs )
void ParagraphList::Append( Paragraph* pPara)
{
+ SAL_WARN_IF( maEntries.size() >= EE_PARA_MAX_COUNT, "editeng", "ParagraphList::Append - overflow");
maEntries.push_back(pPara);
}
-void ParagraphList::Insert( Paragraph* pPara, sal_uLong nAbsPos)
+void ParagraphList::Insert( Paragraph* pPara, sal_Int32 nAbsPos)
{
- OSL_ASSERT(nAbsPos != ULONG_MAX && nAbsPos <= maEntries.size());
+ SAL_WARN_IF( nAbsPos < 0 || (maEntries.size() < static_cast<size_t>(nAbsPos) && nAbsPos != EE_PARA_APPEND),
+ "editeng", "ParagraphList::Insert - bad insert position " << nAbsPos);
+ SAL_WARN_IF( maEntries.size() >= EE_PARA_MAX_COUNT, "editeng", "ParagraphList::Insert - overflow");
- maEntries.insert(maEntries.begin()+nAbsPos,pPara);
+ if (nAbsPos < 0 || maEntries.size() <= static_cast<size_t>(nAbsPos))
+ Append( pPara);
+ else
+ maEntries.insert(maEntries.begin()+nAbsPos,pPara);
}
-void ParagraphList::Remove( sal_uLong nPara )
+void ParagraphList::Remove( sal_Int32 nPara )
{
- OSL_ASSERT(nPara < maEntries.size());
+ if (nPara < 0 || maEntries.size() <= static_cast<size_t>(nPara))
+ {
+ SAL_WARN( "editeng", "ParagraphList::Remove - out of bounds " << nPara);
+ return;
+ }
maEntries.erase(maEntries.begin() + nPara );
}
-void ParagraphList::MoveParagraphs( sal_uLong nStart, sal_uLong nDest, sal_uLong _nCount )
+void ParagraphList::MoveParagraphs( sal_Int32 nStart, sal_Int32 nDest, sal_Int32 _nCount )
{
- OSL_ASSERT(nStart < maEntries.size() && nDest < maEntries.size());
+ OSL_ASSERT(static_cast<size_t>(nStart) < maEntries.size() && static_cast<size_t>(nDest) < maEntries.size());
- if ( ( nDest < nStart ) || ( nDest >= ( nStart + _nCount ) ) )
+ if ( (( nDest < nStart ) || ( nDest >= ( nStart + _nCount ) )) && nStart >= 0 && nDest >= 0 && _nCount >= 0 )
{
std::vector<Paragraph*> aParas;
std::vector<Paragraph*>::iterator iterBeg = maEntries.begin() + nStart;
@@ -172,29 +182,29 @@ void ParagraphList::MoveParagraphs( sal_uLong nStart, sal_uLong nDest, sal_uLong
sal_Bool ParagraphList::HasChildren( Paragraph* pParagraph ) const
{
- sal_uLong n = GetAbsPos( pParagraph );
+ sal_Int32 n = GetAbsPos( pParagraph );
Paragraph* pNext = GetParagraph( ++n );
return ( pNext && ( pNext->GetDepth() > pParagraph->GetDepth() ) ) ? sal_True : sal_False;
}
sal_Bool ParagraphList::HasHiddenChildren( Paragraph* pParagraph ) const
{
- sal_uLong n = GetAbsPos( pParagraph );
+ sal_Int32 n = GetAbsPos( pParagraph );
Paragraph* pNext = GetParagraph( ++n );
return ( pNext && ( pNext->GetDepth() > pParagraph->GetDepth() ) && !pNext->IsVisible() ) ? sal_True : sal_False;
}
sal_Bool ParagraphList::HasVisibleChildren( Paragraph* pParagraph ) const
{
- sal_uLong n = GetAbsPos( pParagraph );
+ sal_Int32 n = GetAbsPos( pParagraph );
Paragraph* pNext = GetParagraph( ++n );
return ( pNext && ( pNext->GetDepth() > pParagraph->GetDepth() ) && pNext->IsVisible() ) ? sal_True : sal_False;
}
-sal_uLong ParagraphList::GetChildCount( Paragraph* pParent ) const
+sal_Int32 ParagraphList::GetChildCount( Paragraph* pParent ) const
{
- sal_uLong nChildCount = 0;
- sal_uLong n = GetAbsPos( pParent );
+ sal_Int32 nChildCount = 0;
+ sal_Int32 n = GetAbsPos( pParent );
Paragraph* pPara = GetParagraph( ++n );
while ( pPara && ( pPara->GetDepth() > pParent->GetDepth() ) )
{
@@ -207,7 +217,7 @@ sal_uLong ParagraphList::GetChildCount( Paragraph* pParent ) const
Paragraph* ParagraphList::GetParent( Paragraph* pParagraph /*, sal_uInt16& rRelPos */ ) const
{
/* rRelPos = 0 */;
- sal_uLong n = GetAbsPos( pParagraph );
+ sal_Int32 n = GetAbsPos( pParagraph );
Paragraph* pPrev = GetParagraph( --n );
while ( pPrev && ( pPrev->GetDepth() >= pParagraph->GetDepth() ) )
{
@@ -221,10 +231,10 @@ Paragraph* ParagraphList::GetParent( Paragraph* pParagraph /*, sal_uInt16& rRelP
void ParagraphList::Expand( Paragraph* pParent )
{
- sal_uLong nChildCount = GetChildCount( pParent );
- sal_uLong nPos = GetAbsPos( pParent );
+ sal_Int32 nChildCount = GetChildCount( pParent );
+ sal_Int32 nPos = GetAbsPos( pParent );
- for ( sal_uLong n = 1; n <= nChildCount; n++ )
+ for ( sal_Int32 n = 1; n <= nChildCount; n++ )
{
Paragraph* pPara = GetParagraph( nPos+n );
if ( !( pPara->IsVisible() ) )
@@ -237,10 +247,10 @@ void ParagraphList::Expand( Paragraph* pParent )
void ParagraphList::Collapse( Paragraph* pParent )
{
- sal_uLong nChildCount = GetChildCount( pParent );
- sal_uLong nPos = GetAbsPos( pParent );
+ sal_Int32 nChildCount = GetChildCount( pParent );
+ sal_Int32 nPos = GetAbsPos( pParent );
- for ( sal_uLong n = 1; n <= nChildCount; n++ )
+ for ( sal_Int32 n = 1; n <= nChildCount; n++ )
{
Paragraph* pPara = GetParagraph( nPos+n );
if ( pPara->IsVisible() )
@@ -251,9 +261,9 @@ void ParagraphList::Collapse( Paragraph* pParent )
}
}
-sal_uLong ParagraphList::GetAbsPos( Paragraph* pParent ) const
+sal_Int32 ParagraphList::GetAbsPos( Paragraph* pParent ) const
{
- sal_uLong pos = 0;
+ sal_Int32 pos = 0;
std::vector<Paragraph*>::const_iterator iter;
for (iter = maEntries.begin(); iter != maEntries.end(); ++iter, ++pos)
{
@@ -261,7 +271,7 @@ sal_uLong ParagraphList::GetAbsPos( Paragraph* pParent ) const
return pos;
}
- return ~0;
+ return EE_PARA_NOT_FOUND;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/editeng/source/outliner/paralist.hxx b/editeng/source/outliner/paralist.hxx
index 5e51aea1bf96..d8abf686f518 100644
--- a/editeng/source/outliner/paralist.hxx
+++ b/editeng/source/outliner/paralist.hxx
@@ -20,6 +20,9 @@
#ifndef _PARALIST_HXX
#define _PARALIST_HXX
+#include <sal/config.h>
+#include <sal/log.hxx>
+
#include <vector>
#include <tools/link.hxx>
@@ -31,28 +34,34 @@ class ParagraphList
public:
void Clear( sal_Bool bDestroyParagraphs );
- sal_uInt32 GetParagraphCount() const
+ sal_Int32 GetParagraphCount() const
{
- return maEntries.size();
+ size_t nSize = maEntries.size();
+ if (nSize > SAL_MAX_INT32)
+ {
+ SAL_WARN( "editeng", "ParagraphList::GetParagraphCount - overflow " << nSize);
+ return SAL_MAX_INT32;
+ }
+ return nSize;
}
- Paragraph* GetParagraph( sal_uLong nPos ) const
+ Paragraph* GetParagraph( sal_Int32 nPos ) const
{
- return nPos < maEntries.size() ? maEntries[nPos] : NULL;
+ return 0 <= nPos && static_cast<size_t>(nPos) < maEntries.size() ? maEntries[nPos] : NULL;
}
- sal_uLong GetAbsPos( Paragraph* pParent ) const;
+ sal_Int32 GetAbsPos( Paragraph* pParent ) const;
void Append( Paragraph *pPara);
- void Insert( Paragraph* pPara, sal_uLong nAbsPos);
- void Remove( sal_uLong nPara );
- void MoveParagraphs( sal_uLong nStart, sal_uLong nDest, sal_uLong nCount );
+ void Insert( Paragraph* pPara, sal_Int32 nAbsPos);
+ void Remove( sal_Int32 nPara );
+ void MoveParagraphs( sal_Int32 nStart, sal_Int32 nDest, sal_Int32 nCount );
Paragraph* GetParent( Paragraph* pParagraph /*, sal_uInt16& rRelPos */ ) const;
sal_Bool HasChildren( Paragraph* pParagraph ) const;
sal_Bool HasHiddenChildren( Paragraph* pParagraph ) const;
sal_Bool HasVisibleChildren( Paragraph* pParagraph ) const;
- sal_uLong GetChildCount( Paragraph* pParagraph ) const;
+ sal_Int32 GetChildCount( Paragraph* pParagraph ) const;
void Expand( Paragraph* pParent );
void Collapse( Paragraph* pParent );