]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Scroll by page if Shift Key is pressed
authorAshish Bansal <bansal.ashish096@gmail.com>
Wed, 6 May 2015 10:17:18 +0000 (15:47 +0530)
committerAshish Bansal <bansal.ashish096@gmail.com>
Wed, 6 May 2015 10:17:18 +0000 (15:47 +0530)
If shift key is pressed along with scroll, scroll up/down by whole page.

REVIEW: 123596

src/kitemviews/kitemlistcontainer.cpp

index f5c785a3ee6432a53846d6e41dcf420600484ede..c9d521ce788fabab56ea6ca943a14174bee9bc14 100644 (file)
@@ -186,11 +186,21 @@ void KItemListContainer::wheelEvent(QWheelEvent* event)
     const QScrollBar* scrollBar = smoothScroller->scrollBar();
     if (!event->pixelDelta().isNull()) {
         const int numPixels =  event->pixelDelta().y();
-        smoothScroller->scrollTo(scrollBar->value() - numPixels);
+        if (event->modifiers().testFlag(Qt::ShiftModifier)) {
+            const int scrollingDirection = numPixels > 0 ? 1 : -1;
+            smoothScroller->scrollTo(scrollBar->value() - scrollBar->pageStep() * scrollingDirection);
+        } else {
+            smoothScroller->scrollTo(scrollBar->value() - numPixels);
+        }
     } else {
         const int numDegrees = event->angleDelta().y() / 8;
         const int numSteps = numDegrees / 15;
-        smoothScroller->scrollTo(scrollBar->value() - numSteps * scrollBar->pageStep() / 4);
+        if (event->modifiers().testFlag(Qt::ShiftModifier)) {
+            const int scrollingDirection = numSteps > 0 ? 1 : -1;
+            smoothScroller->scrollTo(scrollBar->value() - scrollBar->pageStep() * scrollingDirection);
+        } else {
+            smoothScroller->scrollTo(scrollBar->value() - numSteps * scrollBar->pageStep() / 4);
+        }
     }
 
     event->accept();