1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-23 01:09:42 +01:00

* Fixed memleak in drag & drop operations.

This commit is contained in:
Christian Muehlhaeuser 2013-01-15 09:55:39 +01:00
parent 2d94ece5c2
commit dffd614c38
2 changed files with 23 additions and 8 deletions

View File

@ -449,6 +449,7 @@ TrackView::dragEnterEvent( QDragEnterEvent* event )
void
TrackView::dragMoveEvent( QDragMoveEvent* event )
{
tDebug() << Q_FUNC_INFO;
QTreeView::dragMoveEvent( event );
if ( model()->isReadOnly() )
@ -488,9 +489,21 @@ TrackView::dragMoveEvent( QDragMoveEvent* event )
}
void
TrackView::dragLeaveEvent( QDragLeaveEvent* event )
{
tDebug() << Q_FUNC_INFO;
QTreeView::dragLeaveEvent( event );
m_dragging = false;
setDirtyRegion( m_dropRect );
}
void
TrackView::dropEvent( QDropEvent* event )
{
tDebug() << Q_FUNC_INFO;
QTreeView::dropEvent( event );
if ( event->isAccepted() )
@ -499,7 +512,7 @@ TrackView::dropEvent( QDropEvent* event )
}
else
{
if ( DropJob::acceptsMimeData( event->mimeData()) )
if ( DropJob::acceptsMimeData( event->mimeData() ) )
{
const QPoint pos = event->pos();
const QModelIndex index = indexAt( pos );
@ -609,6 +622,8 @@ TrackView::startDrag( Qt::DropActions supportedActions )
{
m_proxyModel->removeIndexes( pindexes );
}
delete drag;
}

View File

@ -108,16 +108,16 @@ protected:
virtual void startDrag( Qt::DropActions supportedActions );
virtual void dragEnterEvent( QDragEnterEvent* event );
virtual void dragLeaveEvent( QDragLeaveEvent* /*event*/ ) { m_dragging = false; setDirtyRegion( m_dropRect ); }
virtual void dragLeaveEvent( QDragLeaveEvent* event );
virtual void dragMoveEvent( QDragMoveEvent* event );
virtual void dropEvent( QDropEvent* event );
void wheelEvent( QWheelEvent* event );
void mouseMoveEvent( QMouseEvent* event );
void mousePressEvent( QMouseEvent* event );
void leaveEvent( QEvent* event );
void paintEvent( QPaintEvent* event );
void keyPressEvent( QKeyEvent* event );
virtual void wheelEvent( QWheelEvent* event );
virtual void mouseMoveEvent( QMouseEvent* event );
virtual void mousePressEvent( QMouseEvent* event );
virtual void leaveEvent( QEvent* event );
virtual void paintEvent( QPaintEvent* event );
virtual void keyPressEvent( QKeyEvent* event );
protected slots:
virtual void currentChanged( const QModelIndex& current, const QModelIndex& previous );