]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Move the Ctrl-wheel zoom handling to dolphinview.
authorLuciano Montanaro <mikelima@cirulla.net>
Tue, 12 Feb 2008 09:27:26 +0000 (09:27 +0000)
committerLuciano Montanaro <mikelima@cirulla.net>
Tue, 12 Feb 2008 09:27:26 +0000 (09:27 +0000)
The specialized views still need to ignore the Ctrl-qualified wheel events, though.

svn path=/trunk/KDE/kdebase/apps/; revision=773976

src/dolphincolumnview.cpp
src/dolphincolumnview.h
src/dolphincolumnwidget.cpp
src/dolphincolumnwidget.h
src/dolphindetailsview.cpp
src/dolphindetailsview.h
src/dolphiniconsview.cpp
src/dolphinview.cpp
src/dolphinview.h

index 907daa0d67bb855c5390a7346c1ac39a6e3ce10e..7257cd8301ec9d0d722d9d73ca383c00ff703be8 100644 (file)
@@ -338,6 +338,16 @@ void DolphinColumnView::resizeEvent(QResizeEvent* event)
     assureVisibleActiveColumn();
 }
 
+void DolphinColumnView::wheelEvent(QWheelEvent* event)
+{
+    // let Ctrl+wheel events propagate to the DolphinView for icon zooming
+    if ((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier) {
+        event->ignore();
+       return;
+    }
+    QAbstractItemView::wheelEvent(event);
+}
+
 void DolphinColumnView::zoomIn()
 {
     if (isZoomInPossible()) {
index 1ebca0d674981692561cd84dc8716b26a7eafc44..6ac4fdb3f177986e1b8014109bf898397919e970 100644 (file)
@@ -105,6 +105,7 @@ protected:
 
     virtual void mousePressEvent(QMouseEvent* event);
     virtual void resizeEvent(QResizeEvent* event);
+    virtual void wheelEvent(QWheelEvent* event);
 
 private slots:
     void zoomIn();
index 3eed9f4b3f5581aaa62b9a0d75a38a2a6600b59c..ba56325025697b31fcb799f41d4d178332bc1664 100644 (file)
@@ -364,6 +364,16 @@ void DolphinColumnWidget::contextMenuEvent(QContextMenuEvent* event)
     }
 }
 
+void DolphinColumnWidget::wheelEvent(QWheelEvent* event)
+{
+    // let Ctrl+wheel events propagate to the DolphinView for icon zooming
+    if ((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier) {
+        event->ignore();
+       return;
+    }
+    QListView::wheelEvent(event);
+}
+
 void DolphinColumnWidget::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected)
 {
     QListView::selectionChanged(selected, deselected);
index bacbc96092e5b515157c4e77262e5dd21e6a7515..1054af2e32a6f1bb9f6c6b771967bacdda043390 100644 (file)
@@ -109,6 +109,7 @@ protected:
     virtual void mousePressEvent(QMouseEvent* event);
     virtual void keyPressEvent(QKeyEvent* event);
     virtual void contextMenuEvent(QContextMenuEvent* event);
+    virtual void wheelEvent(QWheelEvent* event);
     virtual void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
 
 private slots:
index 43d74db140f145e428e9623b26401dfaa2c27eae..df5246bedba18d9f103d6c08308d21f950fd5b6b 100644 (file)
@@ -364,6 +364,16 @@ void DolphinDetailsView::resizeEvent(QResizeEvent* event)
     QTreeView::resizeEvent(event);
 }
 
+void DolphinDetailsView::wheelEvent(QWheelEvent* event)
+{
+    // let Ctrl+wheel events propagate to the DolphinView for icon zooming
+    if ((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier) {
+        event->ignore();
+       return;
+    }
+    QTreeView::wheelEvent(event);
+}
+
 void DolphinDetailsView::setSortIndicatorSection(DolphinView::Sorting sorting)
 {
     QHeaderView* headerView = header();
index 316620a5a43ef54144874a6d72b1b23849599dce..b717a0a51d0cad772617b2f90b16a86b38c30f44 100644 (file)
@@ -58,6 +58,7 @@ protected:
     virtual void paintEvent(QPaintEvent* event);
     virtual void keyPressEvent(QKeyEvent* event);
     virtual void resizeEvent(QResizeEvent* event);
+    virtual void wheelEvent(QWheelEvent* event);
 
 private slots:
     /**
index ccf12a737d55fb986f701a80e81eea21943bd237..ccf4cbfc5163b05c4370f3099da9f0c8903ed694 100644 (file)
@@ -297,29 +297,24 @@ void DolphinIconsView::keyPressEvent(QKeyEvent* event)
 
 void DolphinIconsView::wheelEvent(QWheelEvent* event)
 {
-    KCategorizedView::wheelEvent(event);
-
+    // let Ctrl+wheel events propagate to the DolphinView for icon zooming
     if ((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier) {
-        int d = event->delta();
-        if (d > 0) {
-            zoomIn();
-        } else if (d < 0) {
-            zoomOut();
-        }
-    } else {
-        // if the icons are aligned left to right, the vertical wheel event should
-        // be applied to the horizontal scrollbar
-        const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
-        const bool scrollHorizontal = (event->orientation() == Qt::Vertical) &&
-                                      (settings->arrangement() == QListView::LeftToRight);
-        if (scrollHorizontal) {
-            QWheelEvent horizEvent(event->pos(),
-                                   event->delta(),
-                                   event->buttons(),
-                                   event->modifiers(),
-                                   Qt::Horizontal);
-            QApplication::sendEvent(horizontalScrollBar(), &horizEvent);
-        }
+        event->ignore();
+       return;
+    }
+    KCategorizedView::wheelEvent(event);
+    // if the icons are aligned left to right, the vertical wheel event should
+    // be applied to the horizontal scrollbar
+    const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
+    const bool scrollHorizontal = (event->orientation() == Qt::Vertical) &&
+                                  (settings->arrangement() == QListView::LeftToRight);
+    if (scrollHorizontal) {
+        QWheelEvent horizEvent(event->pos(),
+                               event->delta(),
+                               event->buttons(),
+                               event->modifiers(),
+                               Qt::Horizontal);
+        QApplication::sendEvent(horizontalScrollBar(), &horizEvent);
     }
 }
 
index 7d3fea96a85fd70b48a3018cce02f589ecba6336..3fec8fdfb0d3087a0eb943f6e35a3ab8005658df 100644 (file)
@@ -537,6 +537,20 @@ void DolphinView::mouseReleaseEvent(QMouseEvent* event)
     QWidget::mouseReleaseEvent(event);
     setActive(true);
 }
+
+void DolphinView::wheelEvent(QWheelEvent* event)
+{
+    if ((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier) {
+        int d = event->delta();
+        if (d > 0 && isZoomInPossible()) {
+            zoomIn();
+        } else if (d < 0 && isZoomOutPossible()) {
+            zoomOut();
+        }
+       event->accept();
+    }
+}
+
 void DolphinView::activate()
 {
     setActive(true);
index 215a2a23c35793f5dd40e6cc4e4d76775e36fe4b..f1500429b23f577a49c1fe710ef3949437ae9fd7 100644 (file)
@@ -512,6 +512,7 @@ signals:
 protected:
     /** @see QWidget::mouseReleaseEvent */
     virtual void mouseReleaseEvent(QMouseEvent* event);
+    virtual void wheelEvent(QWheelEvent* event);
 
 private slots:
     /**