The specialized views still need to ignore the Ctrl-qualified wheel events, though.
svn path=/trunk/KDE/kdebase/apps/; revision=773976
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()) {
virtual void mousePressEvent(QMouseEvent* event);
virtual void resizeEvent(QResizeEvent* event);
+ virtual void wheelEvent(QWheelEvent* event);
private slots:
void zoomIn();
}
}
+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);
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:
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();
virtual void paintEvent(QPaintEvent* event);
virtual void keyPressEvent(QKeyEvent* event);
virtual void resizeEvent(QResizeEvent* event);
+ virtual void wheelEvent(QWheelEvent* event);
private slots:
/**
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);
}
}
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);
protected:
/** @see QWidget::mouseReleaseEvent */
virtual void mouseReleaseEvent(QMouseEvent* event);
+ virtual void wheelEvent(QWheelEvent* event);
private slots:
/**