X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/2297cbee2ecc9e882d02125e4f38f3b557c83443..e2b844437e9308a04ddf043ae9d2f5c8ffef97b0:/src/views/viewextensionsfactory.cpp diff --git a/src/views/viewextensionsfactory.cpp b/src/views/viewextensionsfactory.cpp index 0ddb9d0a4..6d4ab09ca 100644 --- a/src/views/viewextensionsfactory.cpp +++ b/src/views/viewextensionsfactory.cpp @@ -37,11 +37,13 @@ #include #include #include +#include ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view, DolphinViewController* dolphinViewController, const ViewModeController* viewModeController) : QObject(view), + m_appliedPointingHandCursor(false), m_view(view), m_dolphinViewController(dolphinViewController), m_toolTipManager(0), @@ -127,6 +129,10 @@ ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view, this, SLOT(slotNameFilterChanged(const QString&))); view->viewport()->installEventFilter(this); + + // Apply a pointing-hand cursor when hovering files + connect(view, SIGNAL(entered(const QModelIndex&)), SLOT(applyPointingHandCursor())); + connect(view, SIGNAL(viewportEntered()), SLOT(restoreCursor())); } ViewExtensionsFactory::~ViewExtensionsFactory() @@ -156,9 +162,21 @@ bool ViewExtensionsFactory::autoFolderExpandingEnabled() const bool ViewExtensionsFactory::eventFilter(QObject* watched, QEvent* event) { Q_UNUSED(watched); - if ((event->type() == QEvent::Wheel) && (m_selectionManager != 0)) { - m_selectionManager->reset(); + + switch (event->type()) { + case QEvent::Wheel: + if (m_selectionManager != 0) { + m_selectionManager->reset(); + } + break; + + case QEvent::Leave: + restoreCursor(); + break; + + default: break; } + return false; } @@ -235,6 +253,22 @@ void ViewExtensionsFactory::requestActivation() m_dolphinViewController->requestActivation(); } +void ViewExtensionsFactory::applyPointingHandCursor() +{ + if (!m_appliedPointingHandCursor && !(QApplication::mouseButtons() & Qt::LeftButton)) { + QApplication::setOverrideCursor(QCursor(Qt::PointingHandCursor)); + m_appliedPointingHandCursor = true; + } +} + +void ViewExtensionsFactory::restoreCursor() +{ + if (m_appliedPointingHandCursor) { + QApplication::restoreOverrideCursor(); + m_appliedPointingHandCursor = false; + } +} + DolphinSortFilterProxyModel* ViewExtensionsFactory::proxyModel() const { return static_cast(m_view->model());