From 4911fcf8417043562fcf397596d212db5733e189 Mon Sep 17 00:00:00 2001 From: Mavridis Philippe Date: Tue, 28 May 2024 00:03:14 +0300 Subject: [PATCH] KDirOperator: add support for history navigation mouse buttons Signed-off-by: Mavridis Philippe --- tdeio/tdefile/tdediroperator.cpp | 25 +++++++++++++++++++++++++ tdeio/tdefile/tdediroperator.h | 3 +++ 2 files changed, 28 insertions(+) diff --git a/tdeio/tdefile/tdediroperator.cpp b/tdeio/tdefile/tdediroperator.cpp index 9bf947f20..8b133d433 100644 --- a/tdeio/tdefile/tdediroperator.cpp +++ b/tdeio/tdefile/tdediroperator.cpp @@ -145,6 +145,8 @@ KDirOperator::KDirOperator(const KURL& _url, setupMenu(); setFocusPolicy(TQWidget::WheelFocus); + + installEventFilter(this); } KDirOperator::~KDirOperator() @@ -1046,6 +1048,11 @@ void KDirOperator::connectView(KFileView *view) } m_fileView = view; + m_fileView->widget()->installEventFilter(this); + if (m_fileView->widget()->inherits("TQScrollView")) + { + (static_cast(m_fileView->widget()))->viewport()->installEventFilter(this); + } m_fileView->setDropOptions(d->dropOptions); viewActionCollection = 0L; KFileViewSignaler *sig = view->signaler(); @@ -1734,6 +1741,24 @@ TQString KDirOperator::viewConfigGroup() const return d->configGroup; } +bool KDirOperator::eventFilter(TQObject *obj, TQEvent *ev) +{ + if (ev->type() == TQEvent::MouseButtonRelease) + { + TQMouseEvent *mouseEv = static_cast(ev); + switch (mouseEv->button()) + { + case TQMouseEvent::HistoryBackButton: + back(); + return true; + case TQMouseEvent::HistoryForwardButton: + forward(); + return true; + } + } + return false; +} + void KDirOperator::virtual_hook( int, void* ) { /*BASE::virtual_hook( id, data );*/ } diff --git a/tdeio/tdefile/tdediroperator.h b/tdeio/tdefile/tdediroperator.h index 89b1a1709..50467fc61 100644 --- a/tdeio/tdefile/tdediroperator.h +++ b/tdeio/tdefile/tdediroperator.h @@ -936,6 +936,9 @@ private slots: void insertViewDependentActions(); +public: + bool eventFilter(TQObject *obj, TQEvent *ev); + private: static bool isReadable( const KURL& url );