X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d3496b12310d9fec0e52e537c341e87fcaa2f8b5..ca5d3fde114dfdb280e46995e8a425d3ec558596:/src/views/dolphinviewcontroller.cpp diff --git a/src/views/dolphinviewcontroller.cpp b/src/views/dolphinviewcontroller.cpp index 672cffe65..e182e48c1 100644 --- a/src/views/dolphinviewcontroller.cpp +++ b/src/views/dolphinviewcontroller.cpp @@ -139,10 +139,8 @@ void DolphinViewController::handleKeyPressEvent(QKeyEvent* event) return; } - // Collect the non-directory files into a list and - // call runPreferredApplications for that list. - // Several selected directories are opened in separate tabs, - // one selected directory will get opened in the view. + // Collect selected files and selected directories + // as two separate lists. QModelIndexList dirQueue; const QModelIndexList indexList = selModel->selectedIndexes(); KFileItemList fileOpenList; @@ -154,14 +152,20 @@ void DolphinViewController::handleKeyPressEvent(QKeyEvent* event) } } - KFileItemActions fileItemActions; - fileItemActions.runPreferredApplications(fileOpenList, "DesktopEntryName != 'dolphin'"); + // Handle selected files + if (fileOpenList.count() == 1) { + emit itemTriggered(fileOpenList.first()); + } else { + KFileItemActions fileItemActions; + fileItemActions.runPreferredApplications(fileOpenList, "DesktopEntryName != 'dolphin'"); + } - if (dirQueue.length() == 1) { - // open directory in the view + // Handle selected directories + if (dirQueue.count() == 1) { + // Open directory in the view emit itemTriggered(itemForIndex(dirQueue[0])); } else { - // open directories in separate tabs + // Open directories in separate tabs foreach(const QModelIndex& dir, dirQueue) { emit tabRequested(itemForIndex(dir).url()); }