void DolphinContextMenu::slotRemoveActionTriggered()
{
const KActionCollection* collection = m_mainWindow->actionCollection();
- if (m_shiftPressed) {
- collection->action("delete")->trigger();
- } else {
+ if (moveToTrash()) {
collection->action("move_to_trash")->trigger();
+ } else {
+ collection->action("delete")->trigger();
}
}
return action;
}
-KFileItemListProperties& DolphinContextMenu::selectedItemsProperties()
+KFileItemListProperties& DolphinContextMenu::selectedItemsProperties() const
{
if (!m_selectedItemsProperties) {
m_selectedItemsProperties = new KFileItemListProperties(m_selectedItems);
void DolphinContextMenu::updateRemoveAction()
{
const KActionCollection* collection = m_mainWindow->actionCollection();
- const bool moveToTrash = selectedItemsProperties().isLocal() && !m_shiftPressed;
// Using m_removeAction->setText(action->text()) does not apply the &-shortcut.
// This is only done until the original action has been shown at least once. To
// bypass this issue, the text and &-shortcut is applied manually.
const QAction* action = 0;
- if (moveToTrash) {
+ if (moveToTrash()) {
action = collection->action("move_to_trash");
m_removeAction->setText(i18nc("@action:inmenu", "&Move to Trash"));
} else {
m_removeAction->setShortcuts(action->shortcuts());
}
+bool DolphinContextMenu::moveToTrash() const
+{
+ return selectedItemsProperties().isLocal() && !m_shiftPressed;
+}
+
#include "dolphincontextmenu.moc"
QAction* createPasteAction();
- KFileItemListProperties& selectedItemsProperties();
+ KFileItemListProperties& selectedItemsProperties() const;
/**
* Returns the file item for m_baseUrl.
/**
* Updates m_removeAction to represent the 'Delete'-action if the shift-key
- * has been pressed. Otherwise it represents the 'Move to Trash'-action.
+ * has been pressed or the selection is not local. Otherwise it represents
+ * the 'Move to Trash'-action.
*/
void updateRemoveAction();
+ /**
+ * @return True if no shift key has been pressed and the selection represents
+ * only local files.
+ * @see updateRemoveAction(), slotRemoveActionTriggered()
+ */
+ bool moveToTrash() const;
+
private:
struct Entry
{
KFileItem* m_baseFileItem; /// File item for m_baseUrl
KFileItemList m_selectedItems;
- KFileItemListProperties* m_selectedItemsProperties;
+ mutable KFileItemListProperties* m_selectedItemsProperties;
int m_context;
KonqCopyToMenu m_copyToMenu;