Kaydet (Commit) f9f4c631 authored tarafından Ivan Timofeev's avatar Ivan Timofeev

migrate to StringRangeEnumerator in Calc

üst 3f845c29
...@@ -956,9 +956,8 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount( const uno::Any& aSelection, ...@@ -956,9 +956,8 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount( const uno::Any& aSelection,
sal_Int32 nSelectCount = nPages; sal_Int32 nSelectCount = nPages;
if ( aPagesStr.Len() ) if ( aPagesStr.Len() )
{ {
MultiSelection aPageRanges( aPagesStr ); StringRangeEnumerator aRangeEnum( aPagesStr, 0, nPages-1 );
aPageRanges.SetTotalRange( Range( 1, nPages ) ); nSelectCount = aRangeEnum.size();
nSelectCount = aPageRanges.GetSelectCount();
} }
return nSelectCount; return nSelectCount;
} }
...@@ -968,16 +967,13 @@ sal_Int32 lcl_GetRendererNum( sal_Int32 nSelRenderer, const String& rPagesStr, s ...@@ -968,16 +967,13 @@ sal_Int32 lcl_GetRendererNum( sal_Int32 nSelRenderer, const String& rPagesStr, s
if ( !rPagesStr.Len() ) if ( !rPagesStr.Len() )
return nSelRenderer; return nSelRenderer;
MultiSelection aPageRanges( rPagesStr ); StringRangeEnumerator aRangeEnum( rPagesStr, 0, nTotalPages-1 );
aPageRanges.SetTotalRange( Range( 1, nTotalPages ) ); StringRangeEnumerator::Iterator aIter = aRangeEnum.begin();
StringRangeEnumerator::Iterator aEnd = aRangeEnum.end();
for ( ; nSelRenderer > 0 && aIter != aEnd; --nSelRenderer )
++aIter;
sal_Int32 nSelected = aPageRanges.FirstSelected(); return *aIter; // returns -1 if reached the end
while ( nSelRenderer > 0 )
{
nSelected = aPageRanges.NextSelected();
--nSelRenderer;
}
return nSelected - 1; // selection is 1-based
} }
uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32 nSelRenderer, 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 ...@@ -1003,7 +999,7 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32
nTotalPages = pPrintFuncCache->GetPageCount(); nTotalPages = pPrintFuncCache->GetPageCount();
} }
sal_Int32 nRenderer = lcl_GetRendererNum( nSelRenderer, aPagesStr, nTotalPages ); sal_Int32 nRenderer = lcl_GetRendererNum( nSelRenderer, aPagesStr, nTotalPages );
if ( nRenderer >= nTotalPages ) if ( nRenderer < 0 )
{ {
if ( nSelRenderer == 0 ) if ( nSelRenderer == 0 )
{ {
...@@ -1108,7 +1104,7 @@ void SAL_CALL ScModelObj::render( sal_Int32 nSelRenderer, const uno::Any& aSelec ...@@ -1108,7 +1104,7 @@ void SAL_CALL ScModelObj::render( sal_Int32 nSelRenderer, const uno::Any& aSelec
} }
long nTotalPages = pPrintFuncCache->GetPageCount(); long nTotalPages = pPrintFuncCache->GetPageCount();
sal_Int32 nRenderer = lcl_GetRendererNum( nSelRenderer, aPagesStr, nTotalPages ); sal_Int32 nRenderer = lcl_GetRendererNum( nSelRenderer, aPagesStr, nTotalPages );
if ( nRenderer >= nTotalPages ) if ( nRenderer < 0 )
throw lang::IllegalArgumentException(); throw lang::IllegalArgumentException();
OutputDevice* pDev = lcl_GetRenderDevice( rOptions ); OutputDevice* pDev = lcl_GetRenderDevice( rOptions );
......
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