[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdeui
From: Kévin Ottens <ervin () ipsquad ! net>
Date: 2005-05-21 9:26:12
Message-ID: 1116667572.143873.24852.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 416341 by ervin:
Don't keep the timer going when we left the view, or the signal could
be emitted when it shouldn't.
Thanks to Thomas McGuire for the patch. Nice catch!
BUG:85161
M +27 -29 trunk/KDE/kdelibs/kdeui/kiconview.cpp
M +2 -0 trunk/KDE/kdelibs/kdeui/kiconview.h
--- trunk/KDE/kdelibs/kdeui/kiconview.cpp #416340:416341
@@ -255,6 +255,24 @@
}
}
+void KIconView::updateDragHoldItem( QDropEvent *e )
+{
+ QIconViewItem *item = findItem( e->pos() );
+
+ if ( d->dragHoldItem != item)
+ {
+ d->dragHoldItem = item;
+ if( item )
+ {
+ d->dragHoldTimer.start( 1000, true );
+ }
+ else
+ {
+ d->dragHoldTimer.stop();
+ }
+ }
+}
+
void KIconView::focusOutEvent( QFocusEvent *fe )
{
m_pAutoSelect->stop();
@@ -313,41 +331,21 @@
void KIconView::contentsDragEnterEvent( QDragEnterEvent *e )
{
- QIconViewItem *item = findItem( e->pos() );
-
- if ( d->dragHoldItem != item)
- {
- d->dragHoldItem = item;
- if( item )
- {
- d->dragHoldTimer.start( 1000, true );
- }
- else
- {
- d->dragHoldTimer.stop();
- }
- }
-
+ updateDragHoldItem( e );
QIconView::contentsDragEnterEvent( e );
}
-void KIconView::contentsDragMoveEvent( QDragMoveEvent *e )
+void KIconView::contentsDragLeaveEvent( QDragLeaveEvent *e )
{
- QIconViewItem *item = findItem( e->pos() );
+ d->dragHoldTimer.stop();
+ d->dragHoldItem = 0L;
+ QIconView::contentsDragLeaveEvent( e );
+}
- if ( d->dragHoldItem != item)
- {
- d->dragHoldItem = item;
- if( item )
- {
- d->dragHoldTimer.start( 1000, true );
- }
- else
- {
- d->dragHoldTimer.stop();
- }
- }
+void KIconView::contentsDragMoveEvent( QDragMoveEvent *e )
+{
+ updateDragHoldItem( e );
QIconView::contentsDragMoveEvent( e );
}
--- trunk/KDE/kdelibs/kdeui/kiconview.h #416340:416341
@@ -164,6 +164,7 @@
protected:
void emitExecute( QIconViewItem *item, const QPoint &pos );
+ void updateDragHoldItem( QDropEvent *e );
virtual void focusOutEvent( QFocusEvent *fe );
virtual void leaveEvent( QEvent *e );
@@ -171,6 +172,7 @@
virtual void contentsMouseDoubleClickEvent ( QMouseEvent * e );
virtual void contentsMouseReleaseEvent( QMouseEvent *e );
virtual void contentsDragEnterEvent( QDragEnterEvent *e );
+ virtual void contentsDragLeaveEvent( QDragLeaveEvent *e );
virtual void contentsDragMoveEvent( QDragMoveEvent *e );
virtual void contentsDropEvent( QDropEvent* e );
virtual void wheelEvent( QWheelEvent *e );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic