┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElvis Angelaccio <[email protected]>2017-09-02 16:28:49 +0200
committerElvis Angelaccio <[email protected]>2017-09-17 11:06:32 +0200
commitcdd002c57cde0480e6e02c7942e9b92af9d0a3e7 (patch)
treed3aab65d65d7cb32ec6f1b9c29801df5b85f7b74
parent0006e9997e86f5522375dc082d890e0c5710a0a2 (diff)
Make sure we always have Shift+Del as shortcut
After commit 68bb0ec22a 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: https://phabricator.kde.org/D7655
-rw-r--r--src/dolphinremoveaction.cpp7
-rw-r--r--src/views/dolphinviewactionhandler.cpp7
2 files changed, 12 insertions, 2 deletions
diff --git a/src/dolphinremoveaction.cpp b/src/dolphinremoveaction.cpp
index ad00f6286..79d6bed60 100644
--- a/src/dolphinremoveaction.cpp
+++ b/src/dolphinremoveaction.cpp
@@ -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) {
setIcon(m_action->icon());
- m_collection->setDefaultShortcuts(this, m_action->shortcuts());
setEnabled(m_action->isEnabled());
}
}
diff --git a/src/views/dolphinviewactionhandler.cpp b/src/views/dolphinviewactionhandler.cpp
index 7e52d5b28..f4104d9cf 100644
--- a/src/views/dolphinviewactionhandler.cpp
+++ b/src/views/dolphinviewactionhandler.cpp
@@ -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