]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix regression concerning Control+mouse wheel zooming
authorFrank Reininghaus <frank78ac@googlemail.com>
Sat, 15 Oct 2011 18:08:42 +0000 (20:08 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Sat, 15 Oct 2011 18:08:42 +0000 (20:08 +0200)
Commit 9311f4bc97ec7000be46b8eec242a8 accidentally removed
DolphinView::wheelEvent(), which is responsible for the handling of
Control+mouse wheel events. These should change the zoom level.

src/views/dolphinview.cpp
src/views/dolphinview.h

index f2f434f462fcdb68103685c53b375444493ab231..2bd95767a8c5775b010513ec579d5d7dbe1751c8 100644 (file)
@@ -712,6 +712,19 @@ bool DolphinView::eventFilter(QObject* watched, QEvent* event)
     return QWidget::eventFilter(watched, event);
 }
 
+void DolphinView::wheelEvent(QWheelEvent* event)
+{
+    if (event->modifiers().testFlag(Qt::ControlModifier)) {
+        const int numDegrees = event->delta() / 8;
+        const int numSteps = numDegrees / 15;
+
+        setZoomLevel(zoomLevel() + numSteps);
+        event->accept();
+    } else {
+        event->ignore();
+    }
+}
+
 void DolphinView::activate()
 {
     setActive(true);
index c3981bef479b22a57115f1210227316c008b9aaa..770bbde72811c6ec9b1f19471ab14c803374591c 100644 (file)
@@ -553,6 +553,10 @@ signals:
      */
     void writeStateChanged(bool isFolderWritable);
 
+protected:
+    /** Changes the zoom level if Control is pressed during a wheel event. */
+    virtual void wheelEvent(QWheelEvent* event);
+
 private slots:
     /**
      * Marks the view as active (DolphinView:isActive() will return true)