diff options
| author | David Faure <[email protected]> | 2007-11-17 00:53:45 +0000 |
|---|---|---|
| committer | David Faure <[email protected]> | 2007-11-17 00:53:45 +0000 |
| commit | afe7ee85836e824744dcab8b43f3999f1d6fa178 (patch) | |
| tree | 94db0e0e6fa9f466e4ff27b9eb46af5c84cd8cd3 /src/dolphinpart.cpp | |
| parent | 8578ad1e751d218b40c49a601934a23d8ecd027d (diff) | |
Moved popupmenu logic for trash+del to dolphinpart
svn path=/trunk/KDE/kdebase/apps/; revision=737696
Diffstat (limited to 'src/dolphinpart.cpp')
| -rw-r--r-- | src/dolphinpart.cpp | 50 |
1 files changed, 39 insertions, 11 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 <kmessagebox.h> #include <kparts/genericfactory.h> #include <ktoggleaction.h> +#include <kconfiggroup.h> #include <QActionGroup> #include <QApplication> @@ -258,18 +259,45 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) KParts::BrowserExtension::ActionGroupMap actionGroups; QList<QAction *> 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) |
