@ -1774,6 +1774,8 @@ void PageView::selectionClear()
void PageView : : updateZoom ( ZoomMode newZoomMode )
{
kDebug ( ) < < " PageView::updateZoom(newZoomMode= " < < newZoomMode < < " ) " < < endl ;
if ( newZoomMode = = ZoomFixed )
{
if ( d - > aZoom - > currentItem ( ) = = 0 )
@ -1788,7 +1790,12 @@ void PageView::updateZoom( ZoomMode newZoomMode )
{
case ZoomFixed : { //ZoomFixed case
QString z = d - > aZoom - > currentText ( ) ;
newFactor = KGlobal : : locale ( ) - > readNumber ( z . remove ( z . indexOf ( ' % ' ) , 1 ) ) / 100.0 ;
kDebug ( ) < < " \t currentText= " < < z < < endl ;
// kdelibs4 sometimes adds accelerators to actions' text directly :(
z . remove ( ' & ' ) ;
z . remove ( ' % ' ) ;
newFactor = KGlobal : : locale ( ) - > readNumber ( z ) / 100.0 ;
kDebug ( ) < < " \t newFactor= " < < newFactor < < endl ;
} break ;
case ZoomIn :
newFactor + = ( newFactor > 0.99 ) ? ( newFactor > 1.99 ? 0.5 : 0.2 ) : 0.1 ;
@ -1819,6 +1826,7 @@ void PageView::updateZoom( ZoomMode newZoomMode )
if ( newZoomMode ! = d - > zoomMode | | ( newZoomMode = = ZoomFixed & & newFactor ! = d - > zoomFactor ) )
{
kDebug ( ) < < " \t causing update= " < < newFactor < < endl ;
// rebuild layout and update the whole viewport
d - > zoomMode = newZoomMode ;
d - > zoomFactor = newFactor ;
@ -1848,6 +1856,7 @@ void PageView::updateZoomText()
if ( d - > zoomMode ! = ZoomFixed & & d - > items . count ( ) > 0 )
d - > zoomFactor = d - > items [ qMax ( 0 , ( int ) d - > document - > currentPage ( ) ) ] - > zoomFactor ( ) ;
float newFactor = d - > zoomFactor ;
kDebug ( ) < < " PageView::updateZoomText() newFactor= " < < newFactor < < endl ;
d - > aZoom - > removeAllActions ( ) ;
// add items that describe fit actions
@ -1860,11 +1869,17 @@ void PageView::updateZoomText()
int idx = 0 ,
selIdx = 2 ; // use 3 if "fit text" present
bool inserted = false ; //use: "d->zoomMode != ZoomFixed" to hide Fit/* zoom ratio
kDebug ( ) < < " \t loop " < < endl ;
while ( idx < 10 | | ! inserted )
{
kDebug ( ) < < " \t \t idx= " < < idx < < " inserted= " < < inserted < < endl ;
float value = idx < 10 ? zoomValue [ idx ] : newFactor ;
kDebug ( ) < < " \t \t \t value= " < < value < < endl ;
if ( ! inserted & & newFactor < ( value - 0.0001 ) )
{
value = newFactor ;
kDebug ( ) < < " \t \t \t \t newFactor might come before us; value=newFactor= " < < newFactor < < endl ;
}
else
idx + + ;
if ( value > ( newFactor - 0.0001 ) & & value < ( newFactor + 0.0001 ) )
@ -1873,8 +1888,10 @@ void PageView::updateZoomText()
selIdx + + ;
QString localValue ( KGlobal : : locale ( ) - > formatNumber ( value * 100.0 , 2 ) ) ;
localValue . remove ( KGlobal : : locale ( ) - > decimalSymbol ( ) + double_oh ) ;
kDebug ( ) < < " \t \t \t adding ' " < < localValue < < " ' " < < endl ;
translated < < QString ( " %1% " ) . arg ( localValue ) ;
}
kDebug ( ) < < " \t setItems( " < < translated < < " ) " < < endl ;
d - > aZoom - > setItems ( translated ) ;
// select current item in list