mirror of
https://invent.kde.org/system/dolphin
synced 2024-11-05 18:47:12 +00:00
When "move_to_trash" is disabled and "delete" is enabled (e.g. non-local files),
enable a hidden action with Key_Del as shortcut, so that the user can press Del to delete the file. BUG: 76016 svn path=/trunk/KDE/kdebase/apps/; revision=817389
This commit is contained in:
parent
008f524498
commit
3d28c53564
4 changed files with 20 additions and 7 deletions
|
@ -1113,6 +1113,7 @@ void DolphinMainWindow::updateEditActions()
|
|||
QAction* moveToTrashAction = col->action("move_to_trash");
|
||||
QAction* deleteAction = col->action("delete");
|
||||
QAction* cutAction = col->action(KStandardAction::name(KStandardAction::Cut));
|
||||
QAction* deleteWithTrashShortcut = col->action("delete_shortcut"); // see DolphinViewActionHandler
|
||||
|
||||
KonqFileItemCapabilities capabilities(list);
|
||||
const bool enableMoveToTrash = capabilities.isLocal() && capabilities.supportsMoving();
|
||||
|
@ -1120,6 +1121,7 @@ void DolphinMainWindow::updateEditActions()
|
|||
renameAction->setEnabled(capabilities.supportsMoving());
|
||||
moveToTrashAction->setEnabled(enableMoveToTrash);
|
||||
deleteAction->setEnabled(capabilities.supportsDeleting());
|
||||
deleteWithTrashShortcut->setEnabled(capabilities.supportsDeleting() && !enableMoveToTrash);
|
||||
cutAction->setEnabled(capabilities.supportsMoving());
|
||||
}
|
||||
updatePasteAction();
|
||||
|
|
|
@ -122,8 +122,6 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
|
|||
m_actionHandler->updateViewActions();
|
||||
slotSelectionChanged(KFileItemList()); // initially disable selection-dependent actions
|
||||
|
||||
// TODO sort_by_* actions
|
||||
|
||||
// TODO there was a "always open a new window" (when clicking on a directory) setting in konqueror
|
||||
// (sort of spacial navigation)
|
||||
|
||||
|
@ -213,26 +211,27 @@ void DolphinPart::slotSelectionChanged(const KFileItemList& selection)
|
|||
QAction* deleteAction = actionCollection()->action("delete");
|
||||
QAction* editMimeTypeAction = actionCollection()->action("editMimeType");
|
||||
QAction* propertiesAction = actionCollection()->action("properties");
|
||||
QAction* deleteWithTrashShortcut = actionCollection()->action("delete_shortcut"); // see DolphinViewActionHandler
|
||||
|
||||
if (!hasSelection) {
|
||||
stateChanged("has_no_selection");
|
||||
|
||||
emit m_extension->enableAction("cut", false);
|
||||
emit m_extension->enableAction("copy", false);
|
||||
renameAction->setEnabled(false);
|
||||
moveToTrashAction->setEnabled(false);
|
||||
deleteAction->setEnabled(false);
|
||||
deleteWithTrashShortcut->setEnabled(false);
|
||||
editMimeTypeAction->setEnabled(false);
|
||||
propertiesAction->setEnabled(false);
|
||||
} else {
|
||||
stateChanged("has_selection");
|
||||
|
||||
// TODO share this code with DolphinMainWindow::updateEditActions (and the desktop code)
|
||||
// in libkonq
|
||||
KonqFileItemCapabilities capabilities(selection);
|
||||
const bool enableMoveToTrash = capabilities.isLocal() && capabilities.supportsMoving();
|
||||
|
||||
renameAction->setEnabled(capabilities.supportsMoving());
|
||||
moveToTrashAction->setEnabled(enableMoveToTrash);
|
||||
deleteAction->setEnabled(capabilities.supportsDeleting());
|
||||
deleteWithTrashShortcut->setEnabled(capabilities.supportsDeleting() && !enableMoveToTrash);
|
||||
editMimeTypeAction->setEnabled(true);
|
||||
propertiesAction->setEnabled(true);
|
||||
emit m_extension->enableAction("cut", capabilities.supportsMoving());
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui version="4" name="dolphin" >
|
||||
<kpartgui name="dolphin" version="5">
|
||||
<MenuBar>
|
||||
<Menu name="file">
|
||||
<Action name="create_new" />
|
||||
|
@ -109,6 +109,7 @@
|
|||
<Action name="rename" />
|
||||
<Action name="move_to_trash" />
|
||||
<Action name="delete" />
|
||||
<Action name="delete_shortcut" />
|
||||
<Action name="properties" />
|
||||
<Action name="invert_selection" />
|
||||
</disable>
|
||||
|
|
|
@ -93,6 +93,17 @@ void DolphinViewActionHandler::createActions()
|
|||
deleteAction->setShortcut(Qt::SHIFT | Qt::Key_Delete);
|
||||
connect(deleteAction, SIGNAL(triggered()), this, SLOT(slotDeleteItems()));
|
||||
|
||||
// This action is useful for being enabled when "move_to_trash" should be
|
||||
// disabled and "delete" is enabled (e.g. non-local files), so that Key_Del
|
||||
// can be used for deleting the file (#76016). It needs to be a separate action
|
||||
// so that the Edit menu isn't affected.
|
||||
KAction* deleteWithTrashShortcut = m_actionCollection->addAction("delete_shortcut");
|
||||
// TODO after message freeze, a more descriptive text, for the shortcuts editor.
|
||||
deleteWithTrashShortcut->setText(i18nc("@action:inmenu File", "Delete"));
|
||||
deleteWithTrashShortcut->setShortcut(QKeySequence::Delete);
|
||||
deleteWithTrashShortcut->setEnabled(false);
|
||||
connect(deleteWithTrashShortcut, SIGNAL(triggered()), this, SLOT(slotDeleteItems()));
|
||||
|
||||
// View menu
|
||||
|
||||
QActionGroup* viewModeActions = new QActionGroup(this);
|
||||
|
|
Loading…
Reference in a new issue