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

migrate to StringRangeEnumerator in Basic

üst 9cbc1c32
...@@ -121,10 +121,13 @@ sal_Int32 SAL_CALL BasicRenderable::getRendererCount ( ...@@ -121,10 +121,13 @@ sal_Int32 SAL_CALL BasicRenderable::getRendererCount (
if( nContent == 1 ) if( nContent == 1 )
{ {
rtl::OUString aPageRange( getStringValue( "PageRange" ) ); rtl::OUString aPageRange( getStringValue( "PageRange" ) );
MultiSelection aSel( aPageRange ); if( aPageRange.getLength() )
long nSelCount = aSel.GetSelectCount(); {
if( nSelCount >= 0 && nSelCount < nCount ) StringRangeEnumerator aRangeEnum( aPageRange, 0, nCount-1 );
nCount = nSelCount; sal_Int32 nSelCount = aRangeEnum.size();
if( nSelCount >= 0 )
nCount = nSelCount;
}
} }
} }
else else
...@@ -177,12 +180,19 @@ void SAL_CALL BasicRenderable::render ( ...@@ -177,12 +180,19 @@ void SAL_CALL BasicRenderable::render (
if( nContent == 1 ) if( nContent == 1 )
{ {
rtl::OUString aPageRange( getStringValue( "PageRange" ) ); rtl::OUString aPageRange( getStringValue( "PageRange" ) );
MultiSelection aSel( aPageRange ); if( aPageRange.getLength() )
long nSelect = aSel.FirstSelected(); {
while( nSelect != long(SFX_ENDOFSELECTION) && nRenderer-- ) sal_Int32 nPageCount = mpWindow->countPages( pPrinter );
nSelect = aSel.NextSelected(); StringRangeEnumerator aRangeEnum( aPageRange, 0, nPageCount-1 );
if( nSelect != long(SFX_ENDOFSELECTION) ) StringRangeEnumerator::Iterator it = aRangeEnum.begin();
mpWindow->printPage( sal_Int32(nSelect-1), pPrinter ); for( ; it != aRangeEnum.end() && nRenderer; --nRenderer )
++it;
sal_Int32 nPage = ( it != aRangeEnum.end() ) ? *it : nRenderer;
mpWindow->printPage( nPage, pPrinter );
}
else
mpWindow->printPage( nRenderer, pPrinter );
} }
else else
mpWindow->printPage( nRenderer, pPrinter ); mpWindow->printPage( nRenderer, pPrinter );
......
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