DolphinContextMenu::~DolphinContextMenu()
{
+ delete m_baseFileItem;
+ m_baseFileItem = nullptr;
delete m_selectedItemsProperties;
m_selectedItemsProperties = nullptr;
}
Q_ASSERT(m_context & TrashContext);
Q_ASSERT(m_context & ItemContext);
- QAction* restoreAction = new QAction(i18nc("@action:inmenu", "Restore"), m_mainWindow);
+ QAction* restoreAction = new QAction(QIcon::fromTheme("restoration"), i18nc("@action:inmenu", "Restore"), m_mainWindow);
addAction(restoreAction);
QAction* deleteAction = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile));
}
// insert 'Properties...' entry
+ addSeparator();
QAction* propertiesAction = m_mainWindow->actionCollection()->action(QStringLiteral("properties"));
addAction(propertiesAction);
addSeparator();
// Insert 'Open With' entries
- const KFileItemListProperties baseUrlProperties(KFileItemList() << baseFileItem());
+ KFileItem baseItem = view->rootItem();
+ if (baseItem.isNull() || baseItem.url() != m_baseUrl) {
+ baseItem = baseFileItem();
+ }
+
+ const KFileItemListProperties baseUrlProperties(KFileItemList() << baseItem);
KFileItemActions fileItemActions;
fileItemActions.setParentWidget(m_mainWindow);
fileItemActions.setItemListProperties(baseUrlProperties);
addAction(collection->action(KStandardAction::name(KStandardAction::RenameFile)));
// Insert 'Move to Trash' and/or 'Delete'
- if (properties.supportsDeleting()) {
- const bool showDeleteAction = (KSharedConfig::openConfig()->group("KDE").readEntry("ShowDeleteCommand", false) ||
- !properties.isLocal());
- const bool showMoveToTrashAction = (properties.isLocal() &&
- properties.supportsMoving());
-
- if (showDeleteAction && showMoveToTrashAction) {
- delete m_removeAction;
- m_removeAction = nullptr;
- addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::MoveToTrash)));
- addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
- } else if (showDeleteAction && !showMoveToTrashAction) {
- addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
- } else {
- if (!m_removeAction) {
- m_removeAction = new DolphinRemoveAction(this, m_mainWindow->actionCollection());
- }
- addAction(m_removeAction);
- m_removeAction->update();
+ const bool showDeleteAction = (KSharedConfig::openConfig()->group("KDE").readEntry("ShowDeleteCommand", false) ||
+ !properties.isLocal());
+ const bool showMoveToTrashAction = (properties.isLocal() &&
+ properties.supportsMoving());
+
+ if (showDeleteAction && showMoveToTrashAction) {
+ delete m_removeAction;
+ m_removeAction = nullptr;
+ addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::MoveToTrash)));
+ addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
+ } else if (showDeleteAction && !showMoveToTrashAction) {
+ addAction(m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::DeleteFile)));
+ } else {
+ if (!m_removeAction) {
+ m_removeAction = new DolphinRemoveAction(this, m_mainWindow->actionCollection());
}
+ addAction(m_removeAction);
+ m_removeAction->update();
}
}