From 862ad871d154b2b0e53d1dbe097fbf27efd45dd7 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Sat, 20 Sep 2014 06:54:06 +0200 Subject: [PATCH] * Don't accept drag & drop events while the underlying PlayableModel is still in loading state. --- src/libtomahawk/playlist/TrackView.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/libtomahawk/playlist/TrackView.cpp b/src/libtomahawk/playlist/TrackView.cpp index ac8f32b71..e2bb59ac0 100644 --- a/src/libtomahawk/playlist/TrackView.cpp +++ b/src/libtomahawk/playlist/TrackView.cpp @@ -512,6 +512,12 @@ TrackView::dragEnterEvent( QDragEnterEvent* event ) tDebug() << Q_FUNC_INFO; QTreeView::dragEnterEvent( event ); + if ( !model() || model()->isReadOnly() || model()->isLoading() ) + { + event->ignore(); + return; + } + if ( DropJob::acceptsMimeData( event->mimeData() ) ) { m_dragging = true; @@ -527,7 +533,7 @@ TrackView::dragMoveEvent( QDragMoveEvent* event ) { QTreeView::dragMoveEvent( event ); - if ( model()->isReadOnly() ) + if ( !model() || model()->isReadOnly() || model()->isLoading() ) { event->ignore(); return; @@ -593,11 +599,10 @@ TrackView::dropEvent( QDropEvent* event ) const QPoint pos = event->pos(); const QModelIndex index = indexAt( pos ); - tDebug() << Q_FUNC_INFO << "Drop Event accepted at row:" << index.row(); - event->acceptProposedAction(); - - if ( !model()->isReadOnly() ) + if ( !model()->isReadOnly() && !model()->isLoading() ) { + tDebug() << Q_FUNC_INFO << "Drop Event accepted at row:" << index.row(); + event->acceptProposedAction(); model()->dropMimeData( event->mimeData(), event->proposedAction(), index.row(), 0, index.parent() ); } }