diff options
| author | Peter Penz <[email protected]> | 2010-10-06 13:58:47 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2010-10-06 13:58:47 +0000 |
| commit | e2b844437e9308a04ddf043ae9d2f5c8ffef97b0 (patch) | |
| tree | 042c21fdef8d013c763fbfa254d4f9393b6b0710 /src/views/viewextensionsfactory.cpp | |
| parent | 2297cbee2ecc9e882d02125e4f38f3b557c83443 (diff) | |
Use a pointing-hand cursor when hovering items as discussed on http://lists.kde.org/?l=kde-core-devel&m=126027946921686&w=1
svn path=/trunk/KDE/kdebase/apps/; revision=1183195
Diffstat (limited to 'src/views/viewextensionsfactory.cpp')
| -rw-r--r-- | src/views/viewextensionsfactory.cpp | 38 |
1 files changed, 36 insertions, 2 deletions
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 <kdirmodel.h> #include <kfilepreviewgenerator.h> #include <QAbstractItemView> +#include <QApplication> 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<DolphinSortFilterProxyModel*>(m_view->model()); |
