Members of the KDE Community are recommended to subscribe to the kde-community mailing list at to allow them to participate in important discussions and receive other important announcements

Commit cdd002c5 authored by Elvis Angelaccio's avatar Elvis Angelaccio

Make sure we always have Shift+Del as shortcut

After commit 68bb0ec2 the shortcut for the Delete action is not
necessarily Shift+Del, but whatever the user set in System Setting.
However DolphinRemoveAction assumes/hardcodes Shift+Del, so we should
always make sure we have this shortcut around, for consistency.

We just need to add it (if necessary) to the list of shortcuts of the
action. However:

* for the actual Delete action, we need to append it (if we'd prepend it,
  it would override a custom primary shortcut in the 'Configure Shortcuts' dialog).
* for DolphinRemoveAction, we need to prepend it in order to have
  Shift+Del (rather than the custom primary shortcut) in the context menu.

Differential Revision:
parent 0006e999
......@@ -48,14 +48,19 @@ void DolphinRemoveAction::update()
if (qApp->queryKeyboardModifiers() & Qt::ShiftModifier) {
m_action = m_collection ? m_collection->action(KStandardAction::name(KStandardAction::DeleteFile)) : 0;
setText(i18nc("@action:inmenu", "&Delete"));
// Make sure we show Shift+Del in the context menu.
auto deleteShortcuts = m_action->shortcuts();
deleteShortcuts.removeAll(Qt::SHIFT | Qt::Key_Delete);
deleteShortcuts.prepend(Qt::SHIFT | Qt::Key_Delete);
m_collection->setDefaultShortcuts(this, deleteShortcuts);
} else {
m_action = m_collection ? m_collection->action(QStringLiteral("move_to_trash")) : 0;
setText(i18nc("@action:inmenu", "&Move to Trash"));
m_collection->setDefaultShortcuts(this, m_action->shortcuts());
if (m_action) {
m_collection->setDefaultShortcuts(this, m_action->shortcuts());
......@@ -120,7 +120,12 @@ void DolphinViewActionHandler::createActions()
connect(moveToTrash, &QAction::triggered,
this, &DolphinViewActionHandler::slotTrashActivated);
KStandardAction::deleteFile(this, &DolphinViewActionHandler::slotDeleteItems, m_actionCollection);
auto deleteAction = KStandardAction::deleteFile(this, &DolphinViewActionHandler::slotDeleteItems, m_actionCollection);
auto deleteShortcuts = deleteAction->shortcuts();
if (!deleteShortcuts.contains(Qt::SHIFT | Qt::Key_Delete)) {
deleteShortcuts.append(Qt::SHIFT | Qt::Key_Delete);
m_actionCollection->setDefaultShortcuts(deleteAction, deleteShortcuts);
// This action is useful for being enabled when "move_to_trash" should be
// disabled and KStandardAction::DeleteFile is enabled (e.g. non-local files), so that Key_Del
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment