diff options
| author | Peter Penz <[email protected]> | 2012-03-19 16:47:11 +0100 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2012-03-19 16:53:53 +0100 |
| commit | 5798e081f52371b9fd91cf0348cc946ebcc28a4a (patch) | |
| tree | 2e393e81c00b14fbfa6bb31d28ed9b8feb96486f /src/views | |
| parent | 476128f01aba48f6519ead627d39175443f59758 (diff) | |
Let additional mouse buttons trigger history navigation
Thanks to Sebastian Dörner for the patch!
REVIEW: 101335
BUG: 181823
FIXED-IN: 4.9
Diffstat (limited to 'src/views')
| -rw-r--r-- | src/views/dolphinview.cpp | 18 | ||||
| -rw-r--r-- | src/views/dolphinview.h | 13 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 29a132184..75561a9c6 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -142,7 +142,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : connect(controller, SIGNAL(itemContextMenuRequested(int,QPointF)), this, SLOT(slotItemContextMenuRequested(int,QPointF))); connect(controller, SIGNAL(viewContextMenuRequested(QPointF)), this, SLOT(slotViewContextMenuRequested(QPointF))); connect(controller, SIGNAL(headerContextMenuRequested(QPointF)), this, SLOT(slotHeaderContextMenuRequested(QPointF))); - connect(controller, SIGNAL(itemPressed(int,Qt::MouseButton)), this, SLOT(hideToolTip())); + connect(controller, SIGNAL(mouseButtonPressed(int,Qt::MouseButtons)), this, SLOT(slotMouseButtonPressed(int,Qt::MouseButtons))); connect(controller, SIGNAL(itemHovered(int)), this, SLOT(slotItemHovered(int))); connect(controller, SIGNAL(itemUnhovered(int)), this, SLOT(slotItemUnhovered(int))); connect(controller, SIGNAL(itemDropEvent(int,QGraphicsSceneDragDropEvent*)), this, SLOT(slotItemDropEvent(int,QGraphicsSceneDragDropEvent*))); @@ -889,6 +889,22 @@ void DolphinView::slotModelChanged(KItemModelBase* current, KItemModelBase* prev m_versionControlObserver->setModel(fileItemModel); } +void DolphinView::slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons) +{ + hideToolTip(); + + if (itemIndex < 0) { + // Trigger the history navigation only when clicking on the viewport: + // Above an item the XButtons provide a simple way to select items in + // the singleClick mode. + if (buttons & Qt::XButton1) { + emit goBackRequested(); + } else if (buttons & Qt::XButton2) { + emit goForwardRequested(); + } + } +} + void DolphinView::slotSelectionChanged(const QSet<int>& current, const QSet<int>& previous) { const int currentCount = current.count(); diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 628ab2dc5..48d0646c4 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -511,6 +511,18 @@ signals: */ void writeStateChanged(bool isFolderWritable); + /** + * Is emitted if the URL should be changed to the previous URL of the + * history (e.g. because the "back"-mousebutton has been pressed). + */ + void goBackRequested(); + + /** + * Is emitted if the URL should be changed to the next URL of the + * history (e.g. because the "next"-mousebutton has been pressed). + */ + void goForwardRequested(); + protected: /** Changes the zoom level if Control is pressed during a wheel event. */ virtual void wheelEvent(QWheelEvent* event); @@ -535,6 +547,7 @@ private slots: void slotItemUnhovered(int index); void slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event); void slotModelChanged(KItemModelBase* current, KItemModelBase* previous); + void slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons); /** * Emits the signal \a selectionChanged() with a small delay. This is |
