Shift + Space is one screen back, says the HIG.

BUG: 148054

svn path=/trunk/KDE/kdegraphics/okular/; revision=690227
remotes/origin/KDE/4.0
Pino Toscano 19 years ago
parent b8a458dcdc
commit ff3cf049ce
  1. 51
      ui/pageview.cpp

@ -1033,32 +1033,16 @@ void PageView::keyPressEvent( QKeyEvent * e )
// move/scroll page by using keys // move/scroll page by using keys
switch ( e->key() ) switch ( e->key() )
{ {
case Qt::Key_Down:
case Qt::Key_PageDown:
case Qt::Key_Space:
case Qt::Key_Up: case Qt::Key_Up:
case Qt::Key_PageUp: case Qt::Key_PageUp:
case Qt::Key_Backspace: case Qt::Key_Backspace:
// if in single page mode and at the top of the screen, go to \ page if ( e->key() == Qt::Key_Down
if ( Okular::Settings::viewContinuous() || verticalScrollBar()->value() > verticalScrollBar()->minimum() ) || e->key() == Qt::Key_PageDown
{ || ( e->key() == Qt::Key_Space && ( e->modifiers() & Qt::ShiftModifier ) != Qt::ShiftModifier ) )
if ( e->key() == Qt::Key_Up )
verticalScrollBar()->triggerAction( QScrollBar::SliderSingleStepSub );
else
verticalScrollBar()->triggerAction( QScrollBar::SliderPageStepSub );
}
else if ( d->document->currentPage() > 0 )
{ {
// more optimized than document->setPrevPage and then move view to bottom
Okular::DocumentViewport newViewport = d->document->viewport();
newViewport.pageNumber -= viewColumns();
if ( newViewport.pageNumber < 0 )
newViewport.pageNumber = 0;
newViewport.rePos.enabled = true;
newViewport.rePos.normalizedY = 1.0;
d->document->setViewport( newViewport );
}
break;
case Qt::Key_Down:
case Qt::Key_PageDown:
case Qt::Key_Space:
// if in single page mode and at the bottom of the screen, go to next page // if in single page mode and at the bottom of the screen, go to next page
if ( Okular::Settings::viewContinuous() || verticalScrollBar()->value() < verticalScrollBar()->maximum() ) if ( Okular::Settings::viewContinuous() || verticalScrollBar()->value() < verticalScrollBar()->maximum() )
{ {
@ -1078,6 +1062,29 @@ void PageView::keyPressEvent( QKeyEvent * e )
newViewport.rePos.normalizedY = 0.0; newViewport.rePos.normalizedY = 0.0;
d->document->setViewport( newViewport ); d->document->setViewport( newViewport );
} }
}
else
{
// if in single page mode and at the top of the screen, go to \ page
if ( Okular::Settings::viewContinuous() || verticalScrollBar()->value() > verticalScrollBar()->minimum() )
{
if ( e->key() == Qt::Key_Up )
verticalScrollBar()->triggerAction( QScrollBar::SliderSingleStepSub );
else
verticalScrollBar()->triggerAction( QScrollBar::SliderPageStepSub );
}
else if ( d->document->currentPage() > 0 )
{
// more optimized than document->setPrevPage and then move view to bottom
Okular::DocumentViewport newViewport = d->document->viewport();
newViewport.pageNumber -= viewColumns();
if ( newViewport.pageNumber < 0 )
newViewport.pageNumber = 0;
newViewport.rePos.enabled = true;
newViewport.rePos.normalizedY = 1.0;
d->document->setViewport( newViewport );
}
}
break; break;
case Qt::Key_Left: case Qt::Key_Left:
horizontalScrollBar()->triggerAction( QScrollBar::SliderSingleStepSub ); horizontalScrollBar()->triggerAction( QScrollBar::SliderSingleStepSub );

Loading…
Cancel
Save