From: Peter Penz Date: Wed, 28 Nov 2007 17:07:08 +0000 (+0000) Subject: fix crash during drag & drop if the file item is not available (thanks to John Tapsel... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/eac29a517cc54c610a16815fd6ec718f92f5e5ba fix crash during drag & drop if the file item is not available (thanks to John Tapsell for the original fix in dolphiniconsview.cpp!) svn path=/trunk/KDE/kdebase/apps/; revision=742703 --- diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index 1a7f712f3..677215972 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -227,10 +227,13 @@ void DolphinColumnWidget::dragMoveEvent(QDragMoveEvent* event) // TODO: remove this code when the issue #160611 is solved in Qt 4.4 const QModelIndex index = indexAt(event->pos()); setDirtyRegion(m_dropRect); - if (itemForIndex(index).isDir()) { - m_dropRect = visualRect(index); - } else { - m_dropRect.setSize(QSize()); // set as invalid + + m_dropRect.setSize(QSize()); // set as invalid + if (index.isValid()) { + const KFileItem item = itemForIndex(index); + if (!item.isNull() && item.isDir()) { + m_dropRect = visualRect(index); + } } setDirtyRegion(m_dropRect); } diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 3fd1e9468..55851dc95 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -251,7 +251,8 @@ void DolphinDetailsView::dragMoveEvent(QDragMoveEvent* event) m_dragging = false; } else { m_dragging = true; - if (itemForIndex(index).isDir()) { + const KFileItem item = itemForIndex(index); + if (!item.isNull() && item.isDir()) { m_dropRect = visualRect(index); } else { m_dropRect.setSize(QSize()); // set as invalid diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp index 1e2e66f5a..61179a3ac 100644 --- a/src/dolphiniconsview.cpp +++ b/src/dolphiniconsview.cpp @@ -215,17 +215,12 @@ void DolphinIconsView::dragMoveEvent(QDragMoveEvent* event) const QModelIndex index = indexAt(event->pos()); setDirtyRegion(m_dropRect); - if(!index.isValid()) { - m_dropRect.setSize(QSize()); // set as invalid - } else { - KFileItem item = itemForIndex(index); - if (item.isNull()) { - kWarning(7007) << "Invalid item returned for index"; - } else if (itemForIndex(index).isDir()) { + m_dropRect.setSize(QSize()); // set as invalid + if (index.isValid()) { + const KFileItem item = itemForIndex(index); + if (!item.isNull() && item.isDir()) { m_dropRect = visualRect(index); - } else { - m_dropRect.setSize(QSize()); // set as invalid - } + } } setDirtyRegion(m_dropRect); }