┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2009-10-25 10:41:15 +0000
committerFrank Reininghaus <[email protected]>2009-10-25 10:41:15 +0000
commit499e8723f4b82ed1e9abbee91594ab8170421e11 (patch)
tree1dd1428c806993fd5dcc41a0f41bda5ae7f32017 /src
parent9c2f205a097e043a6ea301d4e17802507c35d4d0 (diff)
Do not zoom the icons if the user presses Control and the left mouse
button while using the mouse wheel. The user is probably trying to scroll the view during a rubberband selection in that case. Also simplify the code a bit by handling the icon zooming in DolphinView::eventFilter(). BUG: 190703 svn path=/trunk/KDE/kdebase/apps/; revision=1040021
Diffstat (limited to 'src')
-rw-r--r--src/dolphincolumnview.cpp6
-rw-r--r--src/dolphindetailsview.cpp6
-rw-r--r--src/dolphiniconsview.cpp6
-rw-r--r--src/dolphinview.cpp32
-rw-r--r--src/dolphinview.h1
5 files changed, 18 insertions, 33 deletions
diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp
index 2d3bcb826..9157c7ed4 100644
--- a/src/dolphincolumnview.cpp
+++ b/src/dolphincolumnview.cpp
@@ -340,12 +340,6 @@ void DolphinColumnView::contextMenuEvent(QContextMenuEvent* event)
void DolphinColumnView::wheelEvent(QWheelEvent* event)
{
- // let Ctrl+wheel events propagate to the DolphinView for icon zooming
- if (event->modifiers() & Qt::ControlModifier) {
- event->ignore();
- return;
- }
-
const int height = m_decorationSize.height();
const int step = (height >= KIconLoader::SizeHuge) ? height / 10 : (KIconLoader::SizeHuge - height) / 2;
verticalScrollBar()->setSingleStep(step);
diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp
index 3dca2da28..9d32dd247 100644
--- a/src/dolphindetailsview.cpp
+++ b/src/dolphindetailsview.cpp
@@ -401,12 +401,6 @@ void DolphinDetailsView::resizeEvent(QResizeEvent* event)
void DolphinDetailsView::wheelEvent(QWheelEvent* event)
{
- // let Ctrl+wheel events propagate to the DolphinView for icon zooming
- if (event->modifiers() & Qt::ControlModifier) {
- event->ignore();
- return;
- }
-
const int height = m_decorationSize.height();
const int step = (height >= KIconLoader::SizeHuge) ? height / 10 : (KIconLoader::SizeHuge - height) / 2;
verticalScrollBar()->setSingleStep(step);
diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp
index bd070ad1c..e7448ed6d 100644
--- a/src/dolphiniconsview.cpp
+++ b/src/dolphiniconsview.cpp
@@ -314,12 +314,6 @@ void DolphinIconsView::keyPressEvent(QKeyEvent* event)
void DolphinIconsView::wheelEvent(QWheelEvent* event)
{
- // let Ctrl+wheel events propagate to the DolphinView for icon zooming
- if (event->modifiers() & Qt::ControlModifier) {
- event->ignore();
- return;
- }
-
horizontalScrollBar()->setSingleStep(m_itemSize.width() / 10);
verticalScrollBar()->setSingleStep(m_itemSize.height() / 10);
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp
index a49aabdd9..034b81d3f 100644
--- a/src/dolphinview.cpp
+++ b/src/dolphinview.cpp
@@ -831,20 +831,6 @@ void DolphinView::mouseReleaseEvent(QMouseEvent* event)
setActive(true);
}
-void DolphinView::wheelEvent(QWheelEvent* event)
-{
- if (event->modifiers() & Qt::ControlModifier) {
- const int delta = event->delta();
- const int level = zoomLevel();
- if (delta > 0) {
- setZoomLevel(level + 1);
- } else if (delta < 0) {
- setZoomLevel(level - 1);
- }
- event->accept();
- }
-}
-
bool DolphinView::eventFilter(QObject* watched, QEvent* event)
{
switch (event->type()) {
@@ -870,6 +856,24 @@ bool DolphinView::eventFilter(QObject* watched, QEvent* event)
}
break;
+ case QEvent::Wheel:
+ if (watched == m_viewAccessor.itemView()->viewport()) {
+ // Ctrl+wheel events should cause icon zooming, but not if the left mouse button is pressed
+ // (the user is probably trying to scroll during a selection in that case)
+ QWheelEvent* wheelEvent = static_cast<QWheelEvent*>(event);
+ if (wheelEvent->modifiers() & Qt::ControlModifier && !(wheelEvent->buttons() & Qt::LeftButton)) {
+ const int delta = wheelEvent->delta();
+ const int level = zoomLevel();
+ if (delta > 0) {
+ setZoomLevel(level + 1);
+ } else if (delta < 0) {
+ setZoomLevel(level - 1);
+ }
+ return true;
+ }
+ }
+ break;
+
default:
break;
}
diff --git a/src/dolphinview.h b/src/dolphinview.h
index cf0f46360..03154f950 100644
--- a/src/dolphinview.h
+++ b/src/dolphinview.h
@@ -559,7 +559,6 @@ signals:
protected:
/** @see QWidget::mouseReleaseEvent */
virtual void mouseReleaseEvent(QMouseEvent* event);
- virtual void wheelEvent(QWheelEvent* event);
virtual bool eventFilter(QObject* watched, QEvent* event);
private slots: