diff --git a/containments/desktop/package/contents/ui/FolderView.qml b/containments/desktop/package/contents/ui/FolderView.qml --- a/containments/desktop/package/contents/ui/FolderView.qml +++ b/containments/desktop/package/contents/ui/FolderView.qml @@ -668,8 +668,11 @@ Keys.onReturnPressed: { if (currentIndex != -1 && dir.hasSelection()) { - var func = root.useListViewMode ? dir.cd : dir.run; - func(positioner.map(currentIndex)); + if (root.useListViewMode) { + dir.cd(positioner.map(currentIndex)); + } else { + dir.runSelected(); + } } } diff --git a/containments/desktop/plugins/folder/foldermodel.h b/containments/desktop/plugins/folder/foldermodel.h --- a/containments/desktop/plugins/folder/foldermodel.h +++ b/containments/desktop/plugins/folder/foldermodel.h @@ -163,6 +163,7 @@ Q_INVOKABLE void cd(int row); Q_INVOKABLE void run(int row); + Q_INVOKABLE void runSelected(); Q_INVOKABLE void rename(int row, const QString &name); Q_INVOKABLE int fileExtensionBoundary(int row); diff --git a/containments/desktop/plugins/folder/foldermodel.cpp b/containments/desktop/plugins/folder/foldermodel.cpp --- a/containments/desktop/plugins/folder/foldermodel.cpp +++ b/containments/desktop/plugins/folder/foldermodel.cpp @@ -517,6 +517,17 @@ new KRun(url, 0); } +void FolderModel::runSelected() +{ + if (!m_selectionModel->hasSelection()) { + return; + } + + foreach (const QModelIndex &index, m_selectionModel->selectedIndexes()) { + run(index.row()); + } +} + void FolderModel::rename(int row, const QString& name) { if (row < 0) {