| Summary: | [HIG] SHIFT+SPACE doesn't scroll upwards | ||
|---|---|---|---|
| Product: | [Applications] okular | Reporter: | Florian Grässle <holehan> |
| Component: | general | Assignee: | Okular developers <okular-devel> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Compiled Sources | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Florian Grässle
2007-07-20 12:55:49 UTC
SVN commit 690227 by pino:
Shift + Space is one screen back, says the HIG.
BUG: 148054
M +45 -38 pageview.cpp
--- trunk/KDE/kdegraphics/okular/ui/pageview.cpp #690226:690227
@@ -1033,52 +1033,59 @@
// move/scroll page by using keys
switch ( e->key() )
{
+ case Qt::Key_Down:
+ case Qt::Key_PageDown:
+ case Qt::Key_Space:
case Qt::Key_Up:
case Qt::Key_PageUp:
case Qt::Key_Backspace:
- // 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_Down
+ || 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 );
+ // 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 ( e->key() == Qt::Key_Down )
+ verticalScrollBar()->triggerAction( QScrollBar::SliderSingleStepAdd );
+ else
+ verticalScrollBar()->triggerAction( QScrollBar::SliderPageStepAdd );
+ }
+ else if ( (int)d->document->currentPage() < d->items.count() - 1 )
+ {
+ // more optimized than document->setNextPage and then move view to top
+ Okular::DocumentViewport newViewport = d->document->viewport();
+ newViewport.pageNumber += d->document->currentPage() ? viewColumns() : 1;
+ if ( newViewport.pageNumber >= (int)d->items.count() )
+ newViewport.pageNumber = d->items.count() - 1;
+ newViewport.rePos.enabled = true;
+ newViewport.rePos.normalizedY = 0.0;
+ d->document->setViewport( newViewport );
+ }
}
- else if ( d->document->currentPage() > 0 )
+ else
{
- // 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 );
+ // 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;
- 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 ( Okular::Settings::viewContinuous() || verticalScrollBar()->value() < verticalScrollBar()->maximum() )
- {
- if ( e->key() == Qt::Key_Down )
- verticalScrollBar()->triggerAction( QScrollBar::SliderSingleStepAdd );
- else
- verticalScrollBar()->triggerAction( QScrollBar::SliderPageStepAdd );
- }
- else if ( (int)d->document->currentPage() < d->items.count() - 1 )
- {
- // more optimized than document->setNextPage and then move view to top
- Okular::DocumentViewport newViewport = d->document->viewport();
- newViewport.pageNumber += d->document->currentPage() ? viewColumns() : 1;
- if ( newViewport.pageNumber >= (int)d->items.count() )
- newViewport.pageNumber = d->items.count() - 1;
- newViewport.rePos.enabled = true;
- newViewport.rePos.normalizedY = 0.0;
- d->document->setViewport( newViewport );
- }
- break;
case Qt::Key_Left:
horizontalScrollBar()->triggerAction( QScrollBar::SliderSingleStepSub );
break;
|