summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorIvan Timofeev <timofeev.i.s@gmail.com>2011-10-19 21:51:44 +0400
committerIvan Timofeev <timofeev.i.s@gmail.com>2011-10-19 23:13:04 +0400
commitf9f4c631b100ace66999933dc06668ac107fb2bf (patch)
tree96a82fa23bba41f552f755759b67087374930a9f /sc
parent3f845c2980fcb35ac7c6f4d75e9bb99dc772bab5 (diff)
migrate to StringRangeEnumerator in Calc
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/unoobj/docuno.cxx26
1 files changed, 11 insertions, 15 deletions
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index ba36c905a381..df949d8d7ede 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -785,7 +785,7 @@ sal_Bool ScModelObj::FillRenderMarkData( const uno::Any& aSelection,
{
rOptions[i].Value >>= bIncludeEmptyPages;
}
- else if( rOptions[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "PageRange" ) ) )
+ else if( rOptions[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "PageRange" ) ) )
{
rOptions[i].Value >>= aPageRange;
}
@@ -956,9 +956,8 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount( const uno::Any& aSelection,
sal_Int32 nSelectCount = nPages;
if ( aPagesStr.Len() )
{
- MultiSelection aPageRanges( aPagesStr );
- aPageRanges.SetTotalRange( Range( 1, nPages ) );
- nSelectCount = aPageRanges.GetSelectCount();
+ StringRangeEnumerator aRangeEnum( aPagesStr, 0, nPages-1 );
+ nSelectCount = aRangeEnum.size();
}
return nSelectCount;
}
@@ -968,16 +967,13 @@ sal_Int32 lcl_GetRendererNum( sal_Int32 nSelRenderer, const String& rPagesStr, s
if ( !rPagesStr.Len() )
return nSelRenderer;
- MultiSelection aPageRanges( rPagesStr );
- aPageRanges.SetTotalRange( Range( 1, nTotalPages ) );
+ StringRangeEnumerator aRangeEnum( rPagesStr, 0, nTotalPages-1 );
+ StringRangeEnumerator::Iterator aIter = aRangeEnum.begin();
+ StringRangeEnumerator::Iterator aEnd = aRangeEnum.end();
+ for ( ; nSelRenderer > 0 && aIter != aEnd; --nSelRenderer )
+ ++aIter;
- sal_Int32 nSelected = aPageRanges.FirstSelected();
- while ( nSelRenderer > 0 )
- {
- nSelected = aPageRanges.NextSelected();
- --nSelRenderer;
- }
- return nSelected - 1; // selection is 1-based
+ return *aIter; // returns -1 if reached the end
}
uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32 nSelRenderer,
@@ -1003,7 +999,7 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32
nTotalPages = pPrintFuncCache->GetPageCount();
}
sal_Int32 nRenderer = lcl_GetRendererNum( nSelRenderer, aPagesStr, nTotalPages );
- if ( nRenderer >= nTotalPages )
+ if ( nRenderer < 0 )
{
if ( nSelRenderer == 0 )
{
@@ -1108,7 +1104,7 @@ void SAL_CALL ScModelObj::render( sal_Int32 nSelRenderer, const uno::Any& aSelec
}
long nTotalPages = pPrintFuncCache->GetPageCount();
sal_Int32 nRenderer = lcl_GetRendererNum( nSelRenderer, aPagesStr, nTotalPages );
- if ( nRenderer >= nTotalPages )
+ if ( nRenderer < 0 )
throw lang::IllegalArgumentException();
OutputDevice* pDev = lcl_GetRenderDevice( rOptions );