]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinviewcontroller.cpp
DolphinTreeView contains some code to update the selection after a
[dolphin.git] / src / views / dolphinviewcontroller.cpp
index 6ef32f07fc3b86782e816003052495e5d717e78e..6749eaa41bd706c38ed9a5e005bb08d683119901 100644 (file)
@@ -84,11 +84,9 @@ void DolphinViewController::requestActivation()
     emit activated();
 }
 
-void DolphinViewController::indicateDroppedUrls(const KFileItem& destItem,
-                                            const KUrl& destPath,
-                                            QDropEvent* event)
+void DolphinViewController::indicateDroppedUrls(const KFileItem& destItem, QDropEvent* event)
 {
-    emit urlsDropped(destItem, destPath, event);
+    emit urlsDropped(destItem, m_dolphinView->url(), event);
 }
 
 
@@ -128,7 +126,9 @@ QList<QAction*> DolphinViewController::versionControlActions(const KFileItemList
 
 void DolphinViewController::handleKeyPressEvent(QKeyEvent* event)
 {
-    Q_ASSERT(m_itemView != 0);
+    if (m_itemView == 0) {
+        return;
+    }
 
     const QItemSelectionModel* selModel = m_itemView->selectionModel();
     const QModelIndex currentIndex = selModel->currentIndex();
@@ -194,12 +194,16 @@ void DolphinViewController::emitItemTriggered(const KFileItem& item)
 
 KFileItem DolphinViewController::itemForIndex(const QModelIndex& index) const
 {
-    Q_ASSERT(m_itemView != 0);
+    if (m_itemView != 0) {
+        QAbstractProxyModel* proxyModel = static_cast<QAbstractProxyModel*>(m_itemView->model());
+        if (proxyModel != 0) {
+            KDirModel* dirModel = static_cast<KDirModel*>(proxyModel->sourceModel());
+            const QModelIndex dirIndex = proxyModel->mapToSource(index);
+            return dirModel->itemForIndex(dirIndex);
+        }
+    }
 
-    QAbstractProxyModel* proxyModel = static_cast<QAbstractProxyModel*>(m_itemView->model());
-    KDirModel* dirModel = static_cast<KDirModel*>(proxyModel->sourceModel());
-    const QModelIndex dirIndex = proxyModel->mapToSource(index);
-    return dirModel->itemForIndex(dirIndex);
+    return KFileItem();
 }
 
 void DolphinViewController::triggerItem(const QModelIndex& index)
@@ -208,7 +212,7 @@ void DolphinViewController::triggerItem(const QModelIndex& index)
         const KFileItem item = itemForIndex(index);
         if (index.isValid() && (index.column() == KDirModel::Name)) {
             emit itemTriggered(item);
-        } else {
+        } else if (m_itemView != 0) {
             m_itemView->clearSelection();
             emit itemEntered(KFileItem());
         }