┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-04-16 20:26:21 +0000
committerPeter Penz <[email protected]>2008-04-16 20:26:21 +0000
commiteb36093c2c5a8782c7c7f6be92881c108c30a5b1 (patch)
tree12e4fe072f7b5388f5e4c357a726061bd82734de /src
parent12c1feb0c5ac8d402ee03dc9da39f826ae04ce0b (diff)
if the mouse is above an item and moved very fast outside the widget, no viewportEntered() signal might be emitted although the mouse has been moved above the viewport
svn path=/trunk/KDE/kdebase/apps/; revision=797742
Diffstat (limited to 'src')
-rw-r--r--src/dolphincolumnwidget.cpp9
-rw-r--r--src/dolphincolumnwidget.h1
-rw-r--r--src/dolphindetailsview.cpp13
-rw-r--r--src/dolphindetailsview.h1
-rw-r--r--src/dolphiniconsview.cpp9
-rw-r--r--src/dolphiniconsview.h1
6 files changed, 34 insertions, 0 deletions
diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp
index e7993b975..ee051ff1a 100644
--- a/src/dolphincolumnwidget.cpp
+++ b/src/dolphincolumnwidget.cpp
@@ -373,6 +373,15 @@ void DolphinColumnWidget::wheelEvent(QWheelEvent* event)
QListView::wheelEvent(event);
}
+void DolphinColumnWidget::leaveEvent(QEvent* event)
+{
+ QListView::leaveEvent(event);
+ // if the mouse is above an item and moved very fast outside the widget,
+ // no viewportEntered() signal might be emitted although the mouse has been moved
+ // above the viewport
+ m_view->m_controller->emitViewportEntered();
+}
+
void DolphinColumnWidget::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected)
{
QListView::selectionChanged(selected, deselected);
diff --git a/src/dolphincolumnwidget.h b/src/dolphincolumnwidget.h
index 11acb6d02..e51ff5d97 100644
--- a/src/dolphincolumnwidget.h
+++ b/src/dolphincolumnwidget.h
@@ -115,6 +115,7 @@ protected:
virtual void keyPressEvent(QKeyEvent* event);
virtual void contextMenuEvent(QContextMenuEvent* event);
virtual void wheelEvent(QWheelEvent* event);
+ virtual void leaveEvent(QEvent* event);
virtual void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
private slots:
diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp
index 470cafa1d..aef034df1 100644
--- a/src/dolphindetailsview.cpp
+++ b/src/dolphindetailsview.cpp
@@ -134,6 +134,7 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
updateDecorationSize();
setFocus();
+ viewport()->installEventFilter(this);
connect(KGlobalSettings::self(), SIGNAL(kdisplayFontChanged()),
this, SLOT(updateFont()));
@@ -363,6 +364,18 @@ void DolphinDetailsView::currentChanged(const QModelIndex& current, const QModel
}
}
+bool DolphinDetailsView::eventFilter(QObject* watched, QEvent* event)
+{
+ if ((watched == viewport()) && (event->type() == QEvent::Leave)) {
+ // if the mouse is above an item and moved very fast outside the widget,
+ // no viewportEntered() signal might be emitted although the mouse has been moved
+ // above the viewport
+ m_controller->emitViewportEntered();
+ }
+
+ return QTreeView::eventFilter(watched, event);
+}
+
void DolphinDetailsView::setSortIndicatorSection(DolphinView::Sorting sorting)
{
QHeaderView* headerView = header();
diff --git a/src/dolphindetailsview.h b/src/dolphindetailsview.h
index 88471746d..a92e113dd 100644
--- a/src/dolphindetailsview.h
+++ b/src/dolphindetailsview.h
@@ -60,6 +60,7 @@ protected:
virtual void resizeEvent(QResizeEvent* event);
virtual void wheelEvent(QWheelEvent* event);
virtual void currentChanged(const QModelIndex& current, const QModelIndex& previous);
+ virtual bool eventFilter(QObject* watched, QEvent* event);
private slots:
/**
diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp
index 959f152f0..7b9ddd6ac 100644
--- a/src/dolphiniconsview.cpp
+++ b/src/dolphiniconsview.cpp
@@ -276,6 +276,15 @@ void DolphinIconsView::showEvent(QShowEvent* event)
KCategorizedView::showEvent(event);
}
+void DolphinIconsView::leaveEvent(QEvent* event)
+{
+ KCategorizedView::leaveEvent(event);
+ // if the mouse is above an item and moved very fast outside the widget,
+ // no viewportEntered() signal might be emitted although the mouse has been moved
+ // above the viewport
+ m_controller->emitViewportEntered();
+}
+
void DolphinIconsView::slotShowPreviewChanged()
{
const DolphinView* view = m_controller->dolphinView();
diff --git a/src/dolphiniconsview.h b/src/dolphiniconsview.h
index c912b99f7..56d492ce1 100644
--- a/src/dolphiniconsview.h
+++ b/src/dolphiniconsview.h
@@ -63,6 +63,7 @@ protected:
virtual void keyPressEvent(QKeyEvent* event);
virtual void wheelEvent(QWheelEvent* event);
virtual void showEvent(QShowEvent* event);
+ virtual void leaveEvent(QEvent* event);
private slots:
void slotShowPreviewChanged();