┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/viewextensionsfactory.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-10-06 13:58:47 +0000
committerPeter Penz <[email protected]>2010-10-06 13:58:47 +0000
commite2b844437e9308a04ddf043ae9d2f5c8ffef97b0 (patch)
tree042c21fdef8d013c763fbfa254d4f9393b6b0710 /src/views/viewextensionsfactory.cpp
parent2297cbee2ecc9e882d02125e4f38f3b557c83443 (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.cpp38
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());