mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
consider the protocol and directory capabilities for file actions like Rename, Delete and Move To Trash
svn path=/trunk/KDE/kdebase/apps/; revision=798674
This commit is contained in:
parent
7d0080868b
commit
6ba12bacc7
|
@ -32,6 +32,7 @@
|
||||||
#include "dolphinsettingsdialog.h"
|
#include "dolphinsettingsdialog.h"
|
||||||
#include "dolphinstatusbar.h"
|
#include "dolphinstatusbar.h"
|
||||||
#include "dolphinviewcontainer.h"
|
#include "dolphinviewcontainer.h"
|
||||||
|
#include "fileitemcapabilities.h"
|
||||||
#include "infosidebarpage.h"
|
#include "infosidebarpage.h"
|
||||||
#include "metadatawidget.h"
|
#include "metadatawidget.h"
|
||||||
#include "mainwindowadaptor.h"
|
#include "mainwindowadaptor.h"
|
||||||
|
@ -457,10 +458,6 @@ void DolphinMainWindow::paste()
|
||||||
void DolphinMainWindow::updatePasteAction()
|
void DolphinMainWindow::updatePasteAction()
|
||||||
{
|
{
|
||||||
QAction* pasteAction = actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
|
QAction* pasteAction = actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
|
||||||
if (pasteAction == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QPair<bool, QString> pasteInfo = m_activeViewContainer->view()->pasteInfo();
|
QPair<bool, QString> pasteInfo = m_activeViewContainer->view()->pasteInfo();
|
||||||
pasteAction->setEnabled(pasteInfo.first);
|
pasteAction->setEnabled(pasteInfo.first);
|
||||||
pasteAction->setText(pasteInfo.second);
|
pasteAction->setText(pasteInfo.second);
|
||||||
|
@ -1108,26 +1105,11 @@ void DolphinMainWindow::updateEditActions()
|
||||||
} else {
|
} else {
|
||||||
stateChanged("has_selection");
|
stateChanged("has_selection");
|
||||||
|
|
||||||
QAction* renameAction = actionCollection()->action("rename");
|
FileItemCapabilities capabilities(list);
|
||||||
if (renameAction != 0) {
|
actionCollection()->action("rename")->setEnabled(capabilities.supportsWriting());
|
||||||
renameAction->setEnabled(true);
|
const bool enableMoveToTrash = capabilities.isLocal() && capabilities.supportsWriting();
|
||||||
}
|
actionCollection()->action("move_to_trash")->setEnabled(enableMoveToTrash);
|
||||||
|
actionCollection()->action("delete")->setEnabled(capabilities.supportsWriting());
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
updatePasteAction();
|
updatePasteAction();
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,6 +95,7 @@
|
||||||
<enable>
|
<enable>
|
||||||
<Action name="edit_cut" />
|
<Action name="edit_cut" />
|
||||||
<Action name="edit_copy" />
|
<Action name="edit_copy" />
|
||||||
|
<Action name="rename" />
|
||||||
<Action name="move_to_trash" />
|
<Action name="move_to_trash" />
|
||||||
<Action name="delete" />
|
<Action name="delete" />
|
||||||
<Action name="properties" />
|
<Action name="properties" />
|
||||||
|
|
|
@ -37,6 +37,7 @@ public:
|
||||||
bool supportsDeleting() const;
|
bool supportsDeleting() const;
|
||||||
bool supportsWriting() const;
|
bool supportsWriting() const;
|
||||||
bool supportsMoving() const;
|
bool supportsMoving() const;
|
||||||
|
bool isLocal() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_supportsReading : 1;
|
bool m_supportsReading : 1;
|
||||||
|
@ -66,4 +67,9 @@ inline bool FileItemCapabilities::supportsMoving() const
|
||||||
return m_supportsMoving;
|
return m_supportsMoving;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool FileItemCapabilities::isLocal() const
|
||||||
|
{
|
||||||
|
return m_isLocal;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue