QAction* addToPlacesAction = nullptr;
const KFileItemListProperties& selectedItemsProps = selectedItemsProperties();
+ KFileItemActions fileItemActions;
+ fileItemActions.setParentWidget(m_mainWindow);
+ fileItemActions.setItemListProperties(selectedItemsProps);
+
if (m_selectedItems.count() == 1) {
- if (m_fileInfo.isLink()) {
- addAction(m_mainWindow->actionCollection()->action(QStringLiteral("show_original")));
+ if (m_fileInfo.isDir()) {
+ // insert 'Open in new window' and 'Open in new tab' entries
+ addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_new_window")));
+ addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_new_tab")));
+
+ // Insert 'Open With' entries
+ addOpenWithActions(fileItemActions);
+
+ // insert 'Add to Places' entry
+ if (!placeExists(m_fileInfo.url())) {
+ addToPlacesAction = addAction(QIcon::fromTheme(QStringLiteral("bookmark-new")),
+ i18nc("@action:inmenu Add selected folder to places",
+ "Add to Places"));
+ }
+
addSeparator();
- } else if (m_fileInfo.isDir()) {
- // setup 'Create New' menu
+
+ // set up 'Create New' menu
DolphinNewFileMenu* newFileMenu = new DolphinNewFileMenu(m_mainWindow->actionCollection(), m_mainWindow);
const DolphinView* view = m_mainWindow->activeViewContainer()->view();
newFileMenu->setViewShowsHiddenFiles(view->hiddenFilesShown());
menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
menu->setIcon(QIcon::fromTheme(QStringLiteral("document-new")));
addMenu(menu);
- addSeparator();
-
- // insert 'Open in new window' and 'Open in new tab' entries
- addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_new_window")));
- addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_new_tab")));
-
- // insert 'Add to Places' entry
- if (!placeExists(m_fileInfo.url())) {
- addToPlacesAction = addAction(QIcon::fromTheme(QStringLiteral("bookmark-new")),
- i18nc("@action:inmenu Add selected folder to places",
- "Add to Places"));
- }
addSeparator();
} else if (m_baseUrl.scheme().contains(QStringLiteral("search")) || m_baseUrl.scheme().contains(QStringLiteral("timeline"))) {
+ addOpenWithActions(fileItemActions);
+
openParentAction = new QAction(QIcon::fromTheme(QStringLiteral("document-open-folder")),
i18nc("@action:inmenu",
"Open Path"),
addSeparator();
} else if (!DolphinView::openItemAsFolderUrl(m_fileInfo).isEmpty()) {
+ // Insert 'Open With" entries
+ addOpenWithActions(fileItemActions);
+
// insert 'Open in new window' and 'Open in new tab' entries
addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_new_window")));
addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_new_tab")));
+ addSeparator();
+ } else {
+ // Insert 'Open With" entries
+ addOpenWithActions(fileItemActions);
+ }
+ if (m_fileInfo.isLink()) {
+ addAction(m_mainWindow->actionCollection()->action(QStringLiteral("show_target")));
addSeparator();
}
} else {
if (selectionHasOnlyDirs) {
// insert 'Open in new tab' entry
addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_new_tabs")));
- addSeparator();
}
+ // Insert 'Open With" entries
+ addOpenWithActions(fileItemActions);
}
insertDefaultItemActions(selectedItemsProps);
addSeparator();
- KFileItemActions fileItemActions;
- fileItemActions.setItemListProperties(selectedItemsProps);
- addServiceActions(fileItemActions);
-
+ fileItemActions.addServiceActionsTo(this);
fileItemActions.addPluginActionsTo(this);
addVersionControlPluginActions();
addMenu(newFileMenu->menu());
addSeparator();
+ // Insert 'Open With' entries
+ const KFileItemListProperties baseUrlProperties(KFileItemList() << baseFileItem());
+ KFileItemActions fileItemActions;
+ fileItemActions.setParentWidget(m_mainWindow);
+ fileItemActions.setItemListProperties(baseUrlProperties);
+ addOpenWithActions(fileItemActions);
+
// Insert 'New Window' and 'New Tab' entries. Don't use "open_in_new_window" and
// "open_in_new_tab" here, as the current selection should get ignored.
- addAction(m_mainWindow->actionCollection()->action(QStringLiteral("new_window")));
+ addAction(m_mainWindow->actionCollection()->action(QStringLiteral("file_new")));
addAction(m_mainWindow->actionCollection()->action(QStringLiteral("new_tab")));
// Insert 'Add to Places' entry if exactly one item is selected
addAction(pasteAction);
addSeparator();
- // Insert service actions
- const KFileItemListProperties baseUrlProperties(KFileItemList() << baseFileItem());
- KFileItemActions fileItemActions;
- fileItemActions.setItemListProperties(baseUrlProperties);
- addServiceActions(fileItemActions);
+ // Insert 'Sort By' and 'View Mode'
+ addAction(m_mainWindow->actionCollection()->action(QStringLiteral("sort")));
+ addAction(m_mainWindow->actionCollection()->action(QStringLiteral("view_mode")));
+
+ addSeparator();
+ // Insert service actions
+ fileItemActions.addServiceActionsTo(this);
fileItemActions.addPluginActionsTo(this);
addVersionControlPluginActions();
return *m_baseFileItem;
}
-void DolphinContextMenu::addServiceActions(KFileItemActions& fileItemActions)
+void DolphinContextMenu::addOpenWithActions(KFileItemActions& fileItemActions)
{
- fileItemActions.setParentWidget(m_mainWindow);
-
// insert 'Open With...' action or sub menu
- fileItemActions.addOpenWithActionsTo(this, QStringLiteral("DesktopEntryName != 'dolphin'"));
-
- // insert 'Actions' sub menu
- fileItemActions.addServiceActionsTo(this);
+ fileItemActions.addOpenWithActionsTo(this, QStringLiteral("DesktopEntryName != '%1'").arg(qApp->desktopFileName()));
}
void DolphinContextMenu::addVersionControlPluginActions()