┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2012-03-19 16:47:11 +0100
committerPeter Penz <[email protected]>2012-03-19 16:53:53 +0100
commit5798e081f52371b9fd91cf0348cc946ebcc28a4a (patch)
tree2e393e81c00b14fbfa6bb31d28ed9b8feb96486f /src/views
parent476128f01aba48f6519ead627d39175443f59758 (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.cpp18
-rw-r--r--src/views/dolphinview.h13
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