diff --git a/part-viewermode.rc b/part-viewermode.rc --- a/part-viewermode.rc +++ b/part-viewermode.rc @@ -1,5 +1,5 @@ - + &File @@ -22,6 +22,7 @@ + diff --git a/part.rc b/part.rc --- a/part.rc +++ b/part.rc @@ -1,5 +1,5 @@ - + &File @@ -31,6 +31,7 @@ + diff --git a/ui/pageview.h b/ui/pageview.h --- a/ui/pageview.h +++ b/ui/pageview.h @@ -62,9 +62,9 @@ PageView( QWidget *parent, Okular::Document *document ); ~PageView(); - // Zoom mode ( last 3 are internally used only! ) + // Zoom mode ( last 4 are internally used only! ) enum ZoomMode { ZoomFixed = 0, ZoomFitWidth = 1, ZoomFitPage = 2, ZoomFitAuto = 3, - ZoomIn, ZoomOut, ZoomRefreshCurrent }; + ZoomIn, ZoomOut, ZoomRefreshCurrent, ZoomActual }; enum ClearMode { ClearAllSelection, ClearOnlyDividers }; @@ -237,6 +237,7 @@ void slotZoom(); void slotZoomIn(); void slotZoomOut(); + void slotZoomActual(); void slotFitToWidthToggled( bool ); void slotFitToPageToggled( bool ); void slotAutoFitToggled( bool ); diff --git a/ui/pageview.cpp b/ui/pageview.cpp --- a/ui/pageview.cpp +++ b/ui/pageview.cpp @@ -222,6 +222,7 @@ KSelectAction * aZoom; QAction * aZoomIn; QAction * aZoomOut; + QAction * aZoomActual; KToggleAction * aZoomFitWidth; KToggleAction * aZoomFitPage; KToggleAction * aZoomAutoFit; @@ -483,6 +484,9 @@ d->aZoomIn = KStandardAction::zoomIn( this, SLOT(slotZoomIn()), ac ); d->aZoomOut = KStandardAction::zoomOut( this, SLOT(slotZoomOut()), ac ); + + d->aZoomActual = KStandardAction::actualSize( this, &PageView::slotZoomActual, ac ); + d->aZoomActual->setText(i18n("Zoom to 100%")); } void PageView::setupViewerActions( KActionCollection * ac ) @@ -1204,6 +1208,8 @@ d->aZoomIn->setEnabled( haspages ); if ( d->aZoomOut ) d->aZoomOut->setEnabled( haspages ); + if ( d->aZoomActual ) + d->aZoomActual->setEnabled( haspages && d->zoomFactor != 1.0 ); if ( d->mouseModeActionGroup ) d->mouseModeActionGroup->setEnabled( haspages ); @@ -4001,6 +4007,10 @@ } } break; + case ZoomActual: + newZoomMode = ZoomFixed; + newFactor = 1.0; + break; case ZoomFitWidth: checkedZoomAction = d->aZoomFitWidth; break; @@ -4048,6 +4058,7 @@ d->aZoomIn->setEnabled( d->zoomFactor < upperZoomLimit-0.001 ); d->aZoomOut->setEnabled( d->zoomFactor > 0.101 ); + d->aZoomActual->setEnabled( d->zoomFactor != 1.0 ); } void PageView::updateZoomText() @@ -4978,6 +4989,11 @@ updateZoom( ZoomOut ); } +void PageView::slotZoomActual() +{ + updateZoom( ZoomActual ); +} + void PageView::slotFitToWidthToggled( bool on ) { if ( on ) updateZoom( ZoomFitWidth );