From 5e89aedf168b8972477436ee541eaa45c2154623 Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Sun, 14 Sep 2003 21:26:04 +0000 Subject: [PATCH] Use key to move page svn path=/trunk/kdegraphics/kpdf/; revision=251097 --- kpdf/kpdf_pagewidget.cc | 54 ++++++++++++++++++++++++++++++++++++++++- kpdf/kpdf_pagewidget.h | 8 +++++- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/kpdf/kpdf_pagewidget.cc b/kpdf/kpdf_pagewidget.cc index ddbb7b0e1..a77623faf 100644 --- a/kpdf/kpdf_pagewidget.cc +++ b/kpdf/kpdf_pagewidget.cc @@ -21,7 +21,8 @@ namespace KPDF m_pressedAction( 0 ) { m_outputdev = new QOutputDevPixmap(); - setMouseTracking(true); + setFocusPolicy( QWidget::StrongFocus ); + viewport()->setFocusPolicy( QWidget::WheelFocus ); } PageWidget::~PageWidget() { @@ -129,6 +130,57 @@ namespace KPDF setVScrollBarMode( b ? Auto : AlwaysOff ); } + void PageWidget::scrollRight() + { + horizontalScrollBar()->addLine(); + } + + void PageWidget::scrollLeft() + { + horizontalScrollBar()->subtractLine(); + } + + void PageWidget::scrollDown() + { + verticalScrollBar()->addLine(); + } + + void PageWidget::scrollUp() + { + verticalScrollBar()->subtractLine(); + } + + void PageWidget::scrollBottom() + { + verticalScrollBar()->setValue( verticalScrollBar()->maxValue() ); + } + + void PageWidget::scrollTop() + { + verticalScrollBar()->setValue( verticalScrollBar()->minValue() ); + } + + void PageWidget::keyPressEvent( QKeyEvent* e ) + { + switch ( e->key() ) { + case Key_Up: + scrollUp(); + break; + case Key_Down: + scrollDown(); + break; + case Key_Left: + scrollLeft(); + break; + case Key_Right: + scrollRight(); + break; + default: + e->ignore(); + return; + } + e->accept(); + } void PageWidget::updatePixmap() { if ( m_doc ) diff --git a/kpdf/kpdf_pagewidget.h b/kpdf/kpdf_pagewidget.h index 9cb6a2190..40f8175b1 100644 --- a/kpdf/kpdf_pagewidget.h +++ b/kpdf/kpdf_pagewidget.h @@ -38,11 +38,17 @@ namespace KPDF void zoomOut(); void updatePixmap(); - + void scrollUp(); + void scrollDown(); + void scrollRight(); + void scrollLeft(); + void scrollBottom(); + void scrollTop(); signals: void linkClicked(LinkAction*); protected: + virtual void keyPressEvent( QKeyEvent* ); void contentsMousePressEvent(QMouseEvent*); void contentsMouseReleaseEvent(QMouseEvent*); void contentsMouseMoveEvent(QMouseEvent*);