┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-04-18 20:21:21 +0000
committerPeter Penz <[email protected]>2008-04-18 20:21:21 +0000
commit6ba12bacc79d80aeecc1e3fd58c06aa89f0e0ba0 (patch)
treedf6994c40291006e70ca6aa71fd45dafd605e2c3
parent7d0080868bade4b476c824817b5ec9b5993a3b46 (diff)
consider the protocol and directory capabilities for file actions like Rename, Delete and Move To Trash
svn path=/trunk/KDE/kdebase/apps/; revision=798674
-rw-r--r--src/dolphinmainwindow.cpp30
-rw-r--r--src/dolphinui.rc1
-rw-r--r--src/fileitemcapabilities.h6
3 files changed, 13 insertions, 24 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index b165e1cb3..01edc78c9 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -32,6 +32,7 @@
#include "dolphinsettingsdialog.h"
#include "dolphinstatusbar.h"
#include "dolphinviewcontainer.h"
+#include "fileitemcapabilities.h"
#include "infosidebarpage.h"
#include "metadatawidget.h"
#include "mainwindowadaptor.h"
@@ -457,10 +458,6 @@ void DolphinMainWindow::paste()
void DolphinMainWindow::updatePasteAction()
{
QAction* pasteAction = actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
- if (pasteAction == 0) {
- return;
- }
-
QPair<bool, QString> pasteInfo = m_activeViewContainer->view()->pasteInfo();
pasteAction->setEnabled(pasteInfo.first);
pasteAction->setText(pasteInfo.second);
@@ -1108,26 +1105,11 @@ void DolphinMainWindow::updateEditActions()
} else {
stateChanged("has_selection");
- QAction* renameAction = actionCollection()->action("rename");
- if (renameAction != 0) {
- renameAction->setEnabled(true);
- }
-
- bool enableMoveToTrash = true;
-
- KFileItemList::const_iterator it = list.begin();
- const KFileItemList::const_iterator end = list.end();
- while (it != end) {
- const KUrl& url = (*it).url();
- // only enable the 'Move to Trash' action for local files
- if (!url.isLocalFile()) {
- enableMoveToTrash = false;
- }
- ++it;
- }
-
- QAction* moveToTrashAction = actionCollection()->action("move_to_trash");
- moveToTrashAction->setEnabled(enableMoveToTrash);
+ FileItemCapabilities capabilities(list);
+ actionCollection()->action("rename")->setEnabled(capabilities.supportsWriting());
+ const bool enableMoveToTrash = capabilities.isLocal() && capabilities.supportsWriting();
+ actionCollection()->action("move_to_trash")->setEnabled(enableMoveToTrash);
+ actionCollection()->action("delete")->setEnabled(capabilities.supportsWriting());
}
updatePasteAction();
}
diff --git a/src/dolphinui.rc b/src/dolphinui.rc
index efee42a0f..603cfc580 100644
--- a/src/dolphinui.rc
+++ b/src/dolphinui.rc
@@ -95,6 +95,7 @@
<enable>
<Action name="edit_cut" />
<Action name="edit_copy" />
+ <Action name="rename" />
<Action name="move_to_trash" />
<Action name="delete" />
<Action name="properties" />
diff --git a/src/fileitemcapabilities.h b/src/fileitemcapabilities.h
index 15d8383e9..5ed6d1902 100644
--- a/src/fileitemcapabilities.h
+++ b/src/fileitemcapabilities.h
@@ -37,6 +37,7 @@ public:
bool supportsDeleting() const;
bool supportsWriting() const;
bool supportsMoving() const;
+ bool isLocal() const;
private:
bool m_supportsReading : 1;
@@ -66,4 +67,9 @@ inline bool FileItemCapabilities::supportsMoving() const
return m_supportsMoving;
}
+inline bool FileItemCapabilities::isLocal() const
+{
+ return m_isLocal;
+}
+
#endif