X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/47d31139224f9bfded4626803626a58afe3eb748..78d4fffee8694281190ceab84f47bd2f2dfc8235:/src/dolphinviewcontroller.cpp diff --git a/src/dolphinviewcontroller.cpp b/src/dolphinviewcontroller.cpp index 4ce83f968..6ef32f07f 100644 --- a/src/dolphinviewcontroller.cpp +++ b/src/dolphinviewcontroller.cpp @@ -21,6 +21,7 @@ #include "zoomlevelinfo.h" #include +#include #include #include #include @@ -138,19 +139,24 @@ void DolphinViewController::handleKeyPressEvent(QKeyEvent* event) return; } - // Emit the signal itemTriggered() for all selected files. + // 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. QModelIndexList dirQueue; const QModelIndexList indexList = selModel->selectedIndexes(); + KFileItemList fileOpenList; foreach (const QModelIndex& index, indexList) { if (itemForIndex(index).isDir()) { dirQueue << index; } else { - emit itemTriggered(itemForIndex(index)); + fileOpenList << itemForIndex(index); } } + KFileItemActions fileItemActions; + fileItemActions.runPreferredApplications(fileOpenList, "DesktopEntryName != 'dolphin'"); + if (dirQueue.length() == 1) { // open directory in the view emit itemTriggered(itemForIndex(dirQueue[0]));