From afe7ee85836e824744dcab8b43f3999f1d6fa178 Mon Sep 17 00:00:00 2001 From: David Faure Date: Sat, 17 Nov 2007 00:53:45 +0000 Subject: [PATCH] Moved popupmenu logic for trash+del to dolphinpart svn path=/trunk/KDE/kdebase/apps/; revision=737696 --- src/dolphinpart.cpp | 52 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index 113b840e7..df967fe72 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -258,18 +259,45 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) KParts::BrowserExtension::ActionGroupMap actionGroups; QList editActions; - editActions.append(actionCollection()->action("rename")); - editActions.append(actionCollection()->action("move_to_trash")); - editActions.append(actionCollection()->action("delete")); - actionGroups.insert("editactions", editActions); - - KFileItemList items; items.append(item); - emit m_extension->popupMenu(QCursor::pos(), - items, - KParts::OpenUrlArguments(), - KParts::BrowserArguments(), - popupFlags, - actionGroups); + + if (!item.isNull()) { // only for context menu on one or more items + // TODO if ( sMoving ) + editActions.append(actionCollection()->action("rename")); + + bool addTrash = false; + bool addDel = false; + + // TODO if ( sMoving && !isIntoTrash && !isTrashLink ) + addTrash = true; + + /* TODO if ( sDeleting ) */ { + if ( !item.isLocalFile() ) + addDel = true; + else if (QApplication::keyboardModifiers() & Qt::ShiftModifier) { + addTrash = false; + addDel = true; + } + else { + KConfigGroup configGroup( KGlobal::config(), "KDE" ); + if ( configGroup.readEntry( "ShowDeleteCommand", false) ) + addDel = true; + } + } + + if (addTrash) + editActions.append(actionCollection()->action("move_to_trash")); + if (addDel) + editActions.append(actionCollection()->action("delete")); + actionGroups.insert("editactions", editActions); + + KFileItemList items; items.append(item); + emit m_extension->popupMenu(QCursor::pos(), + items, + KParts::OpenUrlArguments(), + KParts::BrowserArguments(), + popupFlags, + actionGroups); + } } void DolphinPart::slotViewModeActionTriggered(QAction* action) -- 2.47.3